From 9765fe4abb7a822db4fa6fec5dc1cf712b3a7ab2 Mon Sep 17 00:00:00 2001 From: Joe Betz Date: Thu, 6 Mar 2025 19:45:17 -0500 Subject: [PATCH] Add all extra_pkgs needed by main API types to validation-gen --- hack/update-codegen.sh | 8 ++++++++ .../code-generator/cmd/validation-gen/validation.go | 9 +++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/hack/update-codegen.sh b/hack/update-codegen.sh index 7fbb17ed0c2..9b01aa52451 100755 --- a/hack/update-codegen.sh +++ b/hack/update-codegen.sh @@ -430,8 +430,16 @@ function codegen::validation() { tag_pkgs+=("./$dir") done + # This list needs to cover all of the types used transitively from the + # main API types. Validations defined on types in these packages will be + # used, but not regenerated, unless they are also listed as a "regular" + # input on the command-line. local extra_pkgs=( k8s.io/apimachinery/pkg/apis/meta/v1 + k8s.io/apimachinery/pkg/api/resource + k8s.io/apimachinery/pkg/runtime + k8s.io/apimachinery/pkg/types + k8s.io/apimachinery/pkg/util/intstr ) kube::log::status "Generating validation code for ${#tag_pkgs[@]} targets" diff --git a/staging/src/k8s.io/code-generator/cmd/validation-gen/validation.go b/staging/src/k8s.io/code-generator/cmd/validation-gen/validation.go index d93b21ef1b6..3aeafa89991 100644 --- a/staging/src/k8s.io/code-generator/cmd/validation-gen/validation.go +++ b/staging/src/k8s.io/code-generator/cmd/validation-gen/validation.go @@ -27,14 +27,15 @@ import ( "strings" "unicode" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/code-generator/cmd/validation-gen/validators" "k8s.io/gengo/v2/generator" "k8s.io/gengo/v2/namer" "k8s.io/gengo/v2/parser/tags" "k8s.io/gengo/v2/types" "k8s.io/klog/v2" + + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/validation/field" + "k8s.io/code-generator/cmd/validation-gen/validators" ) func mkPkgNames(pkg string, names ...string) []types.Name { @@ -345,7 +346,7 @@ func (td *typeDiscoverer) discover(t *types.Type, fldPath *field.Path) (*typeNod // Discover into this type before extracting type validations. switch t.Kind { - case types.Builtin: + case types.Builtin, types.Interface: // Nothing more to do. case types.Alias: // Discover the underlying type.