From f990eb31484708ec52deb024d33d478e0b8f2903 Mon Sep 17 00:00:00 2001 From: Mykhailo Bobrovskyi Date: Tue, 11 Jun 2024 18:49:16 +0300 Subject: [PATCH] Updated kube-codegen. --- Makefile | 2 +- .../v1alpha1/openapi/zz_generated.openapi.go | 2 -- .../kueue/v1alpha1/multikueueclusterstatus.go | 11 +++--- .../kueue/v1beta1/admissioncheckstatus.go | 11 +++--- .../kueue/v1beta1/clusterqueuespec.go | 8 ++--- .../kueue/v1beta1/clusterqueuestatus.go | 11 +++--- .../kueue/v1beta1/localqueuestatus.go | 11 +++--- .../kueue/v1beta1/workloadstatus.go | 11 +++--- hack/internal/tools/go.mod | 2 +- hack/internal/tools/go.sum | 4 +-- hack/update-codegen.sh | 35 +++++++------------ 11 files changed, 56 insertions(+), 52 deletions(-) diff --git a/Makefile b/Makefile index 7784771be9..8f09d5dc45 100644 --- a/Makefile +++ b/Makefile @@ -122,7 +122,7 @@ update-helm: manifests yq .PHONY: generate generate: gomod-download controller-gen ## Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations and client-go libraries. $(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths="./apis/..." - ./hack/update-codegen.sh $(GO_CMD) + TOOLS_DIR=${TOOLS_DIR} ./hack/update-codegen.sh $(GO_CMD) .PHONY: fmt fmt: ## Run go fmt against code. diff --git a/apis/visibility/v1alpha1/openapi/zz_generated.openapi.go b/apis/visibility/v1alpha1/openapi/zz_generated.openapi.go index b79c763bec..c48acca6a1 100644 --- a/apis/visibility/v1alpha1/openapi/zz_generated.openapi.go +++ b/apis/visibility/v1alpha1/openapi/zz_generated.openapi.go @@ -18,8 +18,6 @@ limitations under the License. */ // Code generated by openapi-gen. DO NOT EDIT. -// This file was autogenerated by openapi-gen. Do not edit it manually! - package openapi import ( diff --git a/client-go/applyconfiguration/kueue/v1alpha1/multikueueclusterstatus.go b/client-go/applyconfiguration/kueue/v1alpha1/multikueueclusterstatus.go index c01eaf7d06..e7595f85d2 100644 --- a/client-go/applyconfiguration/kueue/v1alpha1/multikueueclusterstatus.go +++ b/client-go/applyconfiguration/kueue/v1alpha1/multikueueclusterstatus.go @@ -18,13 +18,13 @@ limitations under the License. package v1alpha1 import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" ) // MultiKueueClusterStatusApplyConfiguration represents an declarative configuration of the MultiKueueClusterStatus type for use // with apply. type MultiKueueClusterStatusApplyConfiguration struct { - Conditions []v1.Condition `json:"conditions,omitempty"` + Conditions []v1.ConditionApplyConfiguration `json:"conditions,omitempty"` } // MultiKueueClusterStatusApplyConfiguration constructs an declarative configuration of the MultiKueueClusterStatus type for use with @@ -36,9 +36,12 @@ func MultiKueueClusterStatus() *MultiKueueClusterStatusApplyConfiguration { // WithConditions adds the given value to the Conditions field in the declarative configuration // and returns the receiver, so that objects can be build by chaining "With" function invocations. // If called multiple times, values provided by each call will be appended to the Conditions field. -func (b *MultiKueueClusterStatusApplyConfiguration) WithConditions(values ...v1.Condition) *MultiKueueClusterStatusApplyConfiguration { +func (b *MultiKueueClusterStatusApplyConfiguration) WithConditions(values ...*v1.ConditionApplyConfiguration) *MultiKueueClusterStatusApplyConfiguration { for i := range values { - b.Conditions = append(b.Conditions, values[i]) + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) } return b } diff --git a/client-go/applyconfiguration/kueue/v1beta1/admissioncheckstatus.go b/client-go/applyconfiguration/kueue/v1beta1/admissioncheckstatus.go index 1341cffbce..583da8bb44 100644 --- a/client-go/applyconfiguration/kueue/v1beta1/admissioncheckstatus.go +++ b/client-go/applyconfiguration/kueue/v1beta1/admissioncheckstatus.go @@ -18,13 +18,13 @@ limitations under the License. package v1beta1 import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" ) // AdmissionCheckStatusApplyConfiguration represents an declarative configuration of the AdmissionCheckStatus type for use // with apply. type AdmissionCheckStatusApplyConfiguration struct { - Conditions []v1.Condition `json:"conditions,omitempty"` + Conditions []v1.ConditionApplyConfiguration `json:"conditions,omitempty"` } // AdmissionCheckStatusApplyConfiguration constructs an declarative configuration of the AdmissionCheckStatus type for use with @@ -36,9 +36,12 @@ func AdmissionCheckStatus() *AdmissionCheckStatusApplyConfiguration { // WithConditions adds the given value to the Conditions field in the declarative configuration // and returns the receiver, so that objects can be build by chaining "With" function invocations. // If called multiple times, values provided by each call will be appended to the Conditions field. -func (b *AdmissionCheckStatusApplyConfiguration) WithConditions(values ...v1.Condition) *AdmissionCheckStatusApplyConfiguration { +func (b *AdmissionCheckStatusApplyConfiguration) WithConditions(values ...*v1.ConditionApplyConfiguration) *AdmissionCheckStatusApplyConfiguration { for i := range values { - b.Conditions = append(b.Conditions, values[i]) + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) } return b } diff --git a/client-go/applyconfiguration/kueue/v1beta1/clusterqueuespec.go b/client-go/applyconfiguration/kueue/v1beta1/clusterqueuespec.go index 1794cea5d0..9327e7e4e9 100644 --- a/client-go/applyconfiguration/kueue/v1beta1/clusterqueuespec.go +++ b/client-go/applyconfiguration/kueue/v1beta1/clusterqueuespec.go @@ -18,7 +18,7 @@ limitations under the License. package v1beta1 import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" kueuev1beta1 "sigs.k8s.io/kueue/apis/kueue/v1beta1" ) @@ -28,7 +28,7 @@ type ClusterQueueSpecApplyConfiguration struct { ResourceGroups []ResourceGroupApplyConfiguration `json:"resourceGroups,omitempty"` Cohort *string `json:"cohort,omitempty"` QueueingStrategy *kueuev1beta1.QueueingStrategy `json:"queueingStrategy,omitempty"` - NamespaceSelector *v1.LabelSelector `json:"namespaceSelector,omitempty"` + NamespaceSelector *v1.LabelSelectorApplyConfiguration `json:"namespaceSelector,omitempty"` FlavorFungibility *FlavorFungibilityApplyConfiguration `json:"flavorFungibility,omitempty"` Preemption *ClusterQueuePreemptionApplyConfiguration `json:"preemption,omitempty"` AdmissionChecks []string `json:"admissionChecks,omitempty"` @@ -75,8 +75,8 @@ func (b *ClusterQueueSpecApplyConfiguration) WithQueueingStrategy(value kueuev1b // WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value // and returns the receiver, so that objects can be built by chaining "With" function invocations. // If called multiple times, the NamespaceSelector field is set to the value of the last call. -func (b *ClusterQueueSpecApplyConfiguration) WithNamespaceSelector(value v1.LabelSelector) *ClusterQueueSpecApplyConfiguration { - b.NamespaceSelector = &value +func (b *ClusterQueueSpecApplyConfiguration) WithNamespaceSelector(value *v1.LabelSelectorApplyConfiguration) *ClusterQueueSpecApplyConfiguration { + b.NamespaceSelector = value return b } diff --git a/client-go/applyconfiguration/kueue/v1beta1/clusterqueuestatus.go b/client-go/applyconfiguration/kueue/v1beta1/clusterqueuestatus.go index 042aedb358..f627ab76b4 100644 --- a/client-go/applyconfiguration/kueue/v1beta1/clusterqueuestatus.go +++ b/client-go/applyconfiguration/kueue/v1beta1/clusterqueuestatus.go @@ -18,7 +18,7 @@ limitations under the License. package v1beta1 import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" ) // ClusterQueueStatusApplyConfiguration represents an declarative configuration of the ClusterQueueStatus type for use @@ -29,7 +29,7 @@ type ClusterQueueStatusApplyConfiguration struct { PendingWorkloads *int32 `json:"pendingWorkloads,omitempty"` ReservingWorkloads *int32 `json:"reservingWorkloads,omitempty"` AdmittedWorkloads *int32 `json:"admittedWorkloads,omitempty"` - Conditions []v1.Condition `json:"conditions,omitempty"` + Conditions []v1.ConditionApplyConfiguration `json:"conditions,omitempty"` PendingWorkloadsStatus *ClusterQueuePendingWorkloadsStatusApplyConfiguration `json:"pendingWorkloadsStatus,omitempty"` FairSharing *FairSharingStatusApplyConfiguration `json:"fairSharing,omitempty"` } @@ -93,9 +93,12 @@ func (b *ClusterQueueStatusApplyConfiguration) WithAdmittedWorkloads(value int32 // WithConditions adds the given value to the Conditions field in the declarative configuration // and returns the receiver, so that objects can be build by chaining "With" function invocations. // If called multiple times, values provided by each call will be appended to the Conditions field. -func (b *ClusterQueueStatusApplyConfiguration) WithConditions(values ...v1.Condition) *ClusterQueueStatusApplyConfiguration { +func (b *ClusterQueueStatusApplyConfiguration) WithConditions(values ...*v1.ConditionApplyConfiguration) *ClusterQueueStatusApplyConfiguration { for i := range values { - b.Conditions = append(b.Conditions, values[i]) + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) } return b } diff --git a/client-go/applyconfiguration/kueue/v1beta1/localqueuestatus.go b/client-go/applyconfiguration/kueue/v1beta1/localqueuestatus.go index 9b77e15c4f..d736259e25 100644 --- a/client-go/applyconfiguration/kueue/v1beta1/localqueuestatus.go +++ b/client-go/applyconfiguration/kueue/v1beta1/localqueuestatus.go @@ -18,7 +18,7 @@ limitations under the License. package v1beta1 import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" ) // LocalQueueStatusApplyConfiguration represents an declarative configuration of the LocalQueueStatus type for use @@ -27,7 +27,7 @@ type LocalQueueStatusApplyConfiguration struct { PendingWorkloads *int32 `json:"pendingWorkloads,omitempty"` ReservingWorkloads *int32 `json:"reservingWorkloads,omitempty"` AdmittedWorkloads *int32 `json:"admittedWorkloads,omitempty"` - Conditions []v1.Condition `json:"conditions,omitempty"` + Conditions []v1.ConditionApplyConfiguration `json:"conditions,omitempty"` FlavorsReservation []LocalQueueFlavorUsageApplyConfiguration `json:"flavorsReservation,omitempty"` FlavorUsage []LocalQueueFlavorUsageApplyConfiguration `json:"flavorUsage,omitempty"` } @@ -65,9 +65,12 @@ func (b *LocalQueueStatusApplyConfiguration) WithAdmittedWorkloads(value int32) // WithConditions adds the given value to the Conditions field in the declarative configuration // and returns the receiver, so that objects can be build by chaining "With" function invocations. // If called multiple times, values provided by each call will be appended to the Conditions field. -func (b *LocalQueueStatusApplyConfiguration) WithConditions(values ...v1.Condition) *LocalQueueStatusApplyConfiguration { +func (b *LocalQueueStatusApplyConfiguration) WithConditions(values ...*v1.ConditionApplyConfiguration) *LocalQueueStatusApplyConfiguration { for i := range values { - b.Conditions = append(b.Conditions, values[i]) + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) } return b } diff --git a/client-go/applyconfiguration/kueue/v1beta1/workloadstatus.go b/client-go/applyconfiguration/kueue/v1beta1/workloadstatus.go index b5c72d11eb..7106722a3a 100644 --- a/client-go/applyconfiguration/kueue/v1beta1/workloadstatus.go +++ b/client-go/applyconfiguration/kueue/v1beta1/workloadstatus.go @@ -18,7 +18,7 @@ limitations under the License. package v1beta1 import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" ) // WorkloadStatusApplyConfiguration represents an declarative configuration of the WorkloadStatus type for use @@ -26,7 +26,7 @@ import ( type WorkloadStatusApplyConfiguration struct { Admission *AdmissionApplyConfiguration `json:"admission,omitempty"` RequeueState *RequeueStateApplyConfiguration `json:"requeueState,omitempty"` - Conditions []v1.Condition `json:"conditions,omitempty"` + Conditions []v1.ConditionApplyConfiguration `json:"conditions,omitempty"` ReclaimablePods []ReclaimablePodApplyConfiguration `json:"reclaimablePods,omitempty"` AdmissionChecks []AdmissionCheckStateApplyConfiguration `json:"admissionChecks,omitempty"` } @@ -56,9 +56,12 @@ func (b *WorkloadStatusApplyConfiguration) WithRequeueState(value *RequeueStateA // WithConditions adds the given value to the Conditions field in the declarative configuration // and returns the receiver, so that objects can be build by chaining "With" function invocations. // If called multiple times, values provided by each call will be appended to the Conditions field. -func (b *WorkloadStatusApplyConfiguration) WithConditions(values ...v1.Condition) *WorkloadStatusApplyConfiguration { +func (b *WorkloadStatusApplyConfiguration) WithConditions(values ...*v1.ConditionApplyConfiguration) *WorkloadStatusApplyConfiguration { for i := range values { - b.Conditions = append(b.Conditions, values[i]) + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) } return b } diff --git a/hack/internal/tools/go.mod b/hack/internal/tools/go.mod index 5384d86f56..0c4a4c3f78 100644 --- a/hack/internal/tools/go.mod +++ b/hack/internal/tools/go.mod @@ -110,7 +110,7 @@ require ( k8s.io/client-go v0.30.0 // indirect k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 // indirect k8s.io/klog/v2 v2.120.1 // indirect - k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect + k8s.io/kube-openapi v0.0.0-20240521193020-835d969ad83a // indirect k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 // indirect diff --git a/hack/internal/tools/go.sum b/hack/internal/tools/go.sum index c1869f7da4..30d3fbc784 100644 --- a/hack/internal/tools/go.sum +++ b/hack/internal/tools/go.sum @@ -466,8 +466,8 @@ k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 h1:NGrVE502P0s0/1hudf8zjgwki1 k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70/go.mod h1:VH3AT8AaQOqiGjMF9p0/IM1Dj+82ZwjfxUP1IxaHE+8= k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= +k8s.io/kube-openapi v0.0.0-20240521193020-835d969ad83a h1:zD1uj3Jf+mD4zmA7W+goE5TxDkI7OGJjBNBzq5fJtLA= +k8s.io/kube-openapi v0.0.0-20240521193020-835d969ad83a/go.mod h1:UxDHUPsUwTOOxSU+oXURfFBcAS6JwiRXTYqYwfuGowc= k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20240522175850-2e9781e9fc60 h1:ihaeBTCFuEYPL1T1/FqAavDY7z5UcKSnWpnb+I3DYeM= diff --git a/hack/update-codegen.sh b/hack/update-codegen.sh index 3d6dbdfc21..d3eb4d8ef7 100755 --- a/hack/update-codegen.sh +++ b/hack/update-codegen.sh @@ -20,40 +20,31 @@ set -o pipefail GO_CMD=${1:-go} KUEUE_ROOT=$(realpath $(dirname ${BASH_SOURCE[0]})/..) -CODEGEN_PKG=$($GO_CMD list -m -f "{{.Dir}}" k8s.io/code-generator) - -cd $(dirname ${BASH_SOURCE[0]})/.. +KUEUE_PKG="sigs.k8s.io/kueue" +CODEGEN_PKG=$(cd $TOOLS_DIR; go mod download; $GO_CMD list -m -f "{{.Dir}}" k8s.io/code-generator) source "${CODEGEN_PKG}/kube_codegen.sh" -# TODO: remove the workaround when the issue is solved in the code-generator -# (https://github.com/kubernetes/code-generator/issues/165). -# Here, we create the soft link named "sigs.k8s.io" to the parent directory of -# Kueue to ensure the layout required by the kube_codegen.sh script. -ln -s .. sigs.k8s.io -trap "rm sigs.k8s.io" EXIT - # Generating conversion and defaults functions kube::codegen::gen_helpers \ - --input-pkg-root sigs.k8s.io/kueue/apis \ - --output-base "${KUEUE_ROOT}" \ - --boilerplate ${KUEUE_ROOT}/hack/boilerplate.go.txt + --boilerplate ${KUEUE_ROOT}/hack/boilerplate.go.txt \ + "${KUEUE_ROOT}/apis" # Generating OpenAPI for Kueue API extensions kube::codegen::gen_openapi \ - --input-pkg-root sigs.k8s.io/kueue/apis/visibility \ - --output-pkg-root sigs.k8s.io/kueue/apis/visibility/v1alpha1 \ - --output-base "${KUEUE_ROOT}" \ + --boilerplate "${KUEUE_ROOT}/hack/boilerplate.go.txt" \ + --output-dir "${KUEUE_ROOT}/apis/visibility/v1alpha1/openapi" \ + --output-pkg "${KUEUE_PKG}/apis/visibility/v1alpha1/openapi" \ --update-report \ - --boilerplate "${KUEUE_ROOT}/hack/boilerplate.go.txt" + "${KUEUE_ROOT}/apis/visibility" kube::codegen::gen_client \ - --input-pkg-root sigs.k8s.io/kueue/apis \ - --output-pkg-root sigs.k8s.io/kueue/client-go \ - --output-base "${KUEUE_ROOT}" \ - --boilerplate ${KUEUE_ROOT}/hack/boilerplate.go.txt \ + --boilerplate "${KUEUE_ROOT}/hack/boilerplate.go.txt" \ + --output-dir "${KUEUE_ROOT}/client-go" \ + --output-pkg "${KUEUE_PKG}/client-go" \ --with-watch \ - --with-applyconfig + --with-applyconfig \ + "${KUEUE_ROOT}/apis" # We need to clean up the go.mod file since code-generator adds temporary library to the go.mod file. "${GO_CMD}" mod tidy