Skip to content

Commit 28bd7b1

Browse files
committed
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.
1 parent 013bcb5 commit 28bd7b1

36 files changed

+90
-79
lines changed

cluster-autoscaler/cloudprovider/alicloud/alicloud_cloud_provider.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ import (
2424
apiv1 "k8s.io/api/core/v1"
2525
"k8s.io/apimachinery/pkg/api/resource"
2626
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider"
27-
"k8s.io/autoscaler/cluster-autoscaler/config"
2827
"k8s.io/autoscaler/cluster-autoscaler/config/dynamic"
28+
"k8s.io/autoscaler/cluster-autoscaler/core/options"
2929
"k8s.io/autoscaler/cluster-autoscaler/utils/errors"
3030
"k8s.io/autoscaler/cluster-autoscaler/utils/gpu"
3131
klog "k8s.io/klog/v2"
@@ -220,7 +220,7 @@ func buildAsg(manager *AliCloudManager, minSize int, maxSize int, id string, reg
220220
}
221221

222222
// BuildAlicloud returns alicloud provider
223-
func BuildAlicloud(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
223+
func BuildAlicloud(opts *options.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
224224
var aliManager *AliCloudManager
225225
var aliError error
226226
if opts.CloudConfig != "" {

cluster-autoscaler/cloudprovider/aws/aws_cloud_provider.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"k8s.io/apimachinery/pkg/api/resource"
2828
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider"
2929
"k8s.io/autoscaler/cluster-autoscaler/config"
30+
"k8s.io/autoscaler/cluster-autoscaler/core/options"
3031
"k8s.io/autoscaler/cluster-autoscaler/simulator/framework"
3132
"k8s.io/autoscaler/cluster-autoscaler/utils/errors"
3233
"k8s.io/autoscaler/cluster-autoscaler/utils/gpu"
@@ -415,7 +416,7 @@ func (ng *AwsNodeGroup) TemplateNodeInfo() (*framework.NodeInfo, error) {
415416
}
416417

417418
// BuildAWS builds AWS cloud provider, manager etc.
418-
func BuildAWS(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
419+
func BuildAWS(opts *options.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
419420
var cfg io.ReadCloser
420421
if opts.CloudConfig != "" {
421422
var err error

cluster-autoscaler/cloudprovider/aws/aws_cloud_provider_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import (
2727
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider"
2828
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider/aws/aws-sdk-go/aws"
2929
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider/aws/aws-sdk-go/service/autoscaling"
30-
"k8s.io/autoscaler/cluster-autoscaler/config"
30+
"k8s.io/autoscaler/cluster-autoscaler/core/options"
3131
)
3232

3333
var testAwsManager = &AwsManager{
@@ -133,7 +133,7 @@ func TestInstanceTypeFallback(t *testing.T) {
133133
map[string]int64{cloudprovider.ResourceNameCores: 10, cloudprovider.ResourceNameMemory: 100000000})
134134

135135
do := cloudprovider.NodeGroupDiscoveryOptions{}
136-
opts := config.AutoscalingOptions{}
136+
opts := &options.AutoscalerOptions{}
137137

138138
t.Setenv("AWS_REGION", "non-existent-region")
139139

cluster-autoscaler/cloudprovider/azure/azure_cloud_provider.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
apiv1 "k8s.io/api/core/v1"
2626
"k8s.io/apimachinery/pkg/api/resource"
2727
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider"
28-
"k8s.io/autoscaler/cluster-autoscaler/config"
28+
"k8s.io/autoscaler/cluster-autoscaler/core/options"
2929
"k8s.io/autoscaler/cluster-autoscaler/utils/errors"
3030
"k8s.io/autoscaler/cluster-autoscaler/utils/gpu"
3131
klog "k8s.io/klog/v2"
@@ -190,7 +190,7 @@ func (m *azureRef) String() string {
190190
}
191191

192192
// BuildAzure builds Azure cloud provider, manager etc.
193-
func BuildAzure(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
193+
func BuildAzure(opts *options.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
194194
var config io.ReadCloser
195195
if opts.CloudConfig != "" {
196196
klog.Infof("Creating Azure Manager using cloud-config file: %v", opts.CloudConfig)

cluster-autoscaler/cloudprovider/baiducloud/baiducloud_cloud_provider.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider"
2828
"k8s.io/autoscaler/cluster-autoscaler/config"
2929
"k8s.io/autoscaler/cluster-autoscaler/config/dynamic"
30+
"k8s.io/autoscaler/cluster-autoscaler/core/options"
3031
"k8s.io/autoscaler/cluster-autoscaler/simulator/framework"
3132
"k8s.io/autoscaler/cluster-autoscaler/utils/errors"
3233
"k8s.io/autoscaler/cluster-autoscaler/utils/gpu"
@@ -56,7 +57,7 @@ type baiducloudCloudProvider struct {
5657
}
5758

5859
// BuildBaiducloud builds baiducloud cloud provider, manager etc.
59-
func BuildBaiducloud(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
60+
func BuildBaiducloud(opts *options.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
6061
var cfg io.ReadCloser
6162
if opts.CloudConfig != "" {
6263
var err error

cluster-autoscaler/cloudprovider/bizflycloud/bizflycloud_cloud_provider.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
apiv1 "k8s.io/api/core/v1"
2626
"k8s.io/apimachinery/pkg/api/resource"
2727
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider"
28-
"k8s.io/autoscaler/cluster-autoscaler/config"
28+
"k8s.io/autoscaler/cluster-autoscaler/core/options"
2929
"k8s.io/autoscaler/cluster-autoscaler/utils/errors"
3030
"k8s.io/autoscaler/cluster-autoscaler/utils/gpu"
3131
klog "k8s.io/klog/v2"
@@ -174,7 +174,7 @@ func (d *bizflycloudCloudProvider) Refresh() error {
174174

175175
// BuildBizflyCloud builds the Bizflycloud cloud provider.
176176
func BuildBizflyCloud(
177-
opts config.AutoscalingOptions,
177+
opts *options.AutoscalerOptions,
178178
do cloudprovider.NodeGroupDiscoveryOptions,
179179
rl *cloudprovider.ResourceLimiter,
180180
) cloudprovider.CloudProvider {

cluster-autoscaler/cloudprovider/brightbox/brightbox_cloud_provider.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import (
2828
brightbox "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/brightbox/gobrightbox"
2929
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider/brightbox/gobrightbox/status"
3030
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider/brightbox/k8ssdk"
31-
"k8s.io/autoscaler/cluster-autoscaler/config"
31+
"k8s.io/autoscaler/cluster-autoscaler/core/options"
3232
"k8s.io/autoscaler/cluster-autoscaler/utils/errors"
3333
"k8s.io/autoscaler/cluster-autoscaler/utils/gpu"
3434
klog "k8s.io/klog/v2"
@@ -221,7 +221,7 @@ func (b *brightboxCloudProvider) Cleanup() error {
221221

222222
// BuildBrightbox builds the Brightbox provider
223223
func BuildBrightbox(
224-
opts config.AutoscalingOptions,
224+
opts *options.AutoscalerOptions,
225225
do cloudprovider.NodeGroupDiscoveryOptions,
226226
rl *cloudprovider.ResourceLimiter,
227227
) cloudprovider.CloudProvider {

cluster-autoscaler/cloudprovider/builder/builder_all.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ import (
5252
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider/utho"
5353
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider/volcengine"
5454
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider/vultr"
55-
"k8s.io/autoscaler/cluster-autoscaler/config"
55+
"k8s.io/autoscaler/cluster-autoscaler/core/options"
5656
"k8s.io/client-go/informers"
5757
)
5858

@@ -94,7 +94,7 @@ var AvailableCloudProviders = []string{
9494
// DefaultCloudProvider is GCE.
9595
const DefaultCloudProvider = cloudprovider.GceProviderName
9696

97-
func buildCloudProvider(opts config.AutoscalingOptions,
97+
func buildCloudProvider(opts *options.AutoscalerOptions,
9898
do cloudprovider.NodeGroupDiscoveryOptions,
9999
rl *cloudprovider.ResourceLimiter,
100100
informerFactory informers.SharedInformerFactory) cloudprovider.CloudProvider {

cluster-autoscaler/cloudprovider/builder/cloud_provider_builder.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,23 @@ package builder
1818

1919
import (
2020
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider"
21-
"k8s.io/autoscaler/cluster-autoscaler/config"
2221
"k8s.io/autoscaler/cluster-autoscaler/context"
22+
"k8s.io/autoscaler/cluster-autoscaler/core/options"
2323
"k8s.io/client-go/informers"
2424

2525
klog "k8s.io/klog/v2"
2626
)
2727

2828
// NewCloudProvider builds a cloud provider from provided parameters.
29-
func NewCloudProvider(opts config.AutoscalingOptions, informerFactory informers.SharedInformerFactory) cloudprovider.CloudProvider {
29+
func NewCloudProvider(opts *options.AutoscalerOptions, informerFactory informers.SharedInformerFactory) cloudprovider.CloudProvider {
3030
klog.V(1).Infof("Building %s cloud provider.", opts.CloudProviderName)
3131

3232
do := cloudprovider.NodeGroupDiscoveryOptions{
3333
NodeGroupSpecs: opts.NodeGroups,
3434
NodeGroupAutoDiscoverySpecs: opts.NodeGroupAutoDiscovery,
3535
}
3636

37-
rl := context.NewResourceLimiterFromAutoscalingOptions(opts)
37+
rl := context.NewResourceLimiterFromAutoscalingOptions(opts.AutoscalingOptions)
3838

3939
if opts.CloudProviderName == "" {
4040
// Ideally this would be an error, but several unit tests of the

cluster-autoscaler/cloudprovider/cherryservers/cherry_cloud_provider.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ import (
2424
apiv1 "k8s.io/api/core/v1"
2525
"k8s.io/apimachinery/pkg/api/resource"
2626
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider"
27-
"k8s.io/autoscaler/cluster-autoscaler/config"
2827
"k8s.io/autoscaler/cluster-autoscaler/config/dynamic"
28+
"k8s.io/autoscaler/cluster-autoscaler/core/options"
2929
"k8s.io/autoscaler/cluster-autoscaler/utils/errors"
3030
"k8s.io/autoscaler/cluster-autoscaler/utils/gpu"
3131
klog "k8s.io/klog/v2"
@@ -174,7 +174,7 @@ func (ccp *cherryCloudProvider) Cleanup() error {
174174
//
175175
// The cherryManager is created here, and the node groups are created
176176
// based on the specs provided via the command line parameters.
177-
func BuildCherry(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
177+
func BuildCherry(opts *options.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
178178
var config io.ReadCloser
179179

180180
if opts.CloudConfig != "" {
@@ -186,7 +186,7 @@ func BuildCherry(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDisco
186186
defer config.Close()
187187
}
188188

189-
manager, err := createCherryManager(config, do, opts)
189+
manager, err := createCherryManager(config, do, opts.AutoscalingOptions)
190190
if err != nil {
191191
klog.Fatalf("Failed to create cherry manager: %v", err)
192192
}

0 commit comments

Comments
 (0)