Skip to content

Commit 1afa484

Browse files
committed
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.
1 parent a495219 commit 1afa484

File tree

76 files changed

+344
-162
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+344
-162
lines changed

cluster-autoscaler/cloudprovider/alicloud/alicloud_cloud_provider.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
"k8s.io/apimachinery/pkg/api/resource"
2626
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider"
2727
"k8s.io/autoscaler/cluster-autoscaler/config/dynamic"
28-
"k8s.io/autoscaler/cluster-autoscaler/core/options"
28+
coreoptions "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 *options.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
223+
func BuildAlicloud(opts *coreoptions.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 & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +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"
30+
coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options"
3131
"k8s.io/autoscaler/cluster-autoscaler/simulator/framework"
3232
"k8s.io/autoscaler/cluster-autoscaler/utils/errors"
3333
"k8s.io/autoscaler/cluster-autoscaler/utils/gpu"
@@ -416,7 +416,7 @@ func (ng *AwsNodeGroup) TemplateNodeInfo() (*framework.NodeInfo, error) {
416416
}
417417

418418
// BuildAWS builds AWS cloud provider, manager etc.
419-
func BuildAWS(opts *options.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
419+
func BuildAWS(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
420420
var cfg io.ReadCloser
421421
if opts.CloudConfig != "" {
422422
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/core/options"
30+
coreoptions "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 := &options.AutoscalerOptions{}
136+
opts := &coreoptions.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/core/options"
28+
coreoptions "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 *options.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
193+
func BuildAzure(opts *coreoptions.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 & 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/config"
2929
"k8s.io/autoscaler/cluster-autoscaler/config/dynamic"
30-
"k8s.io/autoscaler/cluster-autoscaler/core/options"
30+
coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options"
3131
"k8s.io/autoscaler/cluster-autoscaler/simulator/framework"
3232
"k8s.io/autoscaler/cluster-autoscaler/utils/errors"
3333
"k8s.io/autoscaler/cluster-autoscaler/utils/gpu"
@@ -57,7 +57,7 @@ type baiducloudCloudProvider struct {
5757
}
5858

5959
// BuildBaiducloud builds baiducloud cloud provider, manager etc.
60-
func BuildBaiducloud(opts *options.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
60+
func BuildBaiducloud(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
6161
var cfg io.ReadCloser
6262
if opts.CloudConfig != "" {
6363
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/core/options"
28+
coreoptions "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 *options.AutoscalerOptions,
177+
opts *coreoptions.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/core/options"
31+
coreoptions "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 *options.AutoscalerOptions,
224+
opts *coreoptions.AutoscalerOptions,
225225
do cloudprovider.NodeGroupDiscoveryOptions,
226226
rl *cloudprovider.ResourceLimiter,
227227
) cloudprovider.CloudProvider {

cluster-autoscaler/cloudprovider/brightbox/brightbox_cloud_provider_test.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import (
3333
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider/brightbox/k8ssdk"
3434
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider/brightbox/k8ssdk/mocks"
3535
"k8s.io/autoscaler/cluster-autoscaler/config"
36+
coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options"
3637
klog "k8s.io/klog/v2"
3738
)
3839

@@ -138,9 +139,11 @@ func TestBuildBrightBox(t *testing.T) {
138139
defer ts.Close()
139140
rl := cloudprovider.NewResourceLimiter(nil, nil)
140141
do := cloudprovider.NodeGroupDiscoveryOptions{}
141-
opts := config.AutoscalingOptions{
142-
CloudProviderName: cloudprovider.BrightboxProviderName,
143-
ClusterName: fakeClusterName,
142+
opts := &coreoptions.AutoscalerOptions{
143+
AutoscalingOptions: config.AutoscalingOptions{
144+
CloudProviderName: cloudprovider.BrightboxProviderName,
145+
ClusterName: fakeClusterName,
146+
},
144147
}
145148
cloud := BuildBrightbox(opts, do, rl)
146149
assert.Equal(t, cloud.Name(), cloudprovider.BrightboxProviderName)
@@ -170,8 +173,10 @@ func TestBuildBrightboxMissingClusterName(t *testing.T) {
170173
defer ts.Close()
171174
rl := cloudprovider.NewResourceLimiter(nil, nil)
172175
do := cloudprovider.NodeGroupDiscoveryOptions{}
173-
opts := config.AutoscalingOptions{
174-
CloudProviderName: cloudprovider.BrightboxProviderName,
176+
opts := &coreoptions.AutoscalerOptions{
177+
AutoscalingOptions: config.AutoscalingOptions{
178+
CloudProviderName: cloudprovider.BrightboxProviderName,
179+
},
175180
}
176181
BuildBrightbox(opts, do, rl)
177182
})

cluster-autoscaler/cloudprovider/builder/builder_alicloud.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ package builder
2222
import (
2323
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider"
2424
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider/alicloud"
25-
"k8s.io/autoscaler/cluster-autoscaler/config"
25+
coreoptions "k8s.io/autoscaler/cluster-autoscaler/core/options"
2626
"k8s.io/client-go/informers"
2727
)
2828

@@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{
3434
// DefaultCloudProvider for alicloud-only build is alicloud.
3535
const DefaultCloudProvider = cloudprovider.AlicloudProviderName
3636

37-
func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider {
37+
func buildCloudProvider(opts *coreoptions.AutoscalerOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider {
3838
switch opts.CloudProviderName {
3939
case cloudprovider.AlicloudProviderName:
4040
return alicloud.BuildAlicloud(opts, do, rl)

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/core/options"
55+
coreoptions "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 *options.AutoscalerOptions,
97+
func buildCloudProvider(opts *coreoptions.AutoscalerOptions,
9898
do cloudprovider.NodeGroupDiscoveryOptions,
9999
rl *cloudprovider.ResourceLimiter,
100100
informerFactory informers.SharedInformerFactory) cloudprovider.CloudProvider {

0 commit comments

Comments
 (0)