diff --git a/hack/update-codegen.sh b/hack/update-codegen.sh index 0447574e189..3207bbb4391 100755 --- a/hack/update-codegen.sh +++ b/hack/update-codegen.sh @@ -778,10 +778,33 @@ function codegen::subprojects() { } function codegen::protobindings() { + # Each element of this array is a directory containing subdirectories which + # eventually contain a file named "api.proto". + local apis=( + "staging/src/k8s.io/cri-api/pkg/apis/runtime" + + "staging/src/k8s.io/kubelet/pkg/apis/podresources" + + "staging/src/k8s.io/kubelet/pkg/apis/deviceplugin" + + "staging/src/k8s.io/kms/apis" + "staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/kmsv2" + + "staging/src/k8s.io/kubelet/pkg/apis/dra" + + "staging/src/k8s.io/kubelet/pkg/apis/pluginregistration" + "pkg/kubelet/pluginmanager/pluginwatcher/example_plugin_apis" + ) + + for api in "${apis[@]}"; do + git ls-files -z -cmo --exclude-standard ":(glob)${api}"/'**/api.pb.go' \ + | xargs -0 rm -f + done + # NOTE: All output from this script needs to be copied back to the calling # source tree. This is managed in kube::build::copy_output in build/common.sh. # If the output set is changed update that function. - build/run.sh hack/update-generated-proto-bindings-dockerized.sh + build/run.sh hack/update-generated-proto-bindings-dockerized.sh "${apis[@]}" } # diff --git a/hack/update-generated-proto-bindings-dockerized.sh b/hack/update-generated-proto-bindings-dockerized.sh index 62d2ed9b474..0076d249bc7 100755 --- a/hack/update-generated-proto-bindings-dockerized.sh +++ b/hack/update-generated-proto-bindings-dockerized.sh @@ -24,25 +24,12 @@ KUBE_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../" && pwd -P)" source "${KUBE_ROOT}/hack/lib/protoc.sh" -# Each element of this array is a directory containing subdirectories which -# eventually contain a file named "api.proto". -APIS=( - "staging/src/k8s.io/cri-api/pkg/apis/runtime" +if [ "$#" = 0 ]; then + echo "usage: $0 ..." + exit 1 +fi - "staging/src/k8s.io/kubelet/pkg/apis/podresources" - - "staging/src/k8s.io/kubelet/pkg/apis/deviceplugin" - - "staging/src/k8s.io/kms/apis" - "staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/kmsv2" - - "staging/src/k8s.io/kubelet/pkg/apis/dra" - - "staging/src/k8s.io/kubelet/pkg/apis/pluginregistration" - "pkg/kubelet/pluginmanager/pluginwatcher/example_plugin_apis" -) - -for api in "${APIS[@]}"; do +for api; do # This can't use `git ls-files` because it runs in a container without the # .git dir synced. find "${api}" -type f -name "api.proto" \