Add CRI v1 proto
Add CRI v1 proto and generated code. We need both v1 and v1alpha2 side by side so that containerd and CRI-O could be updated. Once the runtimes are updated and in the CI, we can switch the kubelet to use v1 in 1.21 . We are jumping to v1, so we have to avoid multiple hops to get to GA. The package could stay v1 and declare CRI support to be at beta and eventually GA. Signed-off-by: Mrunal Patel <mpatel@redhat.com>
This commit is contained in:
@@ -22,9 +22,11 @@ set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
|
||||
KUBE_REMOTE_RUNTIME_ROOT="${KUBE_ROOT}/staging/src/k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||
KUBE_REMOTE_RUNTIME_ROOT="${KUBE_ROOT}/staging/src/k8s.io/cri-api/pkg/apis/runtime/"
|
||||
source "${KUBE_ROOT}/hack/lib/init.sh"
|
||||
|
||||
runtime_versions=("v1alpha2" "v1")
|
||||
|
||||
kube::golang::setup_env
|
||||
|
||||
go install k8s.io/kubernetes/vendor/k8s.io/code-generator/cmd/go-to-protobuf/protoc-gen-gogo
|
||||
@@ -40,24 +42,34 @@ if [[ -z "$(which protoc)" || "$(protoc --version)" != "libprotoc 3."* ]]; then
|
||||
fi
|
||||
|
||||
function cleanup {
|
||||
rm -f "${KUBE_REMOTE_RUNTIME_ROOT}/api.pb.go.bak"
|
||||
rm -f "${KUBE_REMOTE_RUNTIME_ROOT}/api.pb.go.tmp"
|
||||
for v in "${runtime_versions[@]}"; do
|
||||
rm -f "${KUBE_REMOTE_RUNTIME_ROOT}/${v}/api.pb.go.bak"
|
||||
rm -f "${KUBE_REMOTE_RUNTIME_ROOT}/${v}/api.pb.go.tmp"
|
||||
done
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
gogopath=$(dirname "$(kube::util::find-binary "protoc-gen-gogo")")
|
||||
PATH="${gogopath}:${PATH}"
|
||||
|
||||
PATH="${gogopath}:${PATH}" \
|
||||
protoc \
|
||||
--proto_path="${KUBE_REMOTE_RUNTIME_ROOT}" \
|
||||
--proto_path="${KUBE_ROOT}/vendor" \
|
||||
--gogo_out=plugins=grpc:"${KUBE_REMOTE_RUNTIME_ROOT}" "${KUBE_REMOTE_RUNTIME_ROOT}/api.proto"
|
||||
function generate_code() {
|
||||
RUNTIME_API_VERSION="$1"
|
||||
KUBE_REMOTE_RUNTIME_PATH="${KUBE_REMOTE_RUNTIME_ROOT}/${RUNTIME_API_VERSION}"
|
||||
protoc \
|
||||
--proto_path="${KUBE_REMOTE_RUNTIME_PATH}" \
|
||||
--proto_path="${KUBE_ROOT}/vendor" \
|
||||
--gogo_out=plugins=grpc:"${KUBE_REMOTE_RUNTIME_PATH}" "${KUBE_REMOTE_RUNTIME_PATH}/api.proto"
|
||||
|
||||
# Update boilerplate for the generated file.
|
||||
cat hack/boilerplate/boilerplate.generatego.txt "${KUBE_REMOTE_RUNTIME_ROOT}/api.pb.go" > "${KUBE_REMOTE_RUNTIME_ROOT}/api.pb.go.tmp"
|
||||
mv "${KUBE_REMOTE_RUNTIME_ROOT}/api.pb.go.tmp" "${KUBE_REMOTE_RUNTIME_ROOT}/api.pb.go"
|
||||
# Update boilerplate for the generated file.
|
||||
cat hack/boilerplate/boilerplate.generatego.txt "${KUBE_REMOTE_RUNTIME_PATH}/api.pb.go" > "${KUBE_REMOTE_RUNTIME_PATH}/api.pb.go.tmp"
|
||||
mv "${KUBE_REMOTE_RUNTIME_PATH}/api.pb.go.tmp" "${KUBE_REMOTE_RUNTIME_PATH}/api.pb.go"
|
||||
|
||||
# Run gofmt to clean up the generated code.
|
||||
kube::golang::verify_go_version
|
||||
gofmt -l -s -w "${KUBE_REMOTE_RUNTIME_ROOT}/api.pb.go"
|
||||
# Run gofmt to clean up the generated code.
|
||||
kube::golang::verify_go_version
|
||||
gofmt -l -s -w "${KUBE_REMOTE_RUNTIME_PATH}/api.pb.go"
|
||||
}
|
||||
|
||||
for v in "${runtime_versions[@]}"; do
|
||||
generate_code "${v}"
|
||||
done
|
||||
|
Reference in New Issue
Block a user