From 30284aa876ad3e7b2ecc24484147dcd45e30db8b Mon Sep 17 00:00:00 2001 From: elmiko Date: Fri, 26 Sep 2025 15:39:18 -0400 Subject: [PATCH 1/6] refactor core.AutoscalerOptions in a new package This change helps to prevent circular dependencies between the core and builder packages as we start to pass the AutoscalerOptions to the cloud provider builder functions. --- cluster-autoscaler/core/autoscaler.go | 37 ++---------- cluster-autoscaler/core/options/autoscaler.go | 60 +++++++++++++++++++ 2 files changed, 64 insertions(+), 33 deletions(-) create mode 100644 cluster-autoscaler/core/options/autoscaler.go diff --git a/cluster-autoscaler/core/autoscaler.go b/cluster-autoscaler/core/autoscaler.go index fcd8ae21d44b..d786995f6e49 100644 --- a/cluster-autoscaler/core/autoscaler.go +++ b/cluster-autoscaler/core/autoscaler.go @@ -20,53 +20,24 @@ import ( "strings" "time" - "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" cloudBuilder "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/builder" - "k8s.io/autoscaler/cluster-autoscaler/config" ca_context "k8s.io/autoscaler/cluster-autoscaler/context" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/core/scaledown/pdb" - "k8s.io/autoscaler/cluster-autoscaler/core/scaleup" - "k8s.io/autoscaler/cluster-autoscaler/debuggingsnapshot" "k8s.io/autoscaler/cluster-autoscaler/estimator" - "k8s.io/autoscaler/cluster-autoscaler/expander" "k8s.io/autoscaler/cluster-autoscaler/expander/factory" "k8s.io/autoscaler/cluster-autoscaler/observers/loopstart" ca_processors "k8s.io/autoscaler/cluster-autoscaler/processors" - "k8s.io/autoscaler/cluster-autoscaler/simulator/clustersnapshot" "k8s.io/autoscaler/cluster-autoscaler/simulator/clustersnapshot/predicate" "k8s.io/autoscaler/cluster-autoscaler/simulator/clustersnapshot/store" "k8s.io/autoscaler/cluster-autoscaler/simulator/drainability/rules" draprovider "k8s.io/autoscaler/cluster-autoscaler/simulator/dynamicresources/provider" "k8s.io/autoscaler/cluster-autoscaler/simulator/framework" - "k8s.io/autoscaler/cluster-autoscaler/simulator/options" "k8s.io/autoscaler/cluster-autoscaler/utils/backoff" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/client-go/informers" - kube_client "k8s.io/client-go/kubernetes" ) -// AutoscalerOptions is the whole set of options for configuring an autoscaler -type AutoscalerOptions struct { - config.AutoscalingOptions - KubeClient kube_client.Interface - InformerFactory informers.SharedInformerFactory - AutoscalingKubeClients *ca_context.AutoscalingKubeClients - CloudProvider cloudprovider.CloudProvider - FrameworkHandle *framework.Handle - ClusterSnapshot clustersnapshot.ClusterSnapshot - ExpanderStrategy expander.Strategy - EstimatorBuilder estimator.EstimatorBuilder - Processors *ca_processors.AutoscalingProcessors - LoopStartNotifier *loopstart.ObserversList - Backoff backoff.Backoff - DebuggingSnapshotter debuggingsnapshot.DebuggingSnapshotter - RemainingPdbTracker pdb.RemainingPdbTracker - ScaleUpOrchestrator scaleup.Orchestrator - DeleteOptions options.NodeDeleteOptions - DrainabilityRules rules.Rules - DraProvider *draprovider.Provider -} - // Autoscaler is the main component of CA which scales up/down node groups according to its configuration // The configuration can be injected at the creation of an autoscaler type Autoscaler interface { @@ -83,7 +54,7 @@ type Autoscaler interface { } // NewAutoscaler creates an autoscaler of an appropriate type according to the parameters -func NewAutoscaler(opts AutoscalerOptions, informerFactory informers.SharedInformerFactory) (Autoscaler, errors.AutoscalerError) { +func NewAutoscaler(opts coreoptions.AutoscalerOptions, informerFactory informers.SharedInformerFactory) (Autoscaler, errors.AutoscalerError) { err := initializeDefaultOptions(&opts, informerFactory) if err != nil { return nil, errors.ToAutoscalerError(errors.InternalError, err) @@ -109,7 +80,7 @@ func NewAutoscaler(opts AutoscalerOptions, informerFactory informers.SharedInfor } // Initialize default options if not provided. -func initializeDefaultOptions(opts *AutoscalerOptions, informerFactory informers.SharedInformerFactory) error { +func initializeDefaultOptions(opts *coreoptions.AutoscalerOptions, informerFactory informers.SharedInformerFactory) error { if opts.Processors == nil { opts.Processors = ca_processors.DefaultProcessors(opts.AutoscalingOptions) } @@ -133,7 +104,7 @@ func initializeDefaultOptions(opts *AutoscalerOptions, informerFactory informers opts.RemainingPdbTracker = pdb.NewBasicRemainingPdbTracker() } if opts.CloudProvider == nil { - opts.CloudProvider = cloudBuilder.NewCloudProvider(opts.AutoscalingOptions, informerFactory) + opts.CloudProvider = cloudBuilder.NewCloudProvider(opts, informerFactory) } if opts.ExpanderStrategy == nil { expanderFactory := factory.NewFactory() diff --git a/cluster-autoscaler/core/options/autoscaler.go b/cluster-autoscaler/core/options/autoscaler.go new file mode 100644 index 000000000000..0ee0dbb12ed8 --- /dev/null +++ b/cluster-autoscaler/core/options/autoscaler.go @@ -0,0 +1,60 @@ +/* +Copyright 2025 The Kubernetes Authors. + +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 options + +import ( + "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" + "k8s.io/autoscaler/cluster-autoscaler/config" + "k8s.io/autoscaler/cluster-autoscaler/context" + "k8s.io/autoscaler/cluster-autoscaler/core/scaledown/pdb" + "k8s.io/autoscaler/cluster-autoscaler/core/scaleup" + "k8s.io/autoscaler/cluster-autoscaler/debuggingsnapshot" + "k8s.io/autoscaler/cluster-autoscaler/estimator" + "k8s.io/autoscaler/cluster-autoscaler/expander" + "k8s.io/autoscaler/cluster-autoscaler/observers/loopstart" + ca_processors "k8s.io/autoscaler/cluster-autoscaler/processors" + "k8s.io/autoscaler/cluster-autoscaler/simulator/clustersnapshot" + "k8s.io/autoscaler/cluster-autoscaler/simulator/drainability/rules" + draprovider "k8s.io/autoscaler/cluster-autoscaler/simulator/dynamicresources/provider" + "k8s.io/autoscaler/cluster-autoscaler/simulator/framework" + "k8s.io/autoscaler/cluster-autoscaler/simulator/options" + "k8s.io/autoscaler/cluster-autoscaler/utils/backoff" + "k8s.io/client-go/informers" + kube_client "k8s.io/client-go/kubernetes" +) + +// AutoscalerOptions is the whole set of options for configuring an autoscaler +type AutoscalerOptions struct { + config.AutoscalingOptions + KubeClient kube_client.Interface + InformerFactory informers.SharedInformerFactory + AutoscalingKubeClients *context.AutoscalingKubeClients + CloudProvider cloudprovider.CloudProvider + FrameworkHandle *framework.Handle + ClusterSnapshot clustersnapshot.ClusterSnapshot + ExpanderStrategy expander.Strategy + EstimatorBuilder estimator.EstimatorBuilder + Processors *ca_processors.AutoscalingProcessors + LoopStartNotifier *loopstart.ObserversList + Backoff backoff.Backoff + DebuggingSnapshotter debuggingsnapshot.DebuggingSnapshotter + RemainingPdbTracker pdb.RemainingPdbTracker + ScaleUpOrchestrator scaleup.Orchestrator + DeleteOptions options.NodeDeleteOptions + DrainabilityRules rules.Rules + DraProvider *draprovider.Provider +} From dde19da4bbae69e69afedad35e10ab265f5fd6bb Mon Sep 17 00:00:00 2001 From: elmiko Date: Fri, 26 Sep 2025 16:29:29 -0400 Subject: [PATCH 2/6] refactor NewCloudProvider to accept AutoscalerOptions this changes the options input to the cloud provider builder function so that the full autoscaler options are passed. This is being proposed so that cloud providers will have new options for injecting behavior into the core parts of the autoscaler. --- .../alicloud/alicloud_cloud_provider.go | 4 ++-- .../cloudprovider/aws/aws_cloud_provider.go | 3 ++- .../aws/aws_cloud_provider_test.go | 4 ++-- .../azure/azure_cloud_provider.go | 4 ++-- .../baiducloud/baiducloud_cloud_provider.go | 3 ++- .../bizflycloud/bizflycloud_cloud_provider.go | 4 ++-- .../brightbox/brightbox_cloud_provider.go | 4 ++-- .../brightbox_cloud_provider_test.go | 15 ++++++++---- .../cloudprovider/builder/builder_alicloud.go | 4 ++-- .../cloudprovider/builder/builder_all.go | 4 ++-- .../cloudprovider/builder/builder_aws.go | 4 ++-- .../cloudprovider/builder/builder_azure.go | 4 ++-- .../builder/builder_baiducloud.go | 4 ++-- .../builder/builder_bizflycloud.go | 4 ++-- .../builder/builder_brightbox.go | 4 ++-- .../cloudprovider/builder/builder_cherry.go | 4 ++-- .../cloudprovider/builder/builder_civo.go | 4 ++-- .../builder/builder_cloudstack.go | 4 ++-- .../builder/builder_clusterapi.go | 4 ++-- .../builder/builder_coreweave.go | 4 ++-- .../builder/builder_digitalocean.go | 4 ++-- .../builder/builder_equinixmetal.go | 4 ++-- .../cloudprovider/builder/builder_exoscale.go | 4 ++-- .../builder/builder_externalgrpc.go | 4 ++-- .../cloudprovider/builder/builder_gce.go | 4 ++-- .../cloudprovider/builder/builder_hetzner.go | 4 ++-- .../builder/builder_huaweicloud.go | 4 ++-- .../builder/builder_ionoscloud.go | 4 ++-- .../cloudprovider/builder/builder_kamatera.go | 4 ++-- .../cloudprovider/builder/builder_kubemark.go | 4 ++-- .../cloudprovider/builder/builder_kwok.go | 4 ++-- .../cloudprovider/builder/builder_linode.go | 4 ++-- .../cloudprovider/builder/builder_magnum.go | 4 ++-- .../cloudprovider/builder/builder_oci.go | 4 ++-- .../cloudprovider/builder/builder_ovhcloud.go | 4 ++-- .../cloudprovider/builder/builder_rancher.go | 4 ++-- .../cloudprovider/builder/builder_scaleway.go | 4 ++-- .../builder/builder_tencentcloud.go | 4 ++-- .../cloudprovider/builder/builder_utho.go | 4 ++-- .../builder/builder_volcengine.go | 4 ++-- .../cloudprovider/builder/builder_vultr.go | 4 ++-- .../builder/cloud_provider_builder.go | 6 ++--- .../cherryservers/cherry_cloud_provider.go | 6 ++--- .../cloudprovider/civo/civo_cloud_provider.go | 4 ++-- .../cloudstack/cloudstack_cloud_provider.go | 5 ++-- .../clusterapi/clusterapi_provider.go | 4 ++-- .../coreweave/coreweave_provider.go | 7 +++--- .../digitalocean_cloud_provider.go | 4 ++-- .../equinixmetal/cloud_provider.go | 6 ++--- .../exoscale/exoscale_cloud_provider.go | 4 ++-- .../main.go | 23 +++++++++++-------- .../externalgrpc_cloud_provider.go | 4 ++-- .../cloudprovider/gce/gce_cloud_provider.go | 3 ++- .../hetzner/hetzner_cloud_provider.go | 4 ++-- .../huaweicloud/huaweicloud_cloud_provider.go | 5 ++-- .../ionoscloud/ionoscloud_cloud_provider.go | 3 ++- .../kamatera/kamatera_cloud_provider.go | 5 ++-- .../cloudprovider/kubemark/kubemark_linux.go | 3 ++- .../cloudprovider/kwok/kwok_provider.go | 6 ++--- .../linode/linode_cloud_provider.go | 4 ++-- .../magnum/magnum_cloud_provider.go | 6 ++--- .../oci/instancepools/oci_cloud_provider.go | 7 +++--- .../ovhcloud/ovh_cloud_provider.go | 5 ++-- .../cloudprovider/rancher/rancher_provider.go | 4 ++-- .../scaleway/scaleway_cloud_provider.go | 4 ++-- .../tencentcloud_cloud_provider.go | 4 ++-- .../cloudprovider/utho/utho_cloud_provider.go | 4 ++-- .../volcengine/volcengine_cloud_provider.go | 4 ++-- .../vultr/vultr_cloud_provider.go | 4 ++-- cluster-autoscaler/main.go | 7 +++++- 70 files changed, 176 insertions(+), 152 deletions(-) diff --git a/cluster-autoscaler/cloudprovider/alicloud/alicloud_cloud_provider.go b/cluster-autoscaler/cloudprovider/alicloud/alicloud_cloud_provider.go index c8513c7bf964..e6ee8b17003d 100644 --- a/cluster-autoscaler/cloudprovider/alicloud/alicloud_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/alicloud/alicloud_cloud_provider.go @@ -24,8 +24,8 @@ import ( apiv1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" - "k8s.io/autoscaler/cluster-autoscaler/config" "k8s.io/autoscaler/cluster-autoscaler/config/dynamic" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" klog "k8s.io/klog/v2" @@ -220,7 +220,7 @@ func buildAsg(manager *AliCloudManager, minSize int, maxSize int, id string, reg } // BuildAlicloud returns alicloud provider -func BuildAlicloud(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildAlicloud(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { var aliManager *AliCloudManager var aliError error if opts.CloudConfig != "" { diff --git a/cluster-autoscaler/cloudprovider/aws/aws_cloud_provider.go b/cluster-autoscaler/cloudprovider/aws/aws_cloud_provider.go index 3117b1c73654..11899739c9c8 100644 --- a/cluster-autoscaler/cloudprovider/aws/aws_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/aws/aws_cloud_provider.go @@ -27,6 +27,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/simulator/framework" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" @@ -415,7 +416,7 @@ func (ng *AwsNodeGroup) TemplateNodeInfo() (*framework.NodeInfo, error) { } // BuildAWS builds AWS cloud provider, manager etc. -func BuildAWS(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildAWS(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { var cfg io.ReadCloser if opts.CloudConfig != "" { var err error diff --git a/cluster-autoscaler/cloudprovider/aws/aws_cloud_provider_test.go b/cluster-autoscaler/cloudprovider/aws/aws_cloud_provider_test.go index 1910f8752fd5..ea3ec8e9fdc2 100644 --- a/cluster-autoscaler/cloudprovider/aws/aws_cloud_provider_test.go +++ b/cluster-autoscaler/cloudprovider/aws/aws_cloud_provider_test.go @@ -27,7 +27,7 @@ import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/aws/aws-sdk-go/aws" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/aws/aws-sdk-go/service/autoscaling" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" ) var testAwsManager = &AwsManager{ @@ -133,7 +133,7 @@ func TestInstanceTypeFallback(t *testing.T) { map[string]int64{cloudprovider.ResourceNameCores: 10, cloudprovider.ResourceNameMemory: 100000000}) do := cloudprovider.NodeGroupDiscoveryOptions{} - opts := config.AutoscalingOptions{} + opts := &coreoptions.AutoscalerOptions{} t.Setenv("AWS_REGION", "non-existent-region") diff --git a/cluster-autoscaler/cloudprovider/azure/azure_cloud_provider.go b/cluster-autoscaler/cloudprovider/azure/azure_cloud_provider.go index f99f2dae615d..c0c9fec3e786 100644 --- a/cluster-autoscaler/cloudprovider/azure/azure_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/azure/azure_cloud_provider.go @@ -25,7 +25,7 @@ import ( apiv1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" klog "k8s.io/klog/v2" @@ -190,7 +190,7 @@ func (m *azureRef) String() string { } // BuildAzure builds Azure cloud provider, manager etc. -func BuildAzure(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildAzure(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { var config io.ReadCloser if opts.CloudConfig != "" { klog.Infof("Creating Azure Manager using cloud-config file: %v", opts.CloudConfig) diff --git a/cluster-autoscaler/cloudprovider/baiducloud/baiducloud_cloud_provider.go b/cluster-autoscaler/cloudprovider/baiducloud/baiducloud_cloud_provider.go index 1698eb23cbde..0f972b09eee4 100644 --- a/cluster-autoscaler/cloudprovider/baiducloud/baiducloud_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/baiducloud/baiducloud_cloud_provider.go @@ -27,6 +27,7 @@ import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/config" "k8s.io/autoscaler/cluster-autoscaler/config/dynamic" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/simulator/framework" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" @@ -56,7 +57,7 @@ type baiducloudCloudProvider struct { } // BuildBaiducloud builds baiducloud cloud provider, manager etc. -func BuildBaiducloud(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildBaiducloud(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { var cfg io.ReadCloser if opts.CloudConfig != "" { var err error diff --git a/cluster-autoscaler/cloudprovider/bizflycloud/bizflycloud_cloud_provider.go b/cluster-autoscaler/cloudprovider/bizflycloud/bizflycloud_cloud_provider.go index 4b9f5db16e9f..49982463bd7e 100644 --- a/cluster-autoscaler/cloudprovider/bizflycloud/bizflycloud_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/bizflycloud/bizflycloud_cloud_provider.go @@ -25,7 +25,7 @@ import ( apiv1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" klog "k8s.io/klog/v2" @@ -174,7 +174,7 @@ func (d *bizflycloudCloudProvider) Refresh() error { // BuildBizflyCloud builds the Bizflycloud cloud provider. func BuildBizflyCloud( - opts config.AutoscalingOptions, + opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, ) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/brightbox/brightbox_cloud_provider.go b/cluster-autoscaler/cloudprovider/brightbox/brightbox_cloud_provider.go index f2806ece76db..6a680dc2d47d 100644 --- a/cluster-autoscaler/cloudprovider/brightbox/brightbox_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/brightbox/brightbox_cloud_provider.go @@ -28,7 +28,7 @@ import ( brightbox "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/brightbox/gobrightbox" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/brightbox/gobrightbox/status" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/brightbox/k8ssdk" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" klog "k8s.io/klog/v2" @@ -221,7 +221,7 @@ func (b *brightboxCloudProvider) Cleanup() error { // BuildBrightbox builds the Brightbox provider func BuildBrightbox( - opts config.AutoscalingOptions, + opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, ) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/brightbox/brightbox_cloud_provider_test.go b/cluster-autoscaler/cloudprovider/brightbox/brightbox_cloud_provider_test.go index bf284be8ab67..199b1d5a9ae5 100644 --- a/cluster-autoscaler/cloudprovider/brightbox/brightbox_cloud_provider_test.go +++ b/cluster-autoscaler/cloudprovider/brightbox/brightbox_cloud_provider_test.go @@ -33,6 +33,7 @@ import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/brightbox/k8ssdk" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/brightbox/k8ssdk/mocks" "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" klog "k8s.io/klog/v2" ) @@ -138,9 +139,11 @@ func TestBuildBrightBox(t *testing.T) { defer ts.Close() rl := cloudprovider.NewResourceLimiter(nil, nil) do := cloudprovider.NodeGroupDiscoveryOptions{} - opts := config.AutoscalingOptions{ - CloudProviderName: cloudprovider.BrightboxProviderName, - ClusterName: fakeClusterName, + opts := &coreoptions.AutoscalerOptions{ + AutoscalingOptions: config.AutoscalingOptions{ + CloudProviderName: cloudprovider.BrightboxProviderName, + ClusterName: fakeClusterName, + }, } cloud := BuildBrightbox(opts, do, rl) assert.Equal(t, cloud.Name(), cloudprovider.BrightboxProviderName) @@ -170,8 +173,10 @@ func TestBuildBrightboxMissingClusterName(t *testing.T) { defer ts.Close() rl := cloudprovider.NewResourceLimiter(nil, nil) do := cloudprovider.NodeGroupDiscoveryOptions{} - opts := config.AutoscalingOptions{ - CloudProviderName: cloudprovider.BrightboxProviderName, + opts := &coreoptions.AutoscalerOptions{ + AutoscalingOptions: config.AutoscalingOptions{ + CloudProviderName: cloudprovider.BrightboxProviderName, + }, } BuildBrightbox(opts, do, rl) }) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_alicloud.go b/cluster-autoscaler/cloudprovider/builder/builder_alicloud.go index 566cfeb9264b..693ad3310e0e 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_alicloud.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_alicloud.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/alicloud" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for alicloud-only build is alicloud. const DefaultCloudProvider = cloudprovider.AlicloudProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.AlicloudProviderName: return alicloud.BuildAlicloud(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_all.go b/cluster-autoscaler/cloudprovider/builder/builder_all.go index eb961fd3c3a7..e98cdc62f6a7 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_all.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_all.go @@ -52,7 +52,7 @@ import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/utho" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/volcengine" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/vultr" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -94,7 +94,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider is GCE. const DefaultCloudProvider = cloudprovider.GceProviderName -func buildCloudProvider(opts config.AutoscalingOptions, +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, informerFactory informers.SharedInformerFactory) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/builder/builder_aws.go b/cluster-autoscaler/cloudprovider/builder/builder_aws.go index e13c60c2412d..db734278f7a7 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_aws.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_aws.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/aws" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for AWS-only build is AWS. const DefaultCloudProvider = cloudprovider.AwsProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.AwsProviderName: return aws.BuildAWS(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_azure.go b/cluster-autoscaler/cloudprovider/builder/builder_azure.go index 7812ab138b48..fca5ff0dfe40 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_azure.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_azure.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/azure" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider on Azure-only build is Azure. const DefaultCloudProvider = cloudprovider.AzureProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.AzureProviderName: return azure.BuildAzure(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_baiducloud.go b/cluster-autoscaler/cloudprovider/builder/builder_baiducloud.go index 05e4669486d1..2076973c210e 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_baiducloud.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_baiducloud.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/baiducloud" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for baiducloud-only build is baiducloud. const DefaultCloudProvider = cloudprovider.BaiducloudProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.BaiducloudProviderName: return baiducloud.BuildBaiducloud(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_bizflycloud.go b/cluster-autoscaler/cloudprovider/builder/builder_bizflycloud.go index b8388ba7e4de..ad74c89cd2f3 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_bizflycloud.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_bizflycloud.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/bizflycloud" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for Bizflycloud-only build is Bizflycloud. const DefaultCloudProvider = cloudprovider.BizflyCloudProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.BizflyCloudProviderName: return bizflycloud.BuildBizflyCloud(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_brightbox.go b/cluster-autoscaler/cloudprovider/builder/builder_brightbox.go index 4b321a252ad4..cc98e195cae5 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_brightbox.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_brightbox.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/brightbox" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for Brightbox-only build is Brightbox. const DefaultCloudProvider = cloudprovider.BrightboxProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.BrightboxProviderName: return brightbox.BuildBrightbox(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_cherry.go b/cluster-autoscaler/cloudprovider/builder/builder_cherry.go index 455be264c518..97053b8581eb 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_cherry.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_cherry.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" cherry "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/cherryservers" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for Cherry-only build is Cherry. const DefaultCloudProvider = cherry.ProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cherry.ProviderName: return cherry.BuildCherry(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_civo.go b/cluster-autoscaler/cloudprovider/builder/builder_civo.go index f63ddb994040..9a086b846795 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_civo.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_civo.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/civo" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for Civo-only build is Civo. const DefaultCloudProvider = cloudprovider.CivoProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.CivoProviderName: return civo.BuildCivo(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_cloudstack.go b/cluster-autoscaler/cloudprovider/builder/builder_cloudstack.go index eb32c4c83d7c..e8cef9aa3854 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_cloudstack.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_cloudstack.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/cloudstack" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for cloudstack-only build is cloudstack. const DefaultCloudProvider = cloudprovider.CloudStackProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.CloudStackProviderName: return cloudstack.BuildCloudStack(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_clusterapi.go b/cluster-autoscaler/cloudprovider/builder/builder_clusterapi.go index ca3b1947cd5d..113af18f8fca 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_clusterapi.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_clusterapi.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/clusterapi" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for Cluster API-only build is Cluster API. const DefaultCloudProvider = cloudprovider.ClusterAPIProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.ClusterAPIProviderName: return clusterapi.BuildClusterAPI(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_coreweave.go b/cluster-autoscaler/cloudprovider/builder/builder_coreweave.go index 87378cbc9f9d..d0e7cbb72ca6 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_coreweave.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_coreweave.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/coreweave" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,6 +34,6 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for coreweave-only build is coreweave. const DefaultCloudProvider = cloudprovider.CoreWeaveProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { return coreweave.BuildCoreWeave(opts, do, rl) } diff --git a/cluster-autoscaler/cloudprovider/builder/builder_digitalocean.go b/cluster-autoscaler/cloudprovider/builder/builder_digitalocean.go index c7d9ba5a61f9..7152b082c4a4 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_digitalocean.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_digitalocean.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/digitalocean" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for DigitalOcean-only build is DigitalOcean. const DefaultCloudProvider = cloudprovider.DigitalOceanProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.DigitalOceanProviderName: return digitalocean.BuildDigitalOcean(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_equinixmetal.go b/cluster-autoscaler/cloudprovider/builder/builder_equinixmetal.go index e0c9b633e947..7f018ef29280 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_equinixmetal.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_equinixmetal.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/equinixmetal" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -35,7 +35,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for Packet or Equinix Metal-only build is Equinix Metal. const DefaultCloudProvider = cloudprovider.EquinixMetalProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.PacketProviderName, cloudprovider.EquinixMetalProviderName: return equinixmetal.BuildCloudProvider(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_exoscale.go b/cluster-autoscaler/cloudprovider/builder/builder_exoscale.go index f2b22090691c..4ad225649f06 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_exoscale.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_exoscale.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/exoscale" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for Exoscale-only build is Exoscale. const DefaultCloudProvider = cloudprovider.ExoscaleProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.ExoscaleProviderName: return exoscale.BuildExoscale(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_externalgrpc.go b/cluster-autoscaler/cloudprovider/builder/builder_externalgrpc.go index 4e5dfdd2374b..81bf3b273c01 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_externalgrpc.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_externalgrpc.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/externalgrpc" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for externalgrpc-only build is externalgrpc. const DefaultCloudProvider = cloudprovider.ExternalGrpcProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.ExternalGrpcProviderName: return externalgrpc.BuildExternalGrpc(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_gce.go b/cluster-autoscaler/cloudprovider/builder/builder_gce.go index fc9dea05dde9..15b4016cacd7 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_gce.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_gce.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/gce" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for GCE-only build is GCE. const DefaultCloudProvider = cloudprovider.GceProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.GceProviderName: return gce.BuildGCE(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_hetzner.go b/cluster-autoscaler/cloudprovider/builder/builder_hetzner.go index 9ffdd85ae328..1119cafb6208 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_hetzner.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_hetzner.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/hetzner" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for Hetzner-only build is Hetzner. const DefaultCloudProvider = cloudprovider.HetznerProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.HetznerProviderName: return hetzner.BuildHetzner(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_huaweicloud.go b/cluster-autoscaler/cloudprovider/builder/builder_huaweicloud.go index c7a5007e5f98..e9ba1181df03 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_huaweicloud.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_huaweicloud.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/huaweicloud" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for huaweicloud-only build is huaweicloud. const DefaultCloudProvider = cloudprovider.HuaweicloudProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.HuaweicloudProviderName: return huaweicloud.BuildHuaweiCloud(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_ionoscloud.go b/cluster-autoscaler/cloudprovider/builder/builder_ionoscloud.go index 4fc73d53f341..9e28d8f99512 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_ionoscloud.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_ionoscloud.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/ionoscloud" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for IonosCloud-only build is IonosCloud. const DefaultCloudProvider = cloudprovider.IonoscloudProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.IonoscloudProviderName: return ionoscloud.BuildIonosCloud(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_kamatera.go b/cluster-autoscaler/cloudprovider/builder/builder_kamatera.go index 34e85c417fac..2f4f3fee1238 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_kamatera.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_kamatera.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/kamatera" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for Kamatera-only build is Kamatera. const DefaultCloudProvider = cloudprovider.KamateraProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.KamateraProviderName: return kamatera.BuildKamatera(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_kubemark.go b/cluster-autoscaler/cloudprovider/builder/builder_kubemark.go index a8ee0fcc1e8a..70e44d825ce6 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_kubemark.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_kubemark.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/kubemark" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for Kubemark-only build is Kubemark. const DefaultCloudProvider = cloudprovider.KubemarkProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.KubemarkProviderName: return kubemark.BuildKubemark(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_kwok.go b/cluster-autoscaler/cloudprovider/builder/builder_kwok.go index a254ac4246bc..1f1e0e8d1559 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_kwok.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_kwok.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/kwok" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -35,7 +35,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for Kwok-only build is Kwok. const DefaultCloudProvider = cloudprovider.KwokProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, informerFactory informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, informerFactory informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.KwokProviderName: return kwok.BuildKwok(opts, do, rl, informerFactory) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_linode.go b/cluster-autoscaler/cloudprovider/builder/builder_linode.go index b8af94e1f679..a53105fba36c 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_linode.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_linode.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/linode" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for linode-only build is linode. const DefaultCloudProvider = cloudprovider.LinodeProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.LinodeProviderName: return linode.BuildLinode(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_magnum.go b/cluster-autoscaler/cloudprovider/builder/builder_magnum.go index ea14fd9803f8..e4a0432f318b 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_magnum.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_magnum.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/magnum" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for Magnum-only build is Magnum. const DefaultCloudProvider = cloudprovider.MagnumProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.MagnumProviderName: return magnum.BuildMagnum(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_oci.go b/cluster-autoscaler/cloudprovider/builder/builder_oci.go index fb33f55719b4..d5017ef04cea 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_oci.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_oci.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" oci "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/oci/instancepools" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for oci-only build is oci. const DefaultCloudProvider = cloudprovider.OracleCloudProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.OracleCloudProviderName: return oci.BuildOCI(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_ovhcloud.go b/cluster-autoscaler/cloudprovider/builder/builder_ovhcloud.go index 6e081209b68d..b25dd522a4ae 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_ovhcloud.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_ovhcloud.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/ovhcloud" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for OVHcloud-only build is OVHcloud. const DefaultCloudProvider = cloudprovider.OVHcloudProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.OVHcloudProviderName: return ovhcloud.BuildOVHcloud(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_rancher.go b/cluster-autoscaler/cloudprovider/builder/builder_rancher.go index ba240e62e954..aa0ff1e42fc1 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_rancher.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_rancher.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/rancher" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for rancher-only build is rancher. const DefaultCloudProvider = cloudprovider.RancherProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.RancherProviderName: return rancher.BuildRancher(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_scaleway.go b/cluster-autoscaler/cloudprovider/builder/builder_scaleway.go index 36ca6b314973..eb1ad9f05612 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_scaleway.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_scaleway.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/scaleway" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for Scaleway-only build is Scaleway. const DefaultCloudProvider = cloudprovider.ScalewayProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.ScalewayProviderName: return scaleway.BuildScaleway(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_tencentcloud.go b/cluster-autoscaler/cloudprovider/builder/builder_tencentcloud.go index 6b1e96684890..3600efc7805e 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_tencentcloud.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_tencentcloud.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/tencentcloud" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for Tencent-only build is Tencent. const DefaultCloudProvider = cloudprovider.TencentcloudProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.TencentcloudProviderName: return tencentcloud.BuildTencentcloud(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_utho.go b/cluster-autoscaler/cloudprovider/builder/builder_utho.go index 9e4bee94f858..032bdcf3ba36 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_utho.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_utho.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/utho" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for utho-only build is utho. const DefaultCloudProvider = cloudprovider.UthoProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.UthoProviderName: return utho.BuildUtho(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_volcengine.go b/cluster-autoscaler/cloudprovider/builder/builder_volcengine.go index 4be39817f923..f369162d914c 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_volcengine.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_volcengine.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/volcengine" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for volcengine-only build is volcengine. const DefaultCloudProvider = cloudprovider.VolcengineProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.VolcengineProviderName: return volcengine.BuildVolcengine(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_vultr.go b/cluster-autoscaler/cloudprovider/builder/builder_vultr.go index ca3f89fc2e4d..500e42dcfb07 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_vultr.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_vultr.go @@ -22,7 +22,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/vultr" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" ) @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for vultr-only build is vultr. const DefaultCloudProvider = cloudprovider.VultrProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.VultrProviderName: return vultr.BuildVultr(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/cloud_provider_builder.go b/cluster-autoscaler/cloudprovider/builder/cloud_provider_builder.go index 6d9242a1991c..51c435febded 100644 --- a/cluster-autoscaler/cloudprovider/builder/cloud_provider_builder.go +++ b/cluster-autoscaler/cloudprovider/builder/cloud_provider_builder.go @@ -18,15 +18,15 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" - "k8s.io/autoscaler/cluster-autoscaler/config" ca_context "k8s.io/autoscaler/cluster-autoscaler/context" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/client-go/informers" klog "k8s.io/klog/v2" ) // NewCloudProvider builds a cloud provider from provided parameters. -func NewCloudProvider(opts config.AutoscalingOptions, informerFactory informers.SharedInformerFactory) cloudprovider.CloudProvider { +func NewCloudProvider(opts *coreoptions.AutoscalerOptions, informerFactory informers.SharedInformerFactory) cloudprovider.CloudProvider { klog.V(1).Infof("Building %s cloud provider.", opts.CloudProviderName) do := cloudprovider.NodeGroupDiscoveryOptions{ @@ -34,7 +34,7 @@ func NewCloudProvider(opts config.AutoscalingOptions, informerFactory informers. NodeGroupAutoDiscoverySpecs: opts.NodeGroupAutoDiscovery, } - rl := ca_context.NewResourceLimiterFromAutoscalingOptions(opts) + rl := ca_context.NewResourceLimiterFromAutoscalingOptions(opts.AutoscalingOptions) if opts.CloudProviderName == "" { // Ideally this would be an error, but several unit tests of the diff --git a/cluster-autoscaler/cloudprovider/cherryservers/cherry_cloud_provider.go b/cluster-autoscaler/cloudprovider/cherryservers/cherry_cloud_provider.go index 0407f1971e8e..7ed5a106c9e3 100644 --- a/cluster-autoscaler/cloudprovider/cherryservers/cherry_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/cherryservers/cherry_cloud_provider.go @@ -24,8 +24,8 @@ import ( apiv1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" - "k8s.io/autoscaler/cluster-autoscaler/config" "k8s.io/autoscaler/cluster-autoscaler/config/dynamic" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" klog "k8s.io/klog/v2" @@ -174,7 +174,7 @@ func (ccp *cherryCloudProvider) Cleanup() error { // // The cherryManager is created here, and the node groups are created // based on the specs provided via the command line parameters. -func BuildCherry(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildCherry(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { var config io.ReadCloser if opts.CloudConfig != "" { @@ -186,7 +186,7 @@ func BuildCherry(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDisco defer config.Close() } - manager, err := createCherryManager(config, do, opts) + manager, err := createCherryManager(config, do, opts.AutoscalingOptions) if err != nil { klog.Fatalf("Failed to create cherry manager: %v", err) } diff --git a/cluster-autoscaler/cloudprovider/civo/civo_cloud_provider.go b/cluster-autoscaler/cloudprovider/civo/civo_cloud_provider.go index c5b69be57d1c..0bce4404da76 100644 --- a/cluster-autoscaler/cloudprovider/civo/civo_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/civo/civo_cloud_provider.go @@ -25,7 +25,7 @@ import ( apiv1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" "k8s.io/klog/v2" @@ -169,7 +169,7 @@ func (d *civoCloudProvider) Refresh() error { // BuildCivo builds the Civo cloud provider. func BuildCivo( - opts config.AutoscalingOptions, + opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, ) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/cloudstack/cloudstack_cloud_provider.go b/cluster-autoscaler/cloudprovider/cloudstack/cloudstack_cloud_provider.go index cbc2996155d0..420a9363eac6 100644 --- a/cluster-autoscaler/cloudprovider/cloudstack/cloudstack_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/cloudstack/cloudstack_cloud_provider.go @@ -24,6 +24,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" @@ -149,9 +150,9 @@ func createClusterConfig(opts config.AutoscalingOptions) (*clusterConfig, error) } // BuildCloudStack builds CloudProvider implementation for CloudStack -func BuildCloudStack(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildCloudStack(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { - config, err := createClusterConfig(opts) + config, err := createClusterConfig(opts.AutoscalingOptions) if err != nil { klog.Fatal(err) } diff --git a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_provider.go b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_provider.go index 94a322e5962f..aaa55e3d0f25 100644 --- a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_provider.go +++ b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_provider.go @@ -33,7 +33,7 @@ import ( klog "k8s.io/klog/v2" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" ) @@ -153,7 +153,7 @@ func newProvider( } // BuildClusterAPI builds CloudProvider implementation for machine api. -func BuildClusterAPI(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildClusterAPI(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { managementKubeconfig := opts.CloudConfig if managementKubeconfig == "" && !opts.ClusterAPICloudConfigAuthoritative { managementKubeconfig = opts.KubeClientOpts.KubeConfigPath diff --git a/cluster-autoscaler/cloudprovider/coreweave/coreweave_provider.go b/cluster-autoscaler/cloudprovider/coreweave/coreweave_provider.go index 84dadf018873..17233900dee0 100644 --- a/cluster-autoscaler/cloudprovider/coreweave/coreweave_provider.go +++ b/cluster-autoscaler/cloudprovider/coreweave/coreweave_provider.go @@ -23,6 +23,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" kube_util "k8s.io/autoscaler/cluster-autoscaler/utils/kubernetes" "k8s.io/klog/v2" @@ -182,7 +183,7 @@ func (c *CoreWeaveCloudProvider) Refresh() error { } // BuildCoreWeave builds the CoreWeave cloud provider with the given options and returns it. -func BuildCoreWeave(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { - klog.V(4).Infof("Building CoreWeave cloud provider with options: %+v", opts) - return NewCoreWeaveCloudProvider(rl, opts) +func BuildCoreWeave(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { + klog.V(4).Infof("Building CoreWeave cloud provider with options: %+v", opts.AutoscalingOptions) + return NewCoreWeaveCloudProvider(rl, opts.AutoscalingOptions) } diff --git a/cluster-autoscaler/cloudprovider/digitalocean/digitalocean_cloud_provider.go b/cluster-autoscaler/cloudprovider/digitalocean/digitalocean_cloud_provider.go index b9e4941dffe6..7c6af7762f25 100644 --- a/cluster-autoscaler/cloudprovider/digitalocean/digitalocean_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/digitalocean/digitalocean_cloud_provider.go @@ -25,7 +25,7 @@ import ( apiv1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" "k8s.io/klog/v2" @@ -171,7 +171,7 @@ func (d *digitaloceanCloudProvider) Refresh() error { // BuildDigitalOcean builds the DigitalOcean cloud provider. func BuildDigitalOcean( - opts config.AutoscalingOptions, + opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, ) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/equinixmetal/cloud_provider.go b/cluster-autoscaler/cloudprovider/equinixmetal/cloud_provider.go index fd1ec89be920..cf34c256d3c7 100644 --- a/cluster-autoscaler/cloudprovider/equinixmetal/cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/equinixmetal/cloud_provider.go @@ -28,8 +28,8 @@ import ( klog "k8s.io/klog/v2" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" - "k8s.io/autoscaler/cluster-autoscaler/config" "k8s.io/autoscaler/cluster-autoscaler/config/dynamic" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" ) @@ -180,7 +180,7 @@ func (pcp *equinixMetalCloudProvider) Cleanup() error { // // The equinixMetalManager is created here, and the node groups are created // based on the specs provided via the command line parameters. -func BuildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { var config io.ReadCloser if opts.CloudConfig != "" { @@ -192,7 +192,7 @@ func BuildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGro defer config.Close() } - manager, err := createEquinixMetalManager(config, do, opts) + manager, err := createEquinixMetalManager(config, do, opts.AutoscalingOptions) if err != nil { klog.Fatalf("Failed to create equinix metal manager: %v", err) } diff --git a/cluster-autoscaler/cloudprovider/exoscale/exoscale_cloud_provider.go b/cluster-autoscaler/cloudprovider/exoscale/exoscale_cloud_provider.go index 067340e19ad9..4b27350e5a74 100644 --- a/cluster-autoscaler/cloudprovider/exoscale/exoscale_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/exoscale/exoscale_cloud_provider.go @@ -23,8 +23,8 @@ import ( "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" egoscale "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/exoscale/internal/github.com/exoscale/egoscale/v2" - "k8s.io/autoscaler/cluster-autoscaler/config" "k8s.io/autoscaler/cluster-autoscaler/config/dynamic" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" ) @@ -225,7 +225,7 @@ func (e *exoscaleCloudProvider) Refresh() error { } // BuildExoscale builds the Exoscale cloud provider. -func BuildExoscale(_ config.AutoscalingOptions, discoveryOpts cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildExoscale(_ *coreoptions.AutoscalerOptions, discoveryOpts cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { manager, err := newManager(discoveryOpts) if err != nil { fatalf("failed to initialize manager: %v", err) diff --git a/cluster-autoscaler/cloudprovider/externalgrpc/examples/external-grpc-cloud-provider-service/main.go b/cluster-autoscaler/cloudprovider/externalgrpc/examples/external-grpc-cloud-provider-service/main.go index f2742ff72e7a..bf29963a1509 100644 --- a/cluster-autoscaler/cloudprovider/externalgrpc/examples/external-grpc-cloud-provider-service/main.go +++ b/cluster-autoscaler/cloudprovider/externalgrpc/examples/external-grpc-cloud-provider-service/main.go @@ -31,6 +31,7 @@ import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/externalgrpc/protos" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/gce/localssdsize" "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" kube_flag "k8s.io/component-base/cli/flag" klog "k8s.io/klog/v2" ) @@ -115,17 +116,19 @@ func main() { } //cloud provider config - autoscalingOptions := config.AutoscalingOptions{ - CloudProviderName: *cloudProviderFlag, - CloudConfig: *cloudConfig, - NodeGroupAutoDiscovery: *nodeGroupAutoDiscoveryFlag, - NodeGroups: *nodeGroupsFlag, - ClusterName: *clusterName, - GCEOptions: config.GCEOptions{ - ConcurrentRefreshes: 1, - LocalSSDDiskSizeProvider: localssdsize.NewSimpleLocalSSDProvider(), + autoscalingOptions := &coreoptions.AutoscalerOptions{ + AutoscalingOptions: config.AutoscalingOptions{ + CloudProviderName: *cloudProviderFlag, + CloudConfig: *cloudConfig, + NodeGroupAutoDiscovery: *nodeGroupAutoDiscoveryFlag, + NodeGroups: *nodeGroupsFlag, + ClusterName: *clusterName, + GCEOptions: config.GCEOptions{ + ConcurrentRefreshes: 1, + LocalSSDDiskSizeProvider: localssdsize.NewSimpleLocalSSDProvider(), + }, + UserAgent: "user-agent", }, - UserAgent: "user-agent", } cloudProvider := cloudBuilder.NewCloudProvider(autoscalingOptions, nil) srv := wrapper.NewCloudProviderGrpcWrapper(cloudProvider) diff --git a/cluster-autoscaler/cloudprovider/externalgrpc/externalgrpc_cloud_provider.go b/cluster-autoscaler/cloudprovider/externalgrpc/externalgrpc_cloud_provider.go index 2779f229e3d3..dc4cb34e4ba8 100644 --- a/cluster-autoscaler/cloudprovider/externalgrpc/externalgrpc_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/externalgrpc/externalgrpc_cloud_provider.go @@ -35,7 +35,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/externalgrpc/protos" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" klog "k8s.io/klog/v2" @@ -318,7 +318,7 @@ func (e *externalGrpcCloudProvider) Refresh() error { // BuildExternalGrpc builds the externalgrpc cloud provider. func BuildExternalGrpc( - opts config.AutoscalingOptions, + opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, ) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/gce/gce_cloud_provider.go b/cluster-autoscaler/cloudprovider/gce/gce_cloud_provider.go index 8a8632ad0bb7..7a7b4350e92a 100644 --- a/cluster-autoscaler/cloudprovider/gce/gce_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/gce/gce_cloud_provider.go @@ -26,6 +26,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/simulator/framework" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" @@ -387,7 +388,7 @@ func (mig *gceMig) TemplateNodeInfo() (*framework.NodeInfo, error) { } // BuildGCE builds GCE cloud provider, manager etc. -func BuildGCE(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildGCE(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { var config io.ReadCloser if opts.CloudConfig != "" { var err error diff --git a/cluster-autoscaler/cloudprovider/hetzner/hetzner_cloud_provider.go b/cluster-autoscaler/cloudprovider/hetzner/hetzner_cloud_provider.go index d520284062db..ed32b5c53ae6 100644 --- a/cluster-autoscaler/cloudprovider/hetzner/hetzner_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/hetzner/hetzner_cloud_provider.go @@ -32,7 +32,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/hetzner/hcloud-go/hcloud" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" autoscalerErrors "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" "k8s.io/klog/v2" @@ -185,7 +185,7 @@ func (d *HetznerCloudProvider) Refresh() error { } // BuildHetzner builds the Hetzner cloud provider. -func BuildHetzner(_ config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildHetzner(_ *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { manager, err := newManager() if err != nil { klog.Fatalf("Failed to create Hetzner manager: %v", err) diff --git a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud_cloud_provider.go b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud_cloud_provider.go index d58dae40763f..208d707b5a32 100644 --- a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud_cloud_provider.go @@ -25,6 +25,7 @@ import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/config" "k8s.io/autoscaler/cluster-autoscaler/config/dynamic" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" klog "k8s.io/klog/v2" @@ -212,12 +213,12 @@ func (hcp *huaweicloudCloudProvider) addAsg(asg *AutoScalingGroup) { } // BuildHuaweiCloud is called by the autoscaler/cluster-autoscaler/builder to build a huaweicloud cloud provider. -func BuildHuaweiCloud(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildHuaweiCloud(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { if len(opts.CloudConfig) == 0 { klog.Fatalf("cloud config is missing.") } - return newCloudProvider(opts, do, rl) + return newCloudProvider(opts.AutoscalingOptions, do, rl) } func buildAsgFromSpec(specStr string, asgs []AutoScalingGroup, manager CloudServiceManager) (*AutoScalingGroup, error) { diff --git a/cluster-autoscaler/cloudprovider/ionoscloud/ionoscloud_cloud_provider.go b/cluster-autoscaler/cloudprovider/ionoscloud/ionoscloud_cloud_provider.go index 7669cba28b09..c5c93de0e3af 100644 --- a/cluster-autoscaler/cloudprovider/ionoscloud/ionoscloud_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/ionoscloud/ionoscloud_cloud_provider.go @@ -24,6 +24,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/simulator/framework" caerrors "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" @@ -310,7 +311,7 @@ func (ic *IonosCloudCloudProvider) Refresh() error { // BuildIonosCloud builds the IonosCloud cloud provider. func BuildIonosCloud( - opts config.AutoscalingOptions, + opts *coreoptions.AutoscalerOptions, _ cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, ) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/kamatera/kamatera_cloud_provider.go b/cluster-autoscaler/cloudprovider/kamatera/kamatera_cloud_provider.go index ed8af5cc0fee..d606effe1b72 100644 --- a/cluster-autoscaler/cloudprovider/kamatera/kamatera_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/kamatera/kamatera_cloud_provider.go @@ -29,6 +29,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" klog "k8s.io/klog/v2" @@ -131,7 +132,7 @@ func (k *kamateraCloudProvider) Refresh() error { // BuildKamatera builds the Kamatera cloud provider. func BuildKamatera( - opts config.AutoscalingOptions, + opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, ) cloudprovider.CloudProvider { @@ -143,7 +144,7 @@ func BuildKamatera( klog.Fatalf("Could not open cloud provider configuration file %q, error: %v", opts.CloudConfig, err) } defer configFile.Close() - kcp, err := newKamateraCloudProvider(configFile, rl, createKubeClient(opts)) + kcp, err := newKamateraCloudProvider(configFile, rl, createKubeClient(opts.AutoscalingOptions)) if err != nil { klog.Fatalf("Could not create kamatera cloud provider: %v", err) } diff --git a/cluster-autoscaler/cloudprovider/kubemark/kubemark_linux.go b/cluster-autoscaler/cloudprovider/kubemark/kubemark_linux.go index a38148a1e616..da8ac094a966 100644 --- a/cluster-autoscaler/cloudprovider/kubemark/kubemark_linux.go +++ b/cluster-autoscaler/cloudprovider/kubemark/kubemark_linux.go @@ -32,6 +32,7 @@ import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/config" "k8s.io/autoscaler/cluster-autoscaler/config/dynamic" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/simulator/framework" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" @@ -342,7 +343,7 @@ func buildNodeGroup(value string, kubemarkController *kubemark.KubemarkControlle } // BuildKubemark builds Kubemark cloud provider. -func BuildKubemark(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildKubemark(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { externalConfig, err := rest.InClusterConfig() if err != nil { klog.Fatalf("Failed to get kubeclient config for external cluster: %v", err) diff --git a/cluster-autoscaler/cloudprovider/kwok/kwok_provider.go b/cluster-autoscaler/cloudprovider/kwok/kwok_provider.go index a1691171bf0e..e56b3f05db27 100644 --- a/cluster-autoscaler/cloudprovider/kwok/kwok_provider.go +++ b/cluster-autoscaler/cloudprovider/kwok/kwok_provider.go @@ -23,7 +23,7 @@ import ( "strings" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" kube_util "k8s.io/autoscaler/cluster-autoscaler/utils/kubernetes" @@ -171,7 +171,7 @@ func (kwok *KwokCloudProvider) Cleanup() error { } // BuildKwok builds kwok cloud provider. -func BuildKwok(opts config.AutoscalingOptions, +func BuildKwok(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, informerFactory informers.SharedInformerFactory) cloudprovider.CloudProvider { @@ -204,7 +204,7 @@ func BuildKwok(opts config.AutoscalingOptions, p, err := BuildKwokProvider(&kwokOptions{ kubeClient: kubeClient, - autoscalingOpts: &opts, + autoscalingOpts: &opts.AutoscalingOptions, discoveryOpts: &do, resourceLimiter: rl, ngNodeListerFn: kube_util.NewNodeLister, diff --git a/cluster-autoscaler/cloudprovider/linode/linode_cloud_provider.go b/cluster-autoscaler/cloudprovider/linode/linode_cloud_provider.go index a5b44563ded7..e25218700103 100644 --- a/cluster-autoscaler/cloudprovider/linode/linode_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/linode/linode_cloud_provider.go @@ -24,7 +24,7 @@ import ( apiv1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" klog "k8s.io/klog/v2" @@ -121,7 +121,7 @@ func (l *linodeCloudProvider) Cleanup() error { // BuildLinode builds the BuildLinode cloud provider. func BuildLinode( - opts config.AutoscalingOptions, + opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, ) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/magnum/magnum_cloud_provider.go b/cluster-autoscaler/cloudprovider/magnum/magnum_cloud_provider.go index c6161e362157..4fa0ff314c98 100644 --- a/cluster-autoscaler/cloudprovider/magnum/magnum_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/magnum/magnum_cloud_provider.go @@ -28,8 +28,8 @@ import ( "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/magnum/gophercloud/openstack/containerinfra/v1/nodegroups" - "k8s.io/autoscaler/cluster-autoscaler/config" "k8s.io/autoscaler/cluster-autoscaler/config/dynamic" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" klog "k8s.io/klog/v2" @@ -317,7 +317,7 @@ func (mcp *magnumCloudProvider) refreshNodeGroups() error { // // The magnumManager is created here, and the initial node groups are created // based on the static or auto discovery specs provided via the command line parameters. -func BuildMagnum(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildMagnum(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { var config io.ReadCloser // Should be loaded with --cloud-config /etc/kubernetes/kube_openstack_config from master node. @@ -338,7 +338,7 @@ func BuildMagnum(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDisco klog.Fatal("can not use both static node group discovery and node group auto discovery") } - manager, err := createMagnumManager(config, do, opts) + manager, err := createMagnumManager(config, do, opts.AutoscalingOptions) if err != nil { klog.Fatalf("Failed to create magnum manager: %v", err) } diff --git a/cluster-autoscaler/cloudprovider/oci/instancepools/oci_cloud_provider.go b/cluster-autoscaler/cloudprovider/oci/instancepools/oci_cloud_provider.go index 425f4350331c..727148aa9442 100644 --- a/cluster-autoscaler/cloudprovider/oci/instancepools/oci_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/oci/instancepools/oci_cloud_provider.go @@ -15,6 +15,7 @@ import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/oci/nodepools" npconsts "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/oci/nodepools/consts" "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" caerrors "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" "k8s.io/client-go/kubernetes" @@ -148,7 +149,7 @@ func (ocp *OciCloudProvider) Refresh() error { } // BuildOCI constructs the OciCloudProvider object that implements the could provider interface (InstancePoolManager). -func BuildOCI(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildOCI(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { ocidType, err := ocicommon.GetAllPoolTypes(opts.NodeGroups) if err != nil { klog.Fatalf("Failed to get pool type: %v", err) @@ -160,7 +161,7 @@ func BuildOCI(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscover if strings.HasPrefix(ocidType, npconsts.OciNodePoolResourceIdent) && nodepoolTagsFound == true { klog.Fatalf("-nodes and -node-group-auto-discovery parameters can not be used together.") } else if strings.HasPrefix(ocidType, npconsts.OciNodePoolResourceIdent) || nodepoolTagsFound == true { - manager, err := nodepools.CreateNodePoolManager(opts.CloudConfig, opts.NodeGroupAutoDiscovery, do, createKubeClient(opts)) + manager, err := nodepools.CreateNodePoolManager(opts.CloudConfig, opts.NodeGroupAutoDiscovery, do, createKubeClient(opts.AutoscalingOptions)) if err != nil { klog.Fatalf("Could not create OCI OKE cloud provider: %v", err) } @@ -168,7 +169,7 @@ func BuildOCI(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscover } // theoretically the only other possible value is no value (if no node groups are passed in) // or instancepool, but either way, we'll just default to the instance pool implementation - ipManager, err := CreateInstancePoolManager(opts.CloudConfig, do, createKubeClient(opts)) + ipManager, err := CreateInstancePoolManager(opts.CloudConfig, do, createKubeClient(opts.AutoscalingOptions)) if err != nil { klog.Fatalf("Could not create OCI cloud provider: %v", err) } diff --git a/cluster-autoscaler/cloudprovider/ovhcloud/ovh_cloud_provider.go b/cluster-autoscaler/cloudprovider/ovhcloud/ovh_cloud_provider.go index c731a8b8e3d4..acd440c8943d 100644 --- a/cluster-autoscaler/cloudprovider/ovhcloud/ovh_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/ovhcloud/ovh_cloud_provider.go @@ -30,6 +30,7 @@ import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/ovhcloud/sdk" "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" ) @@ -59,7 +60,7 @@ type OVHCloudProvider struct { } // BuildOVHcloud builds the OVHcloud provider. -func BuildOVHcloud(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildOVHcloud(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { // Open cloud provider folder var configFile io.ReadCloser if opts.CloudConfig != "" { @@ -82,7 +83,7 @@ func BuildOVHcloud(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDis provider := &OVHCloudProvider{ manager: manager, - autoscalingOptions: opts, + autoscalingOptions: opts.AutoscalingOptions, discoveryOptions: do, resourceLimiter: rl, } diff --git a/cluster-autoscaler/cloudprovider/rancher/rancher_provider.go b/cluster-autoscaler/cloudprovider/rancher/rancher_provider.go index a7b94d902b3e..49fbf71d97e5 100644 --- a/cluster-autoscaler/cloudprovider/rancher/rancher_provider.go +++ b/cluster-autoscaler/cloudprovider/rancher/rancher_provider.go @@ -28,7 +28,7 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" autoscalererrors "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" "k8s.io/client-go/discovery" @@ -64,7 +64,7 @@ type RancherCloudProvider struct { } // BuildRancher builds rancher cloud provider. -func BuildRancher(opts config.AutoscalingOptions, _ cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildRancher(opts *coreoptions.AutoscalerOptions, _ cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { provider, err := newRancherCloudProvider(opts.CloudConfig, rl) if err != nil { klog.Fatalf("failed to create rancher cloud provider: %v", err) diff --git a/cluster-autoscaler/cloudprovider/scaleway/scaleway_cloud_provider.go b/cluster-autoscaler/cloudprovider/scaleway/scaleway_cloud_provider.go index a214d16823ff..d77bf6aa8307 100644 --- a/cluster-autoscaler/cloudprovider/scaleway/scaleway_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/scaleway/scaleway_cloud_provider.go @@ -30,7 +30,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/scaleway/scalewaygo" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" ca_errors "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" "k8s.io/klog/v2" @@ -103,7 +103,7 @@ func newScalewayCloudProvider(configFile io.Reader, defaultUserAgent string, rl // BuildScaleway returns CloudProvider implementation for Scaleway. func BuildScaleway( - opts config.AutoscalingOptions, + opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, ) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/tencentcloud/tencentcloud_cloud_provider.go b/cluster-autoscaler/cloudprovider/tencentcloud/tencentcloud_cloud_provider.go index a33c140fb315..8c29566b6ba3 100644 --- a/cluster-autoscaler/cloudprovider/tencentcloud/tencentcloud_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/tencentcloud/tencentcloud_cloud_provider.go @@ -24,7 +24,7 @@ import ( apiv1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" "k8s.io/klog/v2" @@ -174,7 +174,7 @@ func (tencentcloud *tencentCloudProvider) Refresh() error { } // BuildTencentcloud returns tencentcloud provider -func BuildTencentcloud(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildTencentcloud(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { var config io.ReadCloser if opts.CloudConfig != "" { var err error diff --git a/cluster-autoscaler/cloudprovider/utho/utho_cloud_provider.go b/cluster-autoscaler/cloudprovider/utho/utho_cloud_provider.go index 9d511e127c70..9e35b1b2c7f5 100644 --- a/cluster-autoscaler/cloudprovider/utho/utho_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/utho/utho_cloud_provider.go @@ -23,7 +23,7 @@ import ( apiv1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" "k8s.io/klog/v2" @@ -164,7 +164,7 @@ func (u *uthoCloudProvider) Refresh() error { // BuildUtho builds the Utho cloud provider. func BuildUtho( - opts config.AutoscalingOptions, + opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, ) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/volcengine/volcengine_cloud_provider.go b/cluster-autoscaler/cloudprovider/volcengine/volcengine_cloud_provider.go index 53ad1ec1139d..e3c689941f70 100644 --- a/cluster-autoscaler/cloudprovider/volcengine/volcengine_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/volcengine/volcengine_cloud_provider.go @@ -26,8 +26,8 @@ import ( apiv1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" - "k8s.io/autoscaler/cluster-autoscaler/config" "k8s.io/autoscaler/cluster-autoscaler/config/dynamic" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" "k8s.io/klog/v2" @@ -160,7 +160,7 @@ func buildScalingGroupFromSpec(manager VolcengineManager, spec string) (*AutoSca } // BuildVolcengine builds CloudProvider implementation for Volcengine -func BuildVolcengine(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildVolcengine(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { if opts.CloudConfig == "" { klog.Fatalf("The path to the cloud provider configuration file must be set via the --cloud-config command line parameter") } diff --git a/cluster-autoscaler/cloudprovider/vultr/vultr_cloud_provider.go b/cluster-autoscaler/cloudprovider/vultr/vultr_cloud_provider.go index 5234a1019786..5d097c98ee10 100644 --- a/cluster-autoscaler/cloudprovider/vultr/vultr_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/vultr/vultr_cloud_provider.go @@ -24,7 +24,7 @@ import ( apiv1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" - "k8s.io/autoscaler/cluster-autoscaler/config" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" "k8s.io/klog/v2" @@ -151,7 +151,7 @@ func toNodeID(providerID string) string { } // BuildVultr builds the Vultr cloud provider. -func BuildVultr(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func BuildVultr(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { if opts.CloudConfig == "" { klog.Fatalf("No config file provided, please specify it via the --cloud-config flag") } diff --git a/cluster-autoscaler/main.go b/cluster-autoscaler/main.go index f7b248a3a16a..3c13ee9a401a 100644 --- a/cluster-autoscaler/main.go +++ b/cluster-autoscaler/main.go @@ -51,6 +51,7 @@ import ( capacitybuffer "k8s.io/autoscaler/cluster-autoscaler/capacitybuffer/controller" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/core" + coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" "k8s.io/autoscaler/cluster-autoscaler/core/podlistprocessor" "k8s.io/autoscaler/cluster-autoscaler/metrics" "k8s.io/autoscaler/cluster-autoscaler/observers/loopstart" @@ -122,7 +123,7 @@ func buildAutoscaler(ctx context.Context, debuggingSnapshotter debuggingsnapshot drainabilityRules := rules.Default(deleteOptions) var snapshotStore clustersnapshot.ClusterSnapshotStore = store.NewDeltaSnapshotStore(autoscalingOptions.ClusterSnapshotParallelism) - opts := core.AutoscalerOptions{ + opts := coreoptions.AutoscalerOptions{ AutoscalingOptions: autoscalingOptions, FrameworkHandle: fwHandle, ClusterSnapshot: predicate.NewPredicateSnapshot(snapshotStore, fwHandle, autoscalingOptions.DynamicResourceAllocationEnabled), @@ -234,6 +235,10 @@ func buildAutoscaler(ctx context.Context, debuggingSnapshotter debuggingsnapshot if len(autoscalingOptions.BalancingLabels) > 0 { nodeInfoComparator = nodegroupset.CreateLabelNodeInfoComparator(autoscalingOptions.BalancingLabels) } else { + // TODO elmiko - now that we are passing the AutoscalerOptions in to the + // NewCloudProvider function, we should migrate these cloud provider specific + // configurations to the NewCloudProvider method so that we remove more provider + // code from the core. nodeInfoComparatorBuilder := nodegroupset.CreateGenericNodeInfoComparator if autoscalingOptions.CloudProviderName == cloudprovider.AzureProviderName { nodeInfoComparatorBuilder = nodegroupset.CreateAzureNodeInfoComparator From 46f52a103b97869119e01532939c6f6994ba8188 Mon Sep 17 00:00:00 2001 From: elmiko Date: Fri, 17 Oct 2025 18:46:14 -0400 Subject: [PATCH 3/6] add RegisterCombinedScaledDownCandidateProcessor util function to help cloud providers in adding additional combined scale down processors. --- .../scale_down_candidates_processor.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/cluster-autoscaler/processors/scaledowncandidates/scale_down_candidates_processor.go b/cluster-autoscaler/processors/scaledowncandidates/scale_down_candidates_processor.go index 8c84cde351b4..5ebcae969c8c 100644 --- a/cluster-autoscaler/processors/scaledowncandidates/scale_down_candidates_processor.go +++ b/cluster-autoscaler/processors/scaledowncandidates/scale_down_candidates_processor.go @@ -17,6 +17,8 @@ limitations under the License. package scaledowncandidates import ( + "fmt" + apiv1 "k8s.io/api/core/v1" ca_context "k8s.io/autoscaler/cluster-autoscaler/context" "k8s.io/autoscaler/cluster-autoscaler/processors/nodes" @@ -70,3 +72,16 @@ func (p *combinedScaleDownCandidatesProcessor) CleanUp() { processor.CleanUp() } } + +// RegisterCombinedScaleDownCandidateProcessor registers a new ScaleDownNodeProcessor with +// a CombinedScaleDownCandidatesProcessor. This function will return an error if the +// processor receiving the registration is not a CombinedScaleDownCandidatesProcessor. +func RegisterCombinedScaleDownCandidateProcessor(combinedProcessor, processorToAdd nodes.ScaleDownNodeProcessor) error { + combinedProcessorConcrete, ok := combinedProcessor.(*combinedScaleDownCandidatesProcessor) + if !ok { + return fmt.Errorf("wrong concrete ScaleDownNodeProcessor type: want *scaledowncandidates.CombinedScaleDownCandidatesProcessor, got %T", combinedProcessor) + } + combinedProcessorConcrete.Register(processorToAdd) + + return nil +} From a55d734c3f78afb17db99b83451fc261df40393e Mon Sep 17 00:00:00 2001 From: elmiko Date: Mon, 8 Sep 2025 15:53:23 -0400 Subject: [PATCH 4/6] add clusterapi scale down upgrade processor This change adds a custom scale down node processor for cluster api to reject nodes that are undergoing upgrade. --- .../clusterapi/clusterapi_controller.go | 21 +++++ .../clusterapi/clusterapi_nodegroup.go | 62 ++++++++++++++ .../clusterapi/clusterapi_processors.go | 80 +++++++++++++++++++ .../clusterapi/clusterapi_provider.go | 6 ++ .../clusterapi/clusterapi_utils.go | 20 ++--- 5 files changed, 180 insertions(+), 9 deletions(-) create mode 100644 cluster-autoscaler/cloudprovider/clusterapi/clusterapi_processors.go diff --git a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller.go b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller.go index b3b7175dfa95..a3e03e9703c3 100644 --- a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller.go +++ b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller.go @@ -849,6 +849,27 @@ func (c *machineController) listMachinesForScalableResource(r *unstructured.Unst } } +func (c *machineController) listMachineSetsForMachineDeployment(r *unstructured.Unstructured) ([]*unstructured.Unstructured, error) { + selector := labels.SelectorFromSet(map[string]string{ + machineDeploymentNameLabel: r.GetName(), + }) + objs, err := c.machineSetInformer.Lister().ByNamespace(r.GetNamespace()).List(selector) + if err != nil { + return nil, fmt.Errorf("unable to list MachineSets for MachineDeployment %s: %w", r.GetName(), err) + } + + results := make([]*unstructured.Unstructured, 0, len(objs)) + for _, x := range objs { + u, ok := x.(*unstructured.Unstructured) + if !ok { + return nil, fmt.Errorf("expected unstructured resource from lister, not %T", x) + } + results = append(results, u.DeepCopy()) + } + + return results, nil +} + func (c *machineController) listScalableResources() ([]*unstructured.Unstructured, error) { scalableResources, err := c.listResources(c.machineSetInformer.Lister()) if err != nil { diff --git a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_nodegroup.go b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_nodegroup.go index d68a48b89c3f..4b6bb1b2905a 100644 --- a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_nodegroup.go +++ b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_nodegroup.go @@ -458,6 +458,68 @@ func (ng *nodegroup) GetOptions(defaults config.NodeGroupAutoscalingOptions) (*c return &defaults, nil } +func (ng *nodegroup) IsMachineDeploymentAndRollingOut() (bool, error) { + if ng.scalableResource.Kind() != machineDeploymentKind { + // Not a MachineDeployment. + return false, nil + } + + machineSets, err := ng.machineController.listMachineSetsForMachineDeployment(ng.scalableResource.unstructured) + if err != nil { + return false, err + } + + if len(machineSets) == 0 { + // No MachineSets => MD is not rolling out. + return false, nil + } + + // Find the latest revision, the MachineSet with the latest revision is the MachineSet that + // matches the MachineDeployment spec. + var latestMSRevisionInt int64 + for _, ms := range machineSets { + msRevision, ok := ms.GetAnnotations()[machineDeploymentRevisionAnnotation] + if !ok { + continue + } + + msRevisionInt, err := strconv.ParseInt(msRevision, 10, 64) + if err != nil { + return false, errors.Wrapf(err, "failed to parse current revision on MachineSet %s", klog.KObj(ms)) + } + latestMSRevisionInt = max(latestMSRevisionInt, msRevisionInt) + } + maxMSRevision := strconv.FormatInt(latestMSRevisionInt, 10) + + for _, ms := range machineSets { + if ms.GetAnnotations()[machineDeploymentRevisionAnnotation] == maxMSRevision { + // Ignore the MachineSet with the latest revision + continue + } + + // Check if any of the old MachineSets still have replicas + replicas, found, err := unstructured.NestedInt64(ms.UnstructuredContent(), "spec", "replicas") + if err != nil { + return false, errors.Wrapf(err, "failed to find spec replicas on MachineSet %s", klog.KObj(ms)) + } + if found && replicas > 0 { + // Found old MachineSets that still has replicas => MD is still rolling out. + return true, nil + } + replicas, found, err = unstructured.NestedInt64(ms.UnstructuredContent(), "status", "replicas") + if err != nil { + return false, errors.Wrapf(err, "failed to find status replicas on MachineSet %s", klog.KObj(ms)) + } + if found && replicas > 0 { + // Found old MachineSets that still has replicas => MD is still rolling out. + return true, nil + } + } + + // Didn't find any old MachineSets that still have replicas => MD is not rolling out. + return false, nil +} + func newNodeGroupFromScalableResource(controller *machineController, unstructuredScalableResource *unstructured.Unstructured) (*nodegroup, error) { // Ensure that the resulting node group would be allowed based on the autodiscovery specs if defined if !controller.allowedByAutoDiscoverySpecs(unstructuredScalableResource) { diff --git a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_processors.go b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_processors.go new file mode 100644 index 000000000000..b9a9a642f2c7 --- /dev/null +++ b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_processors.go @@ -0,0 +1,80 @@ +/* +Copyright 2025 The Kubernetes Authors. + +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 clusterapi + +import ( + apiv1 "k8s.io/api/core/v1" + "k8s.io/autoscaler/cluster-autoscaler/context" + "k8s.io/autoscaler/cluster-autoscaler/utils/errors" + klog "k8s.io/klog/v2" +) + +// ScaleDownNodeUpgradeProcessor is a processor to filter out +// nodes that are undergoing an upgrade through a MachineDeployment. +type ScaleDownNodeUpgradeProcessor struct { + controller *machineController +} + +// NewScaleDownNodeUpgradeProcessor returns a new ScaleDownNodeUpgradeProcessor for use when +// registering a new upgrade scale down processor. +func NewScaleDownNodeUpgradeProcessor(c *machineController) *ScaleDownNodeUpgradeProcessor { + return &ScaleDownNodeUpgradeProcessor{controller: c} +} + +// GetPodDestinationCandidates returns nodes as is no processing is required here +func (p *ScaleDownNodeUpgradeProcessor) GetPodDestinationCandidates(ctx *context.AutoscalingContext, + nodes []*apiv1.Node) ([]*apiv1.Node, errors.AutoscalerError) { + return nodes, nil +} + +// GetScaleDownCandidates returns filter nodes based on if scale down is enabled or disabled per nodegroup. +func (p *ScaleDownNodeUpgradeProcessor) GetScaleDownCandidates(ctx *context.AutoscalingContext, + nodes []*apiv1.Node) ([]*apiv1.Node, errors.AutoscalerError) { + result := []*apiv1.Node{} + + for _, node := range nodes { + // check scale down, continue if not good + ng, err := p.controller.nodeGroupForNode(node) + if err != nil { + klog.Warningf("Error while checking node group for node %s: %v", node.Name, err) + continue + } + if ng == nil { + // this is at level 6 because the core scale down processor will already log this info + klog.V(6).Infof("Node %s will be skipped as it does not belong to a node group", node.Name) + continue + } + + rollingout, err := ng.IsMachineDeploymentAndRollingOut() + if err != nil { + klog.Warningf("Failed to determine rolling out status for MachineDeployment %s: %v", ng.scalableResource.ID(), err) + continue + } + + // A node is a good candidate for scale down if it is not currently part of a MachineDeployment that is rolling out. + if rollingout { + klog.V(4).Infof("Node %s will be skipped as it is currently under rollout", node.Name) + continue + } + result = append(result, node) + } + return result, nil +} + +// CleanUp is called at CA termination. +func (p *ScaleDownNodeUpgradeProcessor) CleanUp() { +} diff --git a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_provider.go b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_provider.go index aaa55e3d0f25..4cb4174c7e32 100644 --- a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_provider.go +++ b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_provider.go @@ -34,6 +34,7 @@ import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options" + "k8s.io/autoscaler/cluster-autoscaler/processors/scaledowncandidates" "k8s.io/autoscaler/cluster-autoscaler/utils/errors" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" ) @@ -210,6 +211,11 @@ func BuildClusterAPI(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeG klog.Fatal(err) } + scaleDownUpgradeProcessor := NewScaleDownNodeUpgradeProcessor(controller) + if err := scaledowncandidates.RegisterCombinedScaleDownCandidateProcessor(opts.Processors.ScaleDownNodeProcessor, scaleDownUpgradeProcessor); err != nil { + klog.Fatalf("unable to register scale down upgrade processor: %v", err) + } + if err := controller.run(); err != nil { klog.Fatal(err) } diff --git a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_utils.go b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_utils.go index f28721f49b74..03b86adce90d 100644 --- a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_utils.go +++ b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_utils.go @@ -32,15 +32,17 @@ import ( ) const ( - cpuKey = "capacity.cluster-autoscaler.kubernetes.io/cpu" - memoryKey = "capacity.cluster-autoscaler.kubernetes.io/memory" - diskCapacityKey = "capacity.cluster-autoscaler.kubernetes.io/ephemeral-disk" - gpuTypeKey = "capacity.cluster-autoscaler.kubernetes.io/gpu-type" - gpuCountKey = "capacity.cluster-autoscaler.kubernetes.io/gpu-count" - maxPodsKey = "capacity.cluster-autoscaler.kubernetes.io/maxPods" - taintsKey = "capacity.cluster-autoscaler.kubernetes.io/taints" - labelsKey = "capacity.cluster-autoscaler.kubernetes.io/labels" - draDriverKey = "capacity.cluster-autoscaler.kubernetes.io/dra-driver" + cpuKey = "capacity.cluster-autoscaler.kubernetes.io/cpu" + memoryKey = "capacity.cluster-autoscaler.kubernetes.io/memory" + diskCapacityKey = "capacity.cluster-autoscaler.kubernetes.io/ephemeral-disk" + gpuTypeKey = "capacity.cluster-autoscaler.kubernetes.io/gpu-type" + gpuCountKey = "capacity.cluster-autoscaler.kubernetes.io/gpu-count" + maxPodsKey = "capacity.cluster-autoscaler.kubernetes.io/maxPods" + taintsKey = "capacity.cluster-autoscaler.kubernetes.io/taints" + labelsKey = "capacity.cluster-autoscaler.kubernetes.io/labels" + draDriverKey = "capacity.cluster-autoscaler.kubernetes.io/dra-driver" + machineDeploymentRevisionAnnotation = "machinedeployment.clusters.x-k8s.io/revision" + machineDeploymentNameLabel = "cluster.x-k8s.io/deployment-name" // UnknownArch is used if the Architecture is Unknown UnknownArch SystemArchitecture = "" // Amd64 is used if the Architecture is x86_64 From f4731ec38a133e340fffae05ac3e673d01ae4abb Mon Sep 17 00:00:00 2001 From: elmiko Date: Tue, 21 Oct 2025 14:52:51 -0400 Subject: [PATCH 5/6] ensure cloud provider is initalized last this change moves the cloud provider initialization to the end of the initializeDefaultOptions function to ensure that all other options are prepared before the cloud provider. Due to the cloud provider now receiving the full AutoscalerOptions struct, we need to ensure that all the data is available. --- cluster-autoscaler/core/autoscaler.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/cluster-autoscaler/core/autoscaler.go b/cluster-autoscaler/core/autoscaler.go index d786995f6e49..c165ee9fc3b9 100644 --- a/cluster-autoscaler/core/autoscaler.go +++ b/cluster-autoscaler/core/autoscaler.go @@ -103,18 +103,6 @@ func initializeDefaultOptions(opts *coreoptions.AutoscalerOptions, informerFacto if opts.RemainingPdbTracker == nil { opts.RemainingPdbTracker = pdb.NewBasicRemainingPdbTracker() } - if opts.CloudProvider == nil { - opts.CloudProvider = cloudBuilder.NewCloudProvider(opts, informerFactory) - } - if opts.ExpanderStrategy == nil { - expanderFactory := factory.NewFactory() - expanderFactory.RegisterDefaultExpanders(opts.CloudProvider, opts.AutoscalingKubeClients, opts.KubeClient, opts.ConfigNamespace, opts.GRPCExpanderCert, opts.GRPCExpanderURL) - expanderStrategy, err := expanderFactory.Build(strings.Split(opts.ExpanderNames, ",")) - if err != nil { - return err - } - opts.ExpanderStrategy = expanderStrategy - } if opts.EstimatorBuilder == nil { thresholds := []estimator.Threshold{ estimator.NewStaticThreshold(opts.MaxNodesPerScaleUp, opts.MaxNodeGroupBinpackingDuration), @@ -142,6 +130,18 @@ func initializeDefaultOptions(opts *coreoptions.AutoscalerOptions, informerFacto if opts.DraProvider == nil && opts.DynamicResourceAllocationEnabled { opts.DraProvider = draprovider.NewProviderFromInformers(informerFactory) } + if opts.CloudProvider == nil { + opts.CloudProvider = cloudBuilder.NewCloudProvider(opts, informerFactory) + } + if opts.ExpanderStrategy == nil { + expanderFactory := factory.NewFactory() + expanderFactory.RegisterDefaultExpanders(opts.CloudProvider, opts.AutoscalingKubeClients, opts.KubeClient, opts.ConfigNamespace, opts.GRPCExpanderCert, opts.GRPCExpanderURL) + expanderStrategy, err := expanderFactory.Build(strings.Split(opts.ExpanderNames, ",")) + if err != nil { + return err + } + opts.ExpanderStrategy = expanderStrategy + } return nil } From 51a05148799a2e5a445c01b0088d1eb8d2070acc Mon Sep 17 00:00:00 2001 From: elmiko Date: Tue, 30 Sep 2025 16:21:10 -0400 Subject: [PATCH 6/6] refactor gpu_processor_test to remove cyclic dependency this change removes the import from the gce module in favor of using the string value directly. --- .../processors/customresources/gpu_processor_test.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cluster-autoscaler/processors/customresources/gpu_processor_test.go b/cluster-autoscaler/processors/customresources/gpu_processor_test.go index 94b751f69952..47a35b3db231 100644 --- a/cluster-autoscaler/processors/customresources/gpu_processor_test.go +++ b/cluster-autoscaler/processors/customresources/gpu_processor_test.go @@ -25,7 +25,6 @@ import ( apiv1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/gce" testprovider "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/test" ca_context "k8s.io/autoscaler/cluster-autoscaler/context" "k8s.io/autoscaler/cluster-autoscaler/utils/gpu" @@ -157,7 +156,7 @@ func TestFilterOutNodesWithUnreadyResources(t *testing.T) { ObjectMeta: metav1.ObjectMeta{ Name: "nodeGPUViaDra", Labels: map[string]string{ - gce.DraGPULabel: "true", + "cloud.google.com/gke-gpu-dra-driver": "true", }, CreationTimestamp: metav1.NewTime(start), },