diff --git a/Makefile b/Makefile index 1b355fd76f88..7e7530d34ee9 100644 --- a/Makefile +++ b/Makefile @@ -53,7 +53,7 @@ run: ## Run Karpenter controller binary against your local cluster go run ./cmd/controller/main.go test: ## Run tests - go test -v ./pkg/... \ + go test ./pkg/... \ -cover -coverprofile=coverage.out -outputdir=. -coverpkg=./... \ --ginkgo.focus="${FOCUS}" \ --ginkgo.randomize-all \ diff --git a/cmd/controller/main.go b/cmd/controller/main.go index 9d370a42694d..b4adb0b096a1 100644 --- a/cmd/controller/main.go +++ b/cmd/controller/main.go @@ -24,7 +24,6 @@ import ( "sigs.k8s.io/karpenter/pkg/cloudprovider/metrics" corecontrollers "sigs.k8s.io/karpenter/pkg/controllers" - "sigs.k8s.io/karpenter/pkg/controllers/state" coreoperator "sigs.k8s.io/karpenter/pkg/operator" corewebhooks "sigs.k8s.io/karpenter/pkg/webhooks" ) @@ -47,7 +46,6 @@ func main() { WithControllers(ctx, corecontrollers.NewControllers( op.Clock, op.GetClient(), - state.NewCluster(op.Clock, op.GetClient(), cloudProvider), op.EventRecorder, cloudProvider, )...). diff --git a/go.mod b/go.mod index aa42c4e8eeae..9bbc0b511278 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,7 @@ require ( k8s.io/utils v0.0.0-20240102154912-e7106e64919e knative.dev/pkg v0.0.0-20231010144348-ca8c009405dd sigs.k8s.io/controller-runtime v0.18.4 - sigs.k8s.io/karpenter v0.37.1-0.20240626220530-d33d38727888 + sigs.k8s.io/karpenter v0.37.1-0.20240627203024-f66fd07b6fbb sigs.k8s.io/yaml v1.4.0 ) diff --git a/go.sum b/go.sum index eb3e888180ab..176060a5901b 100644 --- a/go.sum +++ b/go.sum @@ -761,8 +761,8 @@ sigs.k8s.io/controller-runtime v0.18.4 h1:87+guW1zhvuPLh1PHybKdYFLU0YJp4FhJRmiHv sigs.k8s.io/controller-runtime v0.18.4/go.mod h1:TVoGrfdpbA9VRFaRnKgk9P5/atA0pMwq+f+msb9M8Sg= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/karpenter v0.37.1-0.20240626220530-d33d38727888 h1:M9v0CldRB/YW6S8dmV+qqN3FOnvbxrowAiJW/UK/W+s= -sigs.k8s.io/karpenter v0.37.1-0.20240626220530-d33d38727888/go.mod h1:b2WP5LvtWNjec0JaTuzoxYnp6XXoBG9Bed1VzQwlaSw= +sigs.k8s.io/karpenter v0.37.1-0.20240627203024-f66fd07b6fbb h1:FZWiUjcJ52G8qcSKg0VeYxWtRDMfLWCQQ31tCqgfEME= +sigs.k8s.io/karpenter v0.37.1-0.20240627203024-f66fd07b6fbb/go.mod h1:b2WP5LvtWNjec0JaTuzoxYnp6XXoBG9Bed1VzQwlaSw= sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= diff --git a/pkg/apis/apis.go b/pkg/apis/apis.go index 29203dba69e2..2db4765d06bd 100644 --- a/pkg/apis/apis.go +++ b/pkg/apis/apis.go @@ -19,10 +19,6 @@ import ( _ "embed" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - "k8s.io/apimachinery/pkg/runtime" - - v1 "github.com/aws/karpenter-provider-aws/pkg/apis/v1" - "github.com/aws/karpenter-provider-aws/pkg/apis/v1beta1" "github.com/samber/lo" @@ -30,18 +26,9 @@ import ( "sigs.k8s.io/karpenter/pkg/utils/functional" ) -var ( - // Builder includes all types within the apis package - Builder = runtime.NewSchemeBuilder( - v1beta1.SchemeBuilder.AddToScheme, - v1.SchemeBuilder.AddToScheme, - ) - // AddToScheme may be used to add all resources defined in the project to a Scheme - AddToScheme = Builder.AddToScheme -) - //go:generate controller-gen crd object:headerFile="../../hack/boilerplate.go.txt" paths="./..." output:crd:artifacts:config=crds var ( + Group = "karpenter.k8s.aws" //go:embed crds/karpenter.k8s.aws_ec2nodeclasses.yaml EC2NodeClassCRD []byte CRDs = append(apis.CRDs, diff --git a/pkg/apis/crds/karpenter.sh_nodeclaims.yaml b/pkg/apis/crds/karpenter.sh_nodeclaims.yaml index 131713c05260..19154b7234f8 100644 --- a/pkg/apis/crds/karpenter.sh_nodeclaims.yaml +++ b/pkg/apis/crds/karpenter.sh_nodeclaims.yaml @@ -454,7 +454,7 @@ spec: - spec type: object served: true - storage: true + storage: false subresources: status: {} - additionalPrinterColumns: @@ -896,6 +896,6 @@ spec: - spec type: object served: true - storage: false + storage: true subresources: status: {} diff --git a/pkg/apis/crds/karpenter.sh_nodepools.yaml b/pkg/apis/crds/karpenter.sh_nodepools.yaml index fbac6c293d17..8ee4c8c81c0c 100644 --- a/pkg/apis/crds/karpenter.sh_nodepools.yaml +++ b/pkg/apis/crds/karpenter.sh_nodepools.yaml @@ -523,7 +523,7 @@ spec: - spec type: object served: true - storage: true + storage: false subresources: status: {} - additionalPrinterColumns: @@ -1043,6 +1043,6 @@ spec: - spec type: object served: true - storage: false + storage: true subresources: status: {} diff --git a/pkg/apis/v1/doc.go b/pkg/apis/v1/doc.go index 170c72b672d6..650a652d4084 100644 --- a/pkg/apis/v1/doc.go +++ b/pkg/apis/v1/doc.go @@ -17,3 +17,19 @@ limitations under the License. // +k8s:defaulter-gen=TypeMeta // +groupName=karpenter.k8s.aws package v1 // doc.go is discovered by codegen + +import ( + "github.com/aws/karpenter-provider-aws/pkg/apis" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/kubernetes/scheme" +) + +func init() { + gv := schema.GroupVersion{Group: apis.Group, Version: "v1"} + v1.AddToGroupVersion(scheme.Scheme, gv) + scheme.Scheme.AddKnownTypes(gv, + &EC2NodeClass{}, + &EC2NodeClassList{}, + ) +} diff --git a/pkg/apis/v1/labels.go b/pkg/apis/v1/labels.go index 9d83b5325b59..f055645bd480 100644 --- a/pkg/apis/v1/labels.go +++ b/pkg/apis/v1/labels.go @@ -18,9 +18,10 @@ import ( "fmt" "regexp" + "github.com/aws/karpenter-provider-aws/pkg/apis" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/sets" - + coreapis "sigs.k8s.io/karpenter/pkg/apis" "sigs.k8s.io/karpenter/pkg/apis/v1beta1" ) @@ -52,7 +53,7 @@ func init() { } var ( - TerminationFinalizer = Group + "/termination" + TerminationFinalizer = apis.Group + "/termination" AWSToKubeArchitectures = map[string]string{ "x86_64": v1beta1.ArchitectureAmd64, v1beta1.ArchitectureArm64: v1beta1.ArchitectureArm64, @@ -62,7 +63,7 @@ var ( v1beta1.ArchitectureArm64, ) RestrictedLabelDomains = []string{ - Group, + apis.Group, } RestrictedTagPatterns = []*regexp.Regexp{ // Adheres to cluster name pattern matching as specified in the API spec @@ -93,34 +94,34 @@ var ( ResourcePrivateIPv4Address v1.ResourceName = "vpc.amazonaws.com/PrivateIPv4Address" ResourceEFA v1.ResourceName = "vpc.amazonaws.com/efa" - LabelNodeClass = Group + "/ec2nodeclass" + LabelNodeClass = apis.Group + "/ec2nodeclass" LabelTopologyZoneID = "topology.k8s.aws/zone-id" - LabelInstanceHypervisor = Group + "/instance-hypervisor" - LabelInstanceEncryptionInTransitSupported = Group + "/instance-encryption-in-transit-supported" - LabelInstanceCategory = Group + "/instance-category" - LabelInstanceFamily = Group + "/instance-family" - LabelInstanceGeneration = Group + "/instance-generation" - LabelInstanceLocalNVME = Group + "/instance-local-nvme" - LabelInstanceSize = Group + "/instance-size" - LabelInstanceCPU = Group + "/instance-cpu" - LabelInstanceCPUManufacturer = Group + "/instance-cpu-manufacturer" - LabelInstanceMemory = Group + "/instance-memory" - LabelInstanceEBSBandwidth = Group + "/instance-ebs-bandwidth" - LabelInstanceNetworkBandwidth = Group + "/instance-network-bandwidth" - LabelInstanceGPUName = Group + "/instance-gpu-name" - LabelInstanceGPUManufacturer = Group + "/instance-gpu-manufacturer" - LabelInstanceGPUCount = Group + "/instance-gpu-count" - LabelInstanceGPUMemory = Group + "/instance-gpu-memory" - LabelInstanceAcceleratorName = Group + "/instance-accelerator-name" - LabelInstanceAcceleratorManufacturer = Group + "/instance-accelerator-manufacturer" - LabelInstanceAcceleratorCount = Group + "/instance-accelerator-count" - AnnotationEC2NodeClassHash = Group + "/ec2nodeclass-hash" - AnnotationEC2NodeClassHashVersion = Group + "/ec2nodeclass-hash-version" - AnnotationInstanceTagged = Group + "/tagged" + LabelInstanceHypervisor = apis.Group + "/instance-hypervisor" + LabelInstanceEncryptionInTransitSupported = apis.Group + "/instance-encryption-in-transit-supported" + LabelInstanceCategory = apis.Group + "/instance-category" + LabelInstanceFamily = apis.Group + "/instance-family" + LabelInstanceGeneration = apis.Group + "/instance-generation" + LabelInstanceLocalNVME = apis.Group + "/instance-local-nvme" + LabelInstanceSize = apis.Group + "/instance-size" + LabelInstanceCPU = apis.Group + "/instance-cpu" + LabelInstanceCPUManufacturer = apis.Group + "/instance-cpu-manufacturer" + LabelInstanceMemory = apis.Group + "/instance-memory" + LabelInstanceEBSBandwidth = apis.Group + "/instance-ebs-bandwidth" + LabelInstanceNetworkBandwidth = apis.Group + "/instance-network-bandwidth" + LabelInstanceGPUName = apis.Group + "/instance-gpu-name" + LabelInstanceGPUManufacturer = apis.Group + "/instance-gpu-manufacturer" + LabelInstanceGPUCount = apis.Group + "/instance-gpu-count" + LabelInstanceGPUMemory = apis.Group + "/instance-gpu-memory" + LabelInstanceAcceleratorName = apis.Group + "/instance-accelerator-name" + LabelInstanceAcceleratorManufacturer = apis.Group + "/instance-accelerator-manufacturer" + LabelInstanceAcceleratorCount = apis.Group + "/instance-accelerator-count" + AnnotationEC2NodeClassHash = apis.Group + "/ec2nodeclass-hash" + AnnotationEC2NodeClassHashVersion = apis.Group + "/ec2nodeclass-hash-version" + AnnotationInstanceTagged = apis.Group + "/tagged" - TagNodeClaim = v1beta1.Group + "/nodeclaim" - TagManagedLaunchTemplate = Group + "/cluster" + TagNodeClaim = coreapis.Group + "/nodeclaim" + TagManagedLaunchTemplate = apis.Group + "/cluster" TagName = "Name" ) diff --git a/pkg/apis/v1/register.go b/pkg/apis/v1/register.go deleted file mode 100644 index ed82071157d8..000000000000 --- a/pkg/apis/v1/register.go +++ /dev/null @@ -1,34 +0,0 @@ -/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - Group = "karpenter.k8s.aws" - SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: "v1"} - SchemeBuilder = runtime.NewSchemeBuilder(func(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(SchemeGroupVersion, - &EC2NodeClass{}, - &EC2NodeClassList{}, - ) - metav1.AddToGroupVersion(scheme, SchemeGroupVersion) - return nil - }) -) diff --git a/pkg/apis/v1/suite_test.go b/pkg/apis/v1/suite_test.go index b3309cbca37c..38279fe359bf 100644 --- a/pkg/apis/v1/suite_test.go +++ b/pkg/apis/v1/suite_test.go @@ -24,7 +24,6 @@ import ( . "sigs.k8s.io/karpenter/pkg/test/expectations" - "sigs.k8s.io/karpenter/pkg/operator/scheme" coretest "sigs.k8s.io/karpenter/pkg/test" "github.com/aws/karpenter-provider-aws/pkg/apis" @@ -42,7 +41,7 @@ func TestAPIs(t *testing.T) { } var _ = BeforeSuite(func() { - env = coretest.NewEnvironment(scheme.Scheme, coretest.WithCRDs(apis.CRDs...)) + env = coretest.NewEnvironment(coretest.WithCRDs(apis.CRDs...)) awsEnv = test.NewEnvironment(ctx, env) }) diff --git a/pkg/apis/v1/zz_generated.deepcopy.go b/pkg/apis/v1/zz_generated.deepcopy.go index 07709df56478..d871726a4033 100644 --- a/pkg/apis/v1/zz_generated.deepcopy.go +++ b/pkg/apis/v1/zz_generated.deepcopy.go @@ -21,7 +21,7 @@ package v1 import ( "github.com/awslabs/operatorpkg/status" corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" + runtime "k8s.io/apimachinery/pkg/runtime" ) // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. diff --git a/pkg/apis/v1beta1/doc.go b/pkg/apis/v1beta1/doc.go index 93f6c319052f..1bd056a104ae 100644 --- a/pkg/apis/v1beta1/doc.go +++ b/pkg/apis/v1beta1/doc.go @@ -17,3 +17,19 @@ limitations under the License. // +k8s:defaulter-gen=TypeMeta // +groupName=karpenter.k8s.aws package v1beta1 // doc.go is discovered by codegen + +import ( + "github.com/aws/karpenter-provider-aws/pkg/apis" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/kubernetes/scheme" +) + +func init() { + gv := schema.GroupVersion{Group: apis.Group, Version: "v1beta1"} + v1.AddToGroupVersion(scheme.Scheme, gv) + scheme.Scheme.AddKnownTypes(gv, + &EC2NodeClass{}, + &EC2NodeClassList{}, + ) +} diff --git a/pkg/apis/v1beta1/labels.go b/pkg/apis/v1beta1/labels.go index ac72ab48b908..91b93a3019e3 100644 --- a/pkg/apis/v1beta1/labels.go +++ b/pkg/apis/v1beta1/labels.go @@ -18,9 +18,10 @@ import ( "fmt" "regexp" + "github.com/aws/karpenter-provider-aws/pkg/apis" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/sets" - + coreapis "sigs.k8s.io/karpenter/pkg/apis" "sigs.k8s.io/karpenter/pkg/apis/v1beta1" ) @@ -52,7 +53,7 @@ func init() { } var ( - TerminationFinalizer = Group + "/termination" + TerminationFinalizer = apis.Group + "/termination" AWSToKubeArchitectures = map[string]string{ "x86_64": v1beta1.ArchitectureAmd64, v1beta1.ArchitectureArm64: v1beta1.ArchitectureArm64, @@ -62,7 +63,7 @@ var ( v1beta1.ArchitectureArm64, ) RestrictedLabelDomains = []string{ - Group, + apis.Group, } RestrictedTagPatterns = []*regexp.Regexp{ // Adheres to cluster name pattern matching as specified in the API spec @@ -93,34 +94,34 @@ var ( ResourcePrivateIPv4Address v1.ResourceName = "vpc.amazonaws.com/PrivateIPv4Address" ResourceEFA v1.ResourceName = "vpc.amazonaws.com/efa" - LabelNodeClass = Group + "/ec2nodeclass" + LabelNodeClass = apis.Group + "/ec2nodeclass" LabelTopologyZoneID = "topology.k8s.aws/zone-id" - LabelInstanceHypervisor = Group + "/instance-hypervisor" - LabelInstanceEncryptionInTransitSupported = Group + "/instance-encryption-in-transit-supported" - LabelInstanceCategory = Group + "/instance-category" - LabelInstanceFamily = Group + "/instance-family" - LabelInstanceGeneration = Group + "/instance-generation" - LabelInstanceLocalNVME = Group + "/instance-local-nvme" - LabelInstanceSize = Group + "/instance-size" - LabelInstanceCPU = Group + "/instance-cpu" - LabelInstanceCPUManufacturer = Group + "/instance-cpu-manufacturer" - LabelInstanceMemory = Group + "/instance-memory" - LabelInstanceEBSBandwidth = Group + "/instance-ebs-bandwidth" - LabelInstanceNetworkBandwidth = Group + "/instance-network-bandwidth" - LabelInstanceGPUName = Group + "/instance-gpu-name" - LabelInstanceGPUManufacturer = Group + "/instance-gpu-manufacturer" - LabelInstanceGPUCount = Group + "/instance-gpu-count" - LabelInstanceGPUMemory = Group + "/instance-gpu-memory" - LabelInstanceAcceleratorName = Group + "/instance-accelerator-name" - LabelInstanceAcceleratorManufacturer = Group + "/instance-accelerator-manufacturer" - LabelInstanceAcceleratorCount = Group + "/instance-accelerator-count" - AnnotationEC2NodeClassHash = Group + "/ec2nodeclass-hash" - AnnotationEC2NodeClassHashVersion = Group + "/ec2nodeclass-hash-version" - AnnotationInstanceTagged = Group + "/tagged" + LabelInstanceHypervisor = apis.Group + "/instance-hypervisor" + LabelInstanceEncryptionInTransitSupported = apis.Group + "/instance-encryption-in-transit-supported" + LabelInstanceCategory = apis.Group + "/instance-category" + LabelInstanceFamily = apis.Group + "/instance-family" + LabelInstanceGeneration = apis.Group + "/instance-generation" + LabelInstanceLocalNVME = apis.Group + "/instance-local-nvme" + LabelInstanceSize = apis.Group + "/instance-size" + LabelInstanceCPU = apis.Group + "/instance-cpu" + LabelInstanceCPUManufacturer = apis.Group + "/instance-cpu-manufacturer" + LabelInstanceMemory = apis.Group + "/instance-memory" + LabelInstanceEBSBandwidth = apis.Group + "/instance-ebs-bandwidth" + LabelInstanceNetworkBandwidth = apis.Group + "/instance-network-bandwidth" + LabelInstanceGPUName = apis.Group + "/instance-gpu-name" + LabelInstanceGPUManufacturer = apis.Group + "/instance-gpu-manufacturer" + LabelInstanceGPUCount = apis.Group + "/instance-gpu-count" + LabelInstanceGPUMemory = apis.Group + "/instance-gpu-memory" + LabelInstanceAcceleratorName = apis.Group + "/instance-accelerator-name" + LabelInstanceAcceleratorManufacturer = apis.Group + "/instance-accelerator-manufacturer" + LabelInstanceAcceleratorCount = apis.Group + "/instance-accelerator-count" + AnnotationEC2NodeClassHash = apis.Group + "/ec2nodeclass-hash" + AnnotationEC2NodeClassHashVersion = apis.Group + "/ec2nodeclass-hash-version" + AnnotationInstanceTagged = apis.Group + "/tagged" - TagNodeClaim = v1beta1.Group + "/nodeclaim" - TagManagedLaunchTemplate = Group + "/cluster" + TagNodeClaim = coreapis.Group + "/nodeclaim" + TagManagedLaunchTemplate = apis.Group + "/cluster" TagName = "Name" ) diff --git a/pkg/apis/v1beta1/register.go b/pkg/apis/v1beta1/register.go deleted file mode 100644 index 65c57e81addf..000000000000 --- a/pkg/apis/v1beta1/register.go +++ /dev/null @@ -1,34 +0,0 @@ -/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - Group = "karpenter.k8s.aws" - SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: "v1beta1"} - SchemeBuilder = runtime.NewSchemeBuilder(func(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(SchemeGroupVersion, - &EC2NodeClass{}, - &EC2NodeClassList{}, - ) - metav1.AddToGroupVersion(scheme, SchemeGroupVersion) - return nil - }) -) diff --git a/pkg/apis/v1beta1/suite_test.go b/pkg/apis/v1beta1/suite_test.go index a07a4471a03e..028275044a16 100644 --- a/pkg/apis/v1beta1/suite_test.go +++ b/pkg/apis/v1beta1/suite_test.go @@ -24,7 +24,6 @@ import ( . "sigs.k8s.io/karpenter/pkg/test/expectations" . "sigs.k8s.io/karpenter/pkg/utils/testing" - "sigs.k8s.io/karpenter/pkg/operator/scheme" coretest "sigs.k8s.io/karpenter/pkg/test" "github.com/aws/karpenter-provider-aws/pkg/apis" @@ -42,7 +41,7 @@ func TestAPIs(t *testing.T) { } var _ = BeforeSuite(func() { - env = coretest.NewEnvironment(scheme.Scheme, coretest.WithCRDs(apis.CRDs...)) + env = coretest.NewEnvironment(coretest.WithCRDs(apis.CRDs...)) awsEnv = test.NewEnvironment(ctx, env) }) diff --git a/pkg/apis/v1beta1/zz_generated.deepcopy.go b/pkg/apis/v1beta1/zz_generated.deepcopy.go index f248b480be5b..64c04b8c31f8 100644 --- a/pkg/apis/v1beta1/zz_generated.deepcopy.go +++ b/pkg/apis/v1beta1/zz_generated.deepcopy.go @@ -21,7 +21,7 @@ package v1beta1 import ( "github.com/awslabs/operatorpkg/status" "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" + runtime "k8s.io/apimachinery/pkg/runtime" ) // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. diff --git a/pkg/cloudprovider/cloudprovider.go b/pkg/cloudprovider/cloudprovider.go index a4c0c83fff16..db76eed0eb34 100644 --- a/pkg/cloudprovider/cloudprovider.go +++ b/pkg/cloudprovider/cloudprovider.go @@ -21,18 +21,21 @@ import ( "time" "github.com/aws/aws-sdk-go/service/ec2" + "github.com/awslabs/operatorpkg/object" "github.com/awslabs/operatorpkg/status" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/runtime/schema" "sigs.k8s.io/controller-runtime/pkg/log" + coreapis "sigs.k8s.io/karpenter/pkg/apis" corev1beta1 "sigs.k8s.io/karpenter/pkg/apis/v1beta1" "sigs.k8s.io/karpenter/pkg/events" "sigs.k8s.io/karpenter/pkg/scheduling" "sigs.k8s.io/karpenter/pkg/utils/functional" "sigs.k8s.io/karpenter/pkg/utils/resources" + "github.com/aws/karpenter-provider-aws/pkg/apis" "github.com/aws/karpenter-provider-aws/pkg/apis/v1beta1" "github.com/aws/karpenter-provider-aws/pkg/utils" @@ -218,13 +221,7 @@ func (c *CloudProvider) Name() string { } func (c *CloudProvider) GetSupportedNodeClasses() []schema.GroupVersionKind { - return []schema.GroupVersionKind{ - { - Group: v1beta1.SchemeGroupVersion.Group, - Version: v1beta1.SchemeGroupVersion.Version, - Kind: "EC2NodeClass", - }, - } + return []schema.GroupVersionKind{object.GVK(&v1beta1.EC2NodeClass{})} } func (c *CloudProvider) resolveNodeClassFromNodeClaim(ctx context.Context, nodeClaim *corev1beta1.NodeClaim) (*v1beta1.EC2NodeClass, error) { @@ -300,7 +297,7 @@ func (c *CloudProvider) resolveNodePoolFromInstance(ctx context.Context, instanc } return nodePool, nil } - return nil, errors.NewNotFound(schema.GroupResource{Group: corev1beta1.Group, Resource: "nodepools"}, "") + return nil, errors.NewNotFound(schema.GroupResource{Group: coreapis.Group, Resource: "nodepools"}, "") } //nolint:gocyclo @@ -362,7 +359,7 @@ func (c *CloudProvider) instanceToNodeClaim(i *instance.Instance, instanceType * // newTerminatingNodeClassError returns a NotFound error for handling by func newTerminatingNodeClassError(name string) *errors.StatusError { - qualifiedResource := schema.GroupResource{Group: corev1beta1.Group, Resource: "ec2nodeclasses"} + qualifiedResource := schema.GroupResource{Group: apis.Group, Resource: "ec2nodeclasses"} err := errors.NewNotFound(qualifiedResource, name) err.ErrStatus.Message = fmt.Sprintf("%s %q is terminating, treating as not found", qualifiedResource.String(), name) return err diff --git a/pkg/cloudprovider/suite_test.go b/pkg/cloudprovider/suite_test.go index 9bade4ba4f67..dde019ae3b36 100644 --- a/pkg/cloudprovider/suite_test.go +++ b/pkg/cloudprovider/suite_test.go @@ -50,7 +50,6 @@ import ( "sigs.k8s.io/karpenter/pkg/controllers/state" "sigs.k8s.io/karpenter/pkg/events" coreoptions "sigs.k8s.io/karpenter/pkg/operator/options" - "sigs.k8s.io/karpenter/pkg/operator/scheme" "sigs.k8s.io/karpenter/pkg/scheduling" coretest "sigs.k8s.io/karpenter/pkg/test" @@ -77,7 +76,7 @@ func TestAWS(t *testing.T) { } var _ = BeforeSuite(func() { - env = coretest.NewEnvironment(scheme.Scheme, coretest.WithCRDs(apis.CRDs...)) + env = coretest.NewEnvironment(coretest.WithCRDs(apis.CRDs...)) ctx = coreoptions.ToContext(ctx, coretest.Options()) ctx = options.ToContext(ctx, test.Options()) ctx, stop = context.WithCancel(ctx) diff --git a/pkg/controllers/interruption/interruption_benchmark_test.go b/pkg/controllers/interruption/interruption_benchmark_test.go index 4c369e11900d..a5aa33982e7d 100644 --- a/pkg/controllers/interruption/interruption_benchmark_test.go +++ b/pkg/controllers/interruption/interruption_benchmark_test.go @@ -45,8 +45,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/karpenter/pkg/apis/v1beta1" - "sigs.k8s.io/karpenter/pkg/operator/scheme" - awscache "github.com/aws/karpenter-provider-aws/pkg/cache" "github.com/aws/karpenter-provider-aws/pkg/controllers/interruption" "github.com/aws/karpenter-provider-aws/pkg/controllers/interruption/events" @@ -87,7 +85,7 @@ func benchmarkNotificationController(b *testing.B, messageCount int) { IsolatedVPC: lo.ToPtr(true), InterruptionQueue: lo.ToPtr("test-cluster"), })) - env = coretest.NewEnvironment(scheme.Scheme) + env = coretest.NewEnvironment() // Stop the coretest environment after the coretest completes defer func() { if err := retry.Do(func() error { diff --git a/pkg/controllers/interruption/suite_test.go b/pkg/controllers/interruption/suite_test.go index ca786b360be3..d0ea64cfab6f 100644 --- a/pkg/controllers/interruption/suite_test.go +++ b/pkg/controllers/interruption/suite_test.go @@ -35,7 +35,6 @@ import ( corev1beta1 "sigs.k8s.io/karpenter/pkg/apis/v1beta1" "sigs.k8s.io/karpenter/pkg/events" coreoptions "sigs.k8s.io/karpenter/pkg/operator/options" - "sigs.k8s.io/karpenter/pkg/operator/scheme" coretest "sigs.k8s.io/karpenter/pkg/test" "github.com/aws/karpenter-provider-aws/pkg/apis" @@ -76,7 +75,7 @@ func TestAPIs(t *testing.T) { } var _ = BeforeSuite(func() { - env = coretest.NewEnvironment(scheme.Scheme, coretest.WithCRDs(apis.CRDs...)) + env = coretest.NewEnvironment(coretest.WithCRDs(apis.CRDs...)) fakeClock = &clock.FakeClock{} unavailableOfferingsCache = awscache.NewUnavailableOfferings() sqsapi = &fake.SQSAPI{} diff --git a/pkg/controllers/nodeclaim/garbagecollection/suite_test.go b/pkg/controllers/nodeclaim/garbagecollection/suite_test.go index c8d37bcf5a48..0f5d1733fb24 100644 --- a/pkg/controllers/nodeclaim/garbagecollection/suite_test.go +++ b/pkg/controllers/nodeclaim/garbagecollection/suite_test.go @@ -29,7 +29,6 @@ import ( corev1beta1 "sigs.k8s.io/karpenter/pkg/apis/v1beta1" corecloudprovider "sigs.k8s.io/karpenter/pkg/cloudprovider" "sigs.k8s.io/karpenter/pkg/events" - "sigs.k8s.io/karpenter/pkg/operator/scheme" coretest "sigs.k8s.io/karpenter/pkg/test" "github.com/aws/karpenter-provider-aws/pkg/apis" @@ -60,7 +59,7 @@ func TestAPIs(t *testing.T) { var _ = BeforeSuite(func() { ctx = options.ToContext(ctx, test.Options()) - env = coretest.NewEnvironment(scheme.Scheme, coretest.WithCRDs(apis.CRDs...)) + env = coretest.NewEnvironment(coretest.WithCRDs(apis.CRDs...)) awsEnv = test.NewEnvironment(ctx, env) cloudProvider = cloudprovider.New(awsEnv.InstanceTypesProvider, awsEnv.InstanceProvider, events.NewRecorder(&record.FakeRecorder{}), env.Client, awsEnv.AMIProvider, awsEnv.SecurityGroupProvider) diff --git a/pkg/controllers/nodeclaim/tagging/suite_test.go b/pkg/controllers/nodeclaim/tagging/suite_test.go index b132b71d90e7..e379439ff7dc 100644 --- a/pkg/controllers/nodeclaim/tagging/suite_test.go +++ b/pkg/controllers/nodeclaim/tagging/suite_test.go @@ -35,7 +35,6 @@ import ( "github.com/aws/karpenter-provider-aws/pkg/test" coreoptions "sigs.k8s.io/karpenter/pkg/operator/options" - "sigs.k8s.io/karpenter/pkg/operator/scheme" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" @@ -55,7 +54,7 @@ func TestAPIs(t *testing.T) { } var _ = BeforeSuite(func() { - env = coretest.NewEnvironment(scheme.Scheme, coretest.WithCRDs(apis.CRDs...)) + env = coretest.NewEnvironment(coretest.WithCRDs(apis.CRDs...)) ctx = coreoptions.ToContext(ctx, coretest.Options()) ctx = options.ToContext(ctx, test.Options()) awsEnv = test.NewEnvironment(ctx, env) diff --git a/pkg/controllers/nodeclass/hash/suite_test.go b/pkg/controllers/nodeclass/hash/suite_test.go index f8962aa64cdd..71e1f8c67fa0 100644 --- a/pkg/controllers/nodeclass/hash/suite_test.go +++ b/pkg/controllers/nodeclass/hash/suite_test.go @@ -23,7 +23,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" corev1beta1 "sigs.k8s.io/karpenter/pkg/apis/v1beta1" coreoptions "sigs.k8s.io/karpenter/pkg/operator/options" - "sigs.k8s.io/karpenter/pkg/operator/scheme" coretest "sigs.k8s.io/karpenter/pkg/test" "github.com/aws/karpenter-provider-aws/pkg/apis" @@ -50,7 +49,7 @@ func TestAPIs(t *testing.T) { } var _ = BeforeSuite(func() { - env = coretest.NewEnvironment(scheme.Scheme, coretest.WithCRDs(apis.CRDs...), coretest.WithFieldIndexers(test.EC2NodeClassFieldIndexer(ctx))) + env = coretest.NewEnvironment(coretest.WithCRDs(apis.CRDs...), coretest.WithFieldIndexers(test.EC2NodeClassFieldIndexer(ctx))) ctx = coreoptions.ToContext(ctx, coretest.Options()) ctx = options.ToContext(ctx, test.Options()) awsEnv = test.NewEnvironment(ctx, env) diff --git a/pkg/controllers/nodeclass/status/suite_test.go b/pkg/controllers/nodeclass/status/suite_test.go index bd3afe8886ab..ff91cb8335f7 100644 --- a/pkg/controllers/nodeclass/status/suite_test.go +++ b/pkg/controllers/nodeclass/status/suite_test.go @@ -19,7 +19,6 @@ import ( "testing" coreoptions "sigs.k8s.io/karpenter/pkg/operator/options" - "sigs.k8s.io/karpenter/pkg/operator/scheme" coretest "sigs.k8s.io/karpenter/pkg/test" "github.com/aws/karpenter-provider-aws/pkg/apis" @@ -47,7 +46,7 @@ func TestAPIs(t *testing.T) { } var _ = BeforeSuite(func() { - env = coretest.NewEnvironment(scheme.Scheme, coretest.WithCRDs(apis.CRDs...), coretest.WithFieldIndexers(test.EC2NodeClassFieldIndexer(ctx))) + env = coretest.NewEnvironment(coretest.WithCRDs(apis.CRDs...), coretest.WithFieldIndexers(test.EC2NodeClassFieldIndexer(ctx))) ctx = coreoptions.ToContext(ctx, coretest.Options()) ctx = options.ToContext(ctx, test.Options()) awsEnv = test.NewEnvironment(ctx, env) diff --git a/pkg/controllers/nodeclass/termination/suite_test.go b/pkg/controllers/nodeclass/termination/suite_test.go index f45a45b4f69a..946c063f78bb 100644 --- a/pkg/controllers/nodeclass/termination/suite_test.go +++ b/pkg/controllers/nodeclass/termination/suite_test.go @@ -29,7 +29,6 @@ import ( corev1beta1 "sigs.k8s.io/karpenter/pkg/apis/v1beta1" "sigs.k8s.io/karpenter/pkg/events" coreoptions "sigs.k8s.io/karpenter/pkg/operator/options" - "sigs.k8s.io/karpenter/pkg/operator/scheme" coretest "sigs.k8s.io/karpenter/pkg/test" "github.com/aws/karpenter-provider-aws/pkg/apis" @@ -57,7 +56,7 @@ func TestAPIs(t *testing.T) { } var _ = BeforeSuite(func() { - env = coretest.NewEnvironment(scheme.Scheme, coretest.WithCRDs(apis.CRDs...), coretest.WithFieldIndexers(test.EC2NodeClassFieldIndexer(ctx))) + env = coretest.NewEnvironment(coretest.WithCRDs(apis.CRDs...), coretest.WithFieldIndexers(test.EC2NodeClassFieldIndexer(ctx))) ctx = coreoptions.ToContext(ctx, coretest.Options()) ctx = options.ToContext(ctx, test.Options()) awsEnv = test.NewEnvironment(ctx, env) diff --git a/pkg/controllers/providers/instancetype/suite_test.go b/pkg/controllers/providers/instancetype/suite_test.go index e520d6dce547..aafd46c9a580 100644 --- a/pkg/controllers/providers/instancetype/suite_test.go +++ b/pkg/controllers/providers/instancetype/suite_test.go @@ -21,7 +21,6 @@ import ( v1 "k8s.io/api/core/v1" corev1beta1 "sigs.k8s.io/karpenter/pkg/apis/v1beta1" coreoptions "sigs.k8s.io/karpenter/pkg/operator/options" - "sigs.k8s.io/karpenter/pkg/operator/scheme" coretest "sigs.k8s.io/karpenter/pkg/test" "github.com/aws/aws-sdk-go/service/ec2" @@ -53,7 +52,7 @@ func TestAWS(t *testing.T) { } var _ = BeforeSuite(func() { - env = coretest.NewEnvironment(scheme.Scheme, coretest.WithCRDs(apis.CRDs...)) + env = coretest.NewEnvironment(coretest.WithCRDs(apis.CRDs...)) ctx = coreoptions.ToContext(ctx, coretest.Options()) ctx = options.ToContext(ctx, test.Options()) ctx, stop = context.WithCancel(ctx) diff --git a/pkg/controllers/providers/pricing/suite_test.go b/pkg/controllers/providers/pricing/suite_test.go index ba48bccda745..169a525baff7 100644 --- a/pkg/controllers/providers/pricing/suite_test.go +++ b/pkg/controllers/providers/pricing/suite_test.go @@ -25,7 +25,6 @@ import ( awspricing "github.com/aws/aws-sdk-go/service/pricing" "github.com/samber/lo" coreoptions "sigs.k8s.io/karpenter/pkg/operator/options" - "sigs.k8s.io/karpenter/pkg/operator/scheme" coretest "sigs.k8s.io/karpenter/pkg/test" "github.com/aws/karpenter-provider-aws/pkg/apis" @@ -54,7 +53,7 @@ func TestAWS(t *testing.T) { } var _ = BeforeSuite(func() { - env = coretest.NewEnvironment(scheme.Scheme, coretest.WithCRDs(apis.CRDs...)) + env = coretest.NewEnvironment(coretest.WithCRDs(apis.CRDs...)) ctx = coreoptions.ToContext(ctx, coretest.Options()) ctx = options.ToContext(ctx, test.Options()) ctx, stop = context.WithCancel(ctx) diff --git a/pkg/operator/operator.go b/pkg/operator/operator.go index 3b95d093d869..6719c31d3593 100644 --- a/pkg/operator/operator.go +++ b/pkg/operator/operator.go @@ -48,9 +48,7 @@ import ( corev1beta1 "sigs.k8s.io/karpenter/pkg/apis/v1beta1" "sigs.k8s.io/karpenter/pkg/operator" - "sigs.k8s.io/karpenter/pkg/operator/scheme" - "github.com/aws/karpenter-provider-aws/pkg/apis" awscache "github.com/aws/karpenter-provider-aws/pkg/cache" "github.com/aws/karpenter-provider-aws/pkg/operator/options" "github.com/aws/karpenter-provider-aws/pkg/providers/amifamily" @@ -65,7 +63,6 @@ import ( ) func init() { - lo.Must0(apis.AddToScheme(scheme.Scheme)) corev1beta1.NormalizedLabels = lo.Assign(corev1beta1.NormalizedLabels, map[string]string{"topology.ebs.csi.aws.com/zone": corev1.LabelTopologyZone}) } diff --git a/pkg/operator/suite_test.go b/pkg/operator/suite_test.go index e9b47af1664d..47c85c5fbc52 100644 --- a/pkg/operator/suite_test.go +++ b/pkg/operator/suite_test.go @@ -22,7 +22,6 @@ import ( "github.com/aws/aws-sdk-go/service/eks" "github.com/samber/lo" - "sigs.k8s.io/karpenter/pkg/operator/scheme" coretest "sigs.k8s.io/karpenter/pkg/test" "github.com/aws/karpenter-provider-aws/pkg/apis" @@ -49,7 +48,7 @@ func TestAWS(t *testing.T) { } var _ = BeforeSuite(func() { - env = coretest.NewEnvironment(scheme.Scheme, coretest.WithCRDs(apis.CRDs...)) + env = coretest.NewEnvironment(coretest.WithCRDs(apis.CRDs...)) ctx, stop = context.WithCancel(ctx) fakeEKSAPI = &fake.EKSAPI{} diff --git a/pkg/providers/amifamily/suite_test.go b/pkg/providers/amifamily/suite_test.go index 56c4660901c1..d1a8250f72a6 100644 --- a/pkg/providers/amifamily/suite_test.go +++ b/pkg/providers/amifamily/suite_test.go @@ -34,7 +34,6 @@ import ( corev1beta1 "sigs.k8s.io/karpenter/pkg/apis/v1beta1" coreoptions "sigs.k8s.io/karpenter/pkg/operator/options" - "sigs.k8s.io/karpenter/pkg/operator/scheme" "sigs.k8s.io/karpenter/pkg/scheduling" coretest "sigs.k8s.io/karpenter/pkg/test" @@ -64,7 +63,7 @@ const ( ) var _ = BeforeSuite(func() { - env = coretest.NewEnvironment(scheme.Scheme, coretest.WithCRDs(apis.CRDs...)) + env = coretest.NewEnvironment(coretest.WithCRDs(apis.CRDs...)) ctx = coreoptions.ToContext(ctx, coretest.Options()) ctx = options.ToContext(ctx, test.Options()) awsEnv = test.NewEnvironment(ctx, env) diff --git a/pkg/providers/instance/suite_test.go b/pkg/providers/instance/suite_test.go index 08da5f5053cf..2571ad0205ce 100644 --- a/pkg/providers/instance/suite_test.go +++ b/pkg/providers/instance/suite_test.go @@ -30,7 +30,6 @@ import ( corecloudprovider "sigs.k8s.io/karpenter/pkg/cloudprovider" "sigs.k8s.io/karpenter/pkg/events" coreoptions "sigs.k8s.io/karpenter/pkg/operator/options" - "sigs.k8s.io/karpenter/pkg/operator/scheme" coretest "sigs.k8s.io/karpenter/pkg/test" "github.com/aws/karpenter-provider-aws/pkg/apis" @@ -59,7 +58,7 @@ func TestAWS(t *testing.T) { } var _ = BeforeSuite(func() { - env = coretest.NewEnvironment(scheme.Scheme, coretest.WithCRDs(apis.CRDs...)) + env = coretest.NewEnvironment(coretest.WithCRDs(apis.CRDs...)) ctx = coreoptions.ToContext(ctx, coretest.Options()) ctx = options.ToContext(ctx, test.Options()) awsEnv = test.NewEnvironment(ctx, env) diff --git a/pkg/providers/instancetype/suite_test.go b/pkg/providers/instancetype/suite_test.go index 77b85b79dd8b..5c364b0bda6f 100644 --- a/pkg/providers/instancetype/suite_test.go +++ b/pkg/providers/instancetype/suite_test.go @@ -45,7 +45,6 @@ import ( "sigs.k8s.io/karpenter/pkg/controllers/state" "sigs.k8s.io/karpenter/pkg/events" coreoptions "sigs.k8s.io/karpenter/pkg/operator/options" - "sigs.k8s.io/karpenter/pkg/operator/scheme" "sigs.k8s.io/karpenter/pkg/scheduling" coretest "sigs.k8s.io/karpenter/pkg/test" @@ -79,7 +78,7 @@ func TestAWS(t *testing.T) { } var _ = BeforeSuite(func() { - env = coretest.NewEnvironment(scheme.Scheme, coretest.WithCRDs(apis.CRDs...)) + env = coretest.NewEnvironment(coretest.WithCRDs(apis.CRDs...)) ctx = coreoptions.ToContext(ctx, coretest.Options()) ctx = options.ToContext(ctx, test.Options()) awsEnv = test.NewEnvironment(ctx, env) diff --git a/pkg/providers/launchtemplate/launchtemplate.go b/pkg/providers/launchtemplate/launchtemplate.go index b5a408df0d19..8a14daaf04a6 100644 --- a/pkg/providers/launchtemplate/launchtemplate.go +++ b/pkg/providers/launchtemplate/launchtemplate.go @@ -40,6 +40,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" corev1beta1 "sigs.k8s.io/karpenter/pkg/apis/v1beta1" + "github.com/aws/karpenter-provider-aws/pkg/apis" "github.com/aws/karpenter-provider-aws/pkg/apis/v1beta1" awserrors "github.com/aws/karpenter-provider-aws/pkg/errors" "github.com/aws/karpenter-provider-aws/pkg/operator/options" @@ -147,7 +148,7 @@ func (p *DefaultProvider) InvalidateCache(ctx context.Context, ltName string, lt } func LaunchTemplateName(options *amifamily.LaunchTemplate) string { - return fmt.Sprintf("%s/%d", v1beta1.Group, lo.Must(hashstructure.Hash(options, hashstructure.FormatV2, &hashstructure.HashOptions{SlicesAsSets: true}))) + return fmt.Sprintf("%s/%d", apis.Group, lo.Must(hashstructure.Hash(options, hashstructure.FormatV2, &hashstructure.HashOptions{SlicesAsSets: true}))) } func (p *DefaultProvider) createAMIOptions(ctx context.Context, nodeClass *v1beta1.EC2NodeClass, labels, tags map[string]string) (*amifamily.Options, error) { diff --git a/pkg/providers/launchtemplate/suite_test.go b/pkg/providers/launchtemplate/suite_test.go index e7c7608bf17d..11611d8d6a4b 100644 --- a/pkg/providers/launchtemplate/suite_test.go +++ b/pkg/providers/launchtemplate/suite_test.go @@ -50,7 +50,6 @@ import ( "sigs.k8s.io/karpenter/pkg/controllers/state" "sigs.k8s.io/karpenter/pkg/events" coreoptions "sigs.k8s.io/karpenter/pkg/operator/options" - "sigs.k8s.io/karpenter/pkg/operator/scheme" coretest "sigs.k8s.io/karpenter/pkg/test" . "sigs.k8s.io/karpenter/pkg/test/expectations" @@ -86,7 +85,7 @@ func TestAWS(t *testing.T) { } var _ = BeforeSuite(func() { - env = coretest.NewEnvironment(scheme.Scheme, coretest.WithCRDs(apis.CRDs...)) + env = coretest.NewEnvironment(coretest.WithCRDs(apis.CRDs...)) ctx = coreoptions.ToContext(ctx, coretest.Options()) ctx = options.ToContext(ctx, test.Options()) ctx, stop = context.WithCancel(ctx) diff --git a/pkg/providers/securitygroup/suite_test.go b/pkg/providers/securitygroup/suite_test.go index b1ed34b6a38c..70aa8dcf1539 100644 --- a/pkg/providers/securitygroup/suite_test.go +++ b/pkg/providers/securitygroup/suite_test.go @@ -30,7 +30,6 @@ import ( "github.com/aws/karpenter-provider-aws/pkg/test" coreoptions "sigs.k8s.io/karpenter/pkg/operator/options" - "sigs.k8s.io/karpenter/pkg/operator/scheme" coretest "sigs.k8s.io/karpenter/pkg/test" . "github.com/onsi/ginkgo/v2" @@ -52,7 +51,7 @@ func TestAWS(t *testing.T) { } var _ = BeforeSuite(func() { - env = coretest.NewEnvironment(scheme.Scheme, coretest.WithCRDs(apis.CRDs...)) + env = coretest.NewEnvironment(coretest.WithCRDs(apis.CRDs...)) ctx = coreoptions.ToContext(ctx, coretest.Options()) ctx = options.ToContext(ctx, test.Options()) ctx, stop = context.WithCancel(ctx) diff --git a/pkg/providers/subnet/suite_test.go b/pkg/providers/subnet/suite_test.go index cfaa988773fd..846c20018a5e 100644 --- a/pkg/providers/subnet/suite_test.go +++ b/pkg/providers/subnet/suite_test.go @@ -30,7 +30,6 @@ import ( "github.com/aws/karpenter-provider-aws/pkg/test" coreoptions "sigs.k8s.io/karpenter/pkg/operator/options" - "sigs.k8s.io/karpenter/pkg/operator/scheme" coretest "sigs.k8s.io/karpenter/pkg/test" . "github.com/onsi/ginkgo/v2" @@ -52,7 +51,7 @@ func TestAWS(t *testing.T) { } var _ = BeforeSuite(func() { - env = coretest.NewEnvironment(scheme.Scheme, coretest.WithCRDs(apis.CRDs...)) + env = coretest.NewEnvironment(coretest.WithCRDs(apis.CRDs...)) ctx = coreoptions.ToContext(ctx, coretest.Options()) ctx = options.ToContext(ctx, test.Options()) ctx, stop = context.WithCancel(ctx) diff --git a/pkg/test/environment.go b/pkg/test/environment.go index afef49ebfac5..bed6bd4728cc 100644 --- a/pkg/test/environment.go +++ b/pkg/test/environment.go @@ -23,9 +23,7 @@ import ( corev1 "k8s.io/api/core/v1" corev1beta1 "sigs.k8s.io/karpenter/pkg/apis/v1beta1" - "sigs.k8s.io/karpenter/pkg/operator/scheme" - "github.com/aws/karpenter-provider-aws/pkg/apis" awscache "github.com/aws/karpenter-provider-aws/pkg/cache" "github.com/aws/karpenter-provider-aws/pkg/fake" "github.com/aws/karpenter-provider-aws/pkg/providers/amifamily" @@ -44,7 +42,6 @@ import ( ) func init() { - lo.Must0(apis.AddToScheme(scheme.Scheme)) corev1beta1.NormalizedLabels = lo.Assign(corev1beta1.NormalizedLabels, map[string]string{"topology.ebs.csi.aws.com/zone": corev1.LabelTopologyZone}) } diff --git a/pkg/webhooks/webhooks.go b/pkg/webhooks/webhooks.go index 8c81ba72b6a4..9ede88fdd480 100644 --- a/pkg/webhooks/webhooks.go +++ b/pkg/webhooks/webhooks.go @@ -26,6 +26,7 @@ import ( "knative.dev/pkg/webhook/resourcesemantics/validation" "github.com/aws/karpenter-provider-aws/pkg/apis/v1beta1" + "github.com/awslabs/operatorpkg/object" ) func NewWebhooks() []knativeinjection.ControllerConstructor { @@ -56,5 +57,5 @@ func NewCRDValidationWebhook(ctx context.Context, _ configmap.Watcher) *controll } var Resources = map[schema.GroupVersionKind]resourcesemantics.GenericCRD{ - v1beta1.SchemeGroupVersion.WithKind("EC2NodeClass"): &v1beta1.EC2NodeClass{}, + object.GVK(&v1beta1.EC2NodeClass{}): &v1beta1.EC2NodeClass{}, } diff --git a/test/pkg/debug/monitor.go b/test/pkg/debug/monitor.go index d0234726364b..cf331fd4bdc9 100644 --- a/test/pkg/debug/monitor.go +++ b/test/pkg/debug/monitor.go @@ -26,7 +26,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/controller-runtime/pkg/manager" "sigs.k8s.io/controller-runtime/pkg/metrics/server" - "sigs.k8s.io/karpenter/pkg/operator/scheme" ) type Monitor struct { @@ -39,7 +38,6 @@ type Monitor struct { func New(ctx context.Context, config *rest.Config, kubeClient client.Client) *Monitor { log.SetLogger(log.FromContext(ctx)) mgr := lo.Must(controllerruntime.NewManager(config, controllerruntime.Options{ - Scheme: scheme.Scheme, Metrics: server.Options{ BindAddress: "0", }, diff --git a/test/pkg/environment/aws/environment.go b/test/pkg/environment/aws/environment.go index 6754250ec9a5..9273028ea653 100644 --- a/test/pkg/environment/aws/environment.go +++ b/test/pkg/environment/aws/environment.go @@ -41,9 +41,7 @@ import ( "k8s.io/utils/env" corev1beta1 "sigs.k8s.io/karpenter/pkg/apis/v1beta1" - "sigs.k8s.io/karpenter/pkg/operator/scheme" - "github.com/aws/karpenter-provider-aws/pkg/apis" "github.com/aws/karpenter-provider-aws/pkg/apis/v1beta1" "github.com/aws/karpenter-provider-aws/pkg/providers/sqs" "github.com/aws/karpenter-provider-aws/pkg/test" @@ -51,7 +49,6 @@ import ( ) func init() { - lo.Must0(apis.AddToScheme(scheme.Scheme)) corev1beta1.NormalizedLabels = lo.Assign(corev1beta1.NormalizedLabels, map[string]string{"topology.ebs.csi.aws.com/zone": corev1.LabelTopologyZone}) } diff --git a/test/pkg/environment/common/environment.go b/test/pkg/environment/common/environment.go index bb3e6a8daab2..2cd728e534c6 100644 --- a/test/pkg/environment/common/environment.go +++ b/test/pkg/environment/common/environment.go @@ -27,9 +27,8 @@ import ( "github.com/samber/lo" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" - "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/kubernetes" - clientgoscheme "k8s.io/client-go/kubernetes/scheme" + "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/rest" . "sigs.k8s.io/karpenter/pkg/utils/testing" //nolint:stylecheck @@ -39,12 +38,10 @@ import ( "sigs.k8s.io/controller-runtime/pkg/cache" "sigs.k8s.io/controller-runtime/pkg/client" - coreapis "sigs.k8s.io/karpenter/pkg/apis" corev1beta1 "sigs.k8s.io/karpenter/pkg/apis/v1beta1" "sigs.k8s.io/karpenter/pkg/operator" coretest "sigs.k8s.io/karpenter/pkg/test" - "github.com/aws/karpenter-provider-aws/pkg/apis" "github.com/aws/karpenter-provider-aws/pkg/apis/v1beta1" ) @@ -102,12 +99,7 @@ func NewConfig() *rest.Config { } func NewClient(ctx context.Context, config *rest.Config) client.Client { - scheme := runtime.NewScheme() - lo.Must0(clientgoscheme.AddToScheme(scheme)) - lo.Must0(apis.AddToScheme(scheme)) - lo.Must0(coreapis.AddToScheme(scheme)) - - cache := lo.Must(cache.New(config, cache.Options{Scheme: scheme})) + cache := lo.Must(cache.New(config, cache.Options{Scheme: scheme.Scheme})) lo.Must0(cache.IndexField(ctx, &v1.Pod{}, "spec.nodeName", func(o client.Object) []string { pod := o.(*v1.Pod) return []string{pod.Spec.NodeName} @@ -128,7 +120,7 @@ func NewClient(ctx context.Context, config *rest.Config) client.Client { return []string{t.Value} })) - c := lo.Must(client.New(config, client.Options{Scheme: scheme, Cache: &client.CacheOptions{Reader: cache}})) + c := lo.Must(client.New(config, client.Options{Scheme: scheme.Scheme, Cache: &client.CacheOptions{Reader: cache}})) go func() { lo.Must0(cache.Start(ctx)) diff --git a/test/suites/nodeclaim/nodeclaim_test.go b/test/suites/nodeclaim/nodeclaim_test.go index 5e0693286536..c3f17926fb65 100644 --- a/test/suites/nodeclaim/nodeclaim_test.go +++ b/test/suites/nodeclaim/nodeclaim_test.go @@ -24,6 +24,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/karpenter/pkg/utils/resources" + "github.com/awslabs/operatorpkg/object" "github.com/samber/lo" v1 "k8s.io/api/core/v1" corev1beta1 "sigs.k8s.io/karpenter/pkg/apis/v1beta1" @@ -179,7 +180,7 @@ var _ = Describe("StandaloneNodeClaim", func() { )) Expect(node.OwnerReferences).To(ContainElement( metav1.OwnerReference{ - APIVersion: corev1beta1.SchemeGroupVersion.String(), + APIVersion: object.GVK(nodeClaim).GroupVersion().String(), Kind: "NodeClaim", Name: nodeClaim.Name, UID: nodeClaim.UID,