From 6607834207a7f0a6083b2a1278e5842da024bc7b Mon Sep 17 00:00:00 2001 From: Tim Hockin Date: Tue, 9 May 2023 18:43:04 -0700 Subject: [PATCH] Use the same report files as before --- api/api-rules/README.md | 8 +++----- .../api-rules/aggregator_violation_exceptions.list | 0 .../api-rules/apiextensions_violation_exceptions.list | 0 .../api-rules/codegen_violation_exceptions.list | 0 .../api-rules/sample_apiserver_violation_exceptions.list | 0 hack/update-codegen.sh | 8 ++++++-- .../apiextensions-apiserver/hack/update-codegen.sh | 9 ++++++--- .../code-generator/examples/hack/update-codegen.sh | 9 ++++++--- staging/src/k8s.io/code-generator/kube_codegen.sh | 2 ++ .../src/k8s.io/kube-aggregator/hack/update-codegen.sh | 9 ++++++--- .../src/k8s.io/sample-apiserver/hack/update-codegen.sh | 9 ++++++--- 11 files changed, 35 insertions(+), 19 deletions(-) rename staging/src/k8s.io/kube-aggregator/api_violation_exceptions.list => api/api-rules/aggregator_violation_exceptions.list (100%) rename staging/src/k8s.io/apiextensions-apiserver/api_violation_exceptions.list => api/api-rules/apiextensions_violation_exceptions.list (100%) rename staging/src/k8s.io/code-generator/examples/api_violation_exceptions.list => api/api-rules/codegen_violation_exceptions.list (100%) rename staging/src/k8s.io/sample-apiserver/api_violation_exceptions.list => api/api-rules/sample_apiserver_violation_exceptions.list (100%) diff --git a/api/api-rules/README.md b/api/api-rules/README.md index 306ac93b8c9..5edeaa77a5d 100644 --- a/api/api-rules/README.md +++ b/api/api-rules/README.md @@ -1,10 +1,8 @@ # Existing API Rule Violations -This folder contains the checked-in report file of known API rule violations -for the main Kubernetes repository. Reports for staging repositories are -checked in to those repositories. These files are used during OpenAPI spec -generation to make sure that no new API rule violation is introduced into our -code base. +This folder contains the checked-in report file of known API rule violations. +The file violation\_exceptions.list is used by Make rule during OpenAPI spec generation to make +sure that no new API rule violation is introduced into our code base. ## API Rule Violation Format diff --git a/staging/src/k8s.io/kube-aggregator/api_violation_exceptions.list b/api/api-rules/aggregator_violation_exceptions.list similarity index 100% rename from staging/src/k8s.io/kube-aggregator/api_violation_exceptions.list rename to api/api-rules/aggregator_violation_exceptions.list diff --git a/staging/src/k8s.io/apiextensions-apiserver/api_violation_exceptions.list b/api/api-rules/apiextensions_violation_exceptions.list similarity index 100% rename from staging/src/k8s.io/apiextensions-apiserver/api_violation_exceptions.list rename to api/api-rules/apiextensions_violation_exceptions.list diff --git a/staging/src/k8s.io/code-generator/examples/api_violation_exceptions.list b/api/api-rules/codegen_violation_exceptions.list similarity index 100% rename from staging/src/k8s.io/code-generator/examples/api_violation_exceptions.list rename to api/api-rules/codegen_violation_exceptions.list diff --git a/staging/src/k8s.io/sample-apiserver/api_violation_exceptions.list b/api/api-rules/sample_apiserver_violation_exceptions.list similarity index 100% rename from staging/src/k8s.io/sample-apiserver/api_violation_exceptions.list rename to api/api-rules/sample_apiserver_violation_exceptions.list diff --git a/hack/update-codegen.sh b/hack/update-codegen.sh index 89f05332b5f..201aca0b004 100755 --- a/hack/update-codegen.sh +++ b/hack/update-codegen.sh @@ -32,6 +32,7 @@ kube::golang::setup_env DBG_CODEGEN="${DBG_CODEGEN:-0}" GENERATED_FILE_PREFIX="${GENERATED_FILE_PREFIX:-zz_generated.}" UPDATE_API_KNOWN_VIOLATIONS="${UPDATE_API_KNOWN_VIOLATIONS:-}" +API_KNOWN_VIOLATIONS_DIR="${API_KNOWN_VIOLATIONS_DIR:-"${KUBE_ROOT}/api/api-rules"}" OUT_DIR="_output" PRJ_SRC_PATH="k8s.io/kubernetes" @@ -515,7 +516,7 @@ function codegen::openapi() { gen_openapi_bin="$(kube::util::find-binary "openapi-gen")" local output_dir="pkg/generated/openapi" - local known_violations_file="api/api-rules/violation_exceptions.list" + local known_violations_file="${API_KNOWN_VIOLATIONS_DIR}/violation_exceptions.list" local report_file="${OUT_DIR}/api_violations.report" # When UPDATE_API_KNOWN_VIOLATIONS is set to be true, let the generator to write @@ -792,7 +793,10 @@ function codegen::subprojects() { for sub in "${subs[@]}"; do kube::log::status "Generating code for subproject ${sub}" pushd "${sub}" >/dev/null - CODEGEN_PKG="${codegen}" ./hack/update-codegen.sh > >(indent) 2> >(indent >&2) + CODEGEN_PKG="${codegen}" \ + UPDATE_API_KNOWN_VIOLATIONS="${UPDATE_API_KNOWN_VIOLATIONS}" \ + API_KNOWN_VIOLATIONS_DIR="${API_KNOWN_VIOLATIONS_DIR}" \ + ./hack/update-codegen.sh > >(indent) 2> >(indent >&2) popd >/dev/null done } diff --git a/staging/src/k8s.io/apiextensions-apiserver/hack/update-codegen.sh b/staging/src/k8s.io/apiextensions-apiserver/hack/update-codegen.sh index 6ab4ee161e5..37676e2e963 100755 --- a/staging/src/k8s.io/apiextensions-apiserver/hack/update-codegen.sh +++ b/staging/src/k8s.io/apiextensions-apiserver/hack/update-codegen.sh @@ -28,8 +28,11 @@ kube::codegen::gen_helpers \ --output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \ --boilerplate "${SCRIPT_ROOT}/hack/boilerplate.go.txt" -if [[ "${UPDATE_API_KNOWN_VIOLATIONS:-}" == "true" ]]; then - update_report="--update-report" +if [[ -n "${API_KNOWN_VIOLATIONS_DIR:-}" ]]; then + report_filename="${API_KNOWN_VIOLATIONS_DIR}/apiextensions_violation_exceptions.list" + if [[ "${UPDATE_API_KNOWN_VIOLATIONS:-}" == "true" ]]; then + update_report="--update-report" + fi fi kube::codegen::gen_openapi \ @@ -37,7 +40,7 @@ kube::codegen::gen_openapi \ --extra-pkgs k8s.io/api/autoscaling/v1 `# needed for Scale type` \ --output-pkg-root k8s.io/apiextensions-apiserver/pkg/generated \ --output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \ - --report-filename "${SCRIPT_ROOT}/api_violation_exceptions.list" \ + --report-filename "${report_filename:-"/dev/null"}" \ ${update_report:+"${update_report}"} \ --boilerplate "${SCRIPT_ROOT}/hack/boilerplate.go.txt" diff --git a/staging/src/k8s.io/code-generator/examples/hack/update-codegen.sh b/staging/src/k8s.io/code-generator/examples/hack/update-codegen.sh index e9c65267065..7c7b251cde2 100755 --- a/staging/src/k8s.io/code-generator/examples/hack/update-codegen.sh +++ b/staging/src/k8s.io/code-generator/examples/hack/update-codegen.sh @@ -34,15 +34,18 @@ kube::codegen::gen_helpers \ --output-base "$(dirname "${BASH_SOURCE[0]}")/../../../.." \ --boilerplate "${SCRIPT_ROOT}/hack/boilerplate.go.txt" -if [[ "${UPDATE_API_KNOWN_VIOLATIONS:-}" == "true" ]]; then - update_report="--update-report" +if [[ -n "${API_KNOWN_VIOLATIONS_DIR:-}" ]]; then + report_filename="${API_KNOWN_VIOLATIONS_DIR}/codegen_violation_exceptions.list" + if [[ "${UPDATE_API_KNOWN_VIOLATIONS:-}" == "true" ]]; then + update_report="--update-report" + fi fi kube::codegen::gen_openapi \ --input-pkg-root k8s.io/code-generator/examples/apiserver/apis \ --output-pkg-root k8s.io/code-generator/examples/apiserver \ --output-base "$(dirname "${BASH_SOURCE[0]}")/../../../.." \ - --report-filename "${SCRIPT_ROOT}/api_violation_exceptions.list" \ + --report-filename "${report_filename:-"/dev/null"}" \ ${update_report:+"${update_report}"} \ --boilerplate "${SCRIPT_ROOT}/hack/boilerplate.go.txt" diff --git a/staging/src/k8s.io/code-generator/kube_codegen.sh b/staging/src/k8s.io/code-generator/kube_codegen.sh index 3342b9dcaeb..5d30fccb058 100755 --- a/staging/src/k8s.io/code-generator/kube_codegen.sh +++ b/staging/src/k8s.io/code-generator/kube_codegen.sh @@ -255,6 +255,7 @@ function kube::codegen::gen_openapi() { local v="${KUBE_VERBOSE:-0}" while [ "$#" -gt 0 ]; do + echo "$1" case "$1" in "--input-pkg-root") in_pkg_root="$2" @@ -308,6 +309,7 @@ function kube::codegen::gen_openapi() { return 1 fi + set -x local new_report new_report="$(mktemp -t "$(basename "$0").api_violations.XXXXXX")" if [ -n "${update_report}" ]; then diff --git a/staging/src/k8s.io/kube-aggregator/hack/update-codegen.sh b/staging/src/k8s.io/kube-aggregator/hack/update-codegen.sh index 2fc6d555c6b..c64782c821c 100755 --- a/staging/src/k8s.io/kube-aggregator/hack/update-codegen.sh +++ b/staging/src/k8s.io/kube-aggregator/hack/update-codegen.sh @@ -28,15 +28,18 @@ kube::codegen::gen_helpers \ --output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \ --boilerplate "${SCRIPT_ROOT}/hack/boilerplate.go.txt" -if [[ "${UPDATE_API_KNOWN_VIOLATIONS:-}" == "true" ]]; then - update_report="--update-report" +if [[ -n "${API_KNOWN_VIOLATIONS_DIR:-}" ]]; then + report_filename="${API_KNOWN_VIOLATIONS_DIR}/aggregator_violation_exceptions.list" + if [[ "${UPDATE_API_KNOWN_VIOLATIONS:-}" == "true" ]]; then + update_report="--update-report" + fi fi kube::codegen::gen_openapi \ --input-pkg-root k8s.io/kube-aggregator/pkg/apis \ --output-pkg-root k8s.io/kube-aggregator/pkg/generated \ --output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \ - --report-filename "${SCRIPT_ROOT}/api_violation_exceptions.list" \ + --report-filename "${report_filename:-"/dev/null"}" \ ${update_report:+"${update_report}"} \ --boilerplate "${SCRIPT_ROOT}/hack/boilerplate.go.txt" diff --git a/staging/src/k8s.io/sample-apiserver/hack/update-codegen.sh b/staging/src/k8s.io/sample-apiserver/hack/update-codegen.sh index 25b548b1757..996bab05b09 100755 --- a/staging/src/k8s.io/sample-apiserver/hack/update-codegen.sh +++ b/staging/src/k8s.io/sample-apiserver/hack/update-codegen.sh @@ -33,15 +33,18 @@ kube::codegen::gen_helpers \ --output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \ --boilerplate "${SCRIPT_ROOT}/hack/boilerplate.go.txt" -if [[ "${UPDATE_API_KNOWN_VIOLATIONS:-}" == "true" ]]; then - update_report="--update-report" +if [[ -n "${API_KNOWN_VIOLATIONS_DIR:-}" ]]; then + report_filename="${API_KNOWN_VIOLATIONS_DIR}/sample_apiserver_violation_exceptions.list" + if [[ "${UPDATE_API_KNOWN_VIOLATIONS:-}" == "true" ]]; then + update_report="--update-report" + fi fi kube::codegen::gen_openapi \ --input-pkg-root k8s.io/sample-apiserver/pkg/apis \ --output-pkg-root k8s.io/sample-apiserver/pkg/generated \ --output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \ - --report-filename "${SCRIPT_ROOT}/api_violation_exceptions.list" \ + --report-filename "${report_filename:-"/dev/null"}" \ ${update_report:+"${update_report}"} \ --boilerplate "${SCRIPT_ROOT}/hack/boilerplate.go.txt"