生成 runtime/agent 的 Protocol buffers 协议文件

Runtime 和 agent 之间通过 Protocol buffers 编码的 ttrpc 协议通信, Protocol buffers 定义文件在 agent 代码下,位置在 src/libs/protocols/protos/

这个文件夹下有几个文件,最主要也是最有可能更新的是 agent.proto 文件,这也是 runtime 和 agent 之间调用的接口定义文件。

安装环境

要编译 Protocol buffers 文件,需要安装 Protocol buffers 在各语言中所需的编译器。对 Golang 来说,需要安装 protocprotoc-gen-gogottrpc

安装 protoc

$ apt install -y protobuf-compiler

安装 protoc-gen-gogottrpc

$ go get github.com/containerd/ttrpc/cmd/protoc-gen-gogottrpc

编译 Protocol buffers 文件

Runtime 和 agent 都需要这份生成的 stub 文件,agent 采用 Rust 语言编写, Rust 提供了一个 Build Script 机制来在构建的时候自动生成 protocols 文件,因此在修改了上面的 agent.proto 文件的时候,agent 不需要再做额外的工作。

而 runtime 使用了 Golang,需要生成的 *.pb.go 文件。为了方便开发者,Kata Containers 提拱了一个脚本 protocols/hack/update-generated-proto.sh 来更新这个文件:

$ cd src/agent
$ ../libs/protocols/hack/update-generated-proto.sh agent.proto

这就会生成 agent.proto 对应的 Golang 版本的 Protocol buffers 文件。

如果执行 update-generated-proto.sh 脚本而不指定命令行参数,则可以查看该脚本的使用方法。

results matching ""

    No results matching ""