From 9b15fe462b1e6eb8ac0e5724de2cf17a6f65ef6a Mon Sep 17 00:00:00 2001 From: Jack Francis Date: Fri, 21 Sep 2018 15:18:05 -0700 Subject: [PATCH 1/3] cloudprovider bool params now *bool --- pkg/acsengine/const.go | 4 ++-- pkg/acsengine/defaults.go | 39 ++++++++++++++++++---------------- pkg/acsengine/defaults_test.go | 34 +++++++++++++++++++++++++++++ pkg/api/types.go | 8 +++---- pkg/api/vlabs/types.go | 4 ++-- pkg/api/vlabs/validate_test.go | 8 +++---- 6 files changed, 67 insertions(+), 30 deletions(-) diff --git a/pkg/acsengine/const.go b/pkg/acsengine/const.go index 2fd32a2dc7..296e660729 100644 --- a/pkg/acsengine/const.go +++ b/pkg/acsengine/const.go @@ -79,7 +79,7 @@ const ( // DefaultKubernetesCtrlMgrUseSvcAccountCreds is "true", see --use-service-account-credentials at https://kubernetes.io/docs/admin/kube-controller-manager/ DefaultKubernetesCtrlMgrUseSvcAccountCreds = "false" // DefaultKubernetesCloudProviderBackoff is false to disable cloudprovider backoff implementation for API calls - DefaultKubernetesCloudProviderBackoff = false + DefaultKubernetesCloudProviderBackoff = true // DefaultKubernetesCloudProviderBackoffRetries is 6, takes effect if DefaultKubernetesCloudProviderBackoff is true DefaultKubernetesCloudProviderBackoffRetries = 6 // DefaultKubernetesCloudProviderBackoffJitter is 1, takes effect if DefaultKubernetesCloudProviderBackoff is true @@ -89,7 +89,7 @@ const ( // DefaultKubernetesCloudProviderBackoffExponent is 1.5, takes effect if DefaultKubernetesCloudProviderBackoff is true DefaultKubernetesCloudProviderBackoffExponent = 1.5 // DefaultKubernetesCloudProviderRateLimit is false to disable cloudprovider rate limiting implementation for API calls - DefaultKubernetesCloudProviderRateLimit = false + DefaultKubernetesCloudProviderRateLimit = true // DefaultKubernetesCloudProviderRateLimitQPS is 3, takes effect if DefaultKubernetesCloudProviderRateLimit is true DefaultKubernetesCloudProviderRateLimitQPS = 3.0 // DefaultKubernetesCloudProviderRateLimitBucket is 10, takes effect if DefaultKubernetesCloudProviderRateLimit is true diff --git a/pkg/acsengine/defaults.go b/pkg/acsengine/defaults.go index be183ebce5..4fb77e67fb 100644 --- a/pkg/acsengine/defaults.go +++ b/pkg/acsengine/defaults.go @@ -285,8 +285,6 @@ func setOrchestratorDefaults(cs *api.ContainerService, isUpdate bool) { switch o.OrchestratorType { case api.Kubernetes: - k8sVersion := o.OrchestratorVersion - if o.KubernetesConfig == nil { o.KubernetesConfig = &api.KubernetesConfig{} } @@ -350,26 +348,31 @@ func setOrchestratorDefaults(cs *api.ContainerService, isUpdate bool) { if o.KubernetesConfig.ServiceCIDR == "" { o.KubernetesConfig.ServiceCIDR = DefaultKubernetesServiceCIDR } - // Enforce sane cloudprovider backoff defaults, if CloudProviderBackoff is true in KubernetesConfig - o.KubernetesConfig.CloudProviderBackoff = true - if o.KubernetesConfig.CloudProviderBackoffDuration == 0 { - o.KubernetesConfig.CloudProviderBackoffDuration = DefaultKubernetesCloudProviderBackoffDuration - } - if o.KubernetesConfig.CloudProviderBackoffExponent == 0 { - o.KubernetesConfig.CloudProviderBackoffExponent = DefaultKubernetesCloudProviderBackoffExponent + + if o.KubernetesConfig.CloudProviderBackoff == nil { + o.KubernetesConfig.CloudProviderBackoff = helpers.PointerToBool(DefaultKubernetesCloudProviderBackoff) } - if o.KubernetesConfig.CloudProviderBackoffJitter == 0 { - o.KubernetesConfig.CloudProviderBackoffJitter = DefaultKubernetesCloudProviderBackoffJitter + // Enforce sane cloudprovider backoff defaults, if CloudProviderBackoff is true in KubernetesConfig + if helpers.IsTrueBoolPointer(o.KubernetesConfig.CloudProviderBackoff) { + if o.KubernetesConfig.CloudProviderBackoffDuration == 0 { + o.KubernetesConfig.CloudProviderBackoffDuration = DefaultKubernetesCloudProviderBackoffDuration + } + if o.KubernetesConfig.CloudProviderBackoffExponent == 0 { + o.KubernetesConfig.CloudProviderBackoffExponent = DefaultKubernetesCloudProviderBackoffExponent + } + if o.KubernetesConfig.CloudProviderBackoffJitter == 0 { + o.KubernetesConfig.CloudProviderBackoffJitter = DefaultKubernetesCloudProviderBackoffJitter + } + if o.KubernetesConfig.CloudProviderBackoffRetries == 0 { + o.KubernetesConfig.CloudProviderBackoffRetries = DefaultKubernetesCloudProviderBackoffRetries + } } - if o.KubernetesConfig.CloudProviderBackoffRetries == 0 { - o.KubernetesConfig.CloudProviderBackoffRetries = DefaultKubernetesCloudProviderBackoffRetries + + if o.KubernetesConfig.CloudProviderRateLimit == nil { + o.KubernetesConfig.CloudProviderRateLimit = helpers.PointerToBool(DefaultKubernetesCloudProviderRateLimit) } - k8sSemVer, _ := semver.Make(k8sVersion) - minVersion, _ := semver.Make("1.6.6") // Enforce sane cloudprovider rate limit defaults, if CloudProviderRateLimit is true in KubernetesConfig - // For k8s version greater or equal to 1.6.6, we will set the default CloudProviderRate* settings - o.KubernetesConfig.CloudProviderRateLimit = true - if o.KubernetesConfig.CloudProviderRateLimit && k8sSemVer.GTE(minVersion) { + if helpers.IsTrueBoolPointer(o.KubernetesConfig.CloudProviderRateLimit) { if o.KubernetesConfig.CloudProviderRateLimitQPS == 0 { o.KubernetesConfig.CloudProviderRateLimitQPS = DefaultKubernetesCloudProviderRateLimitQPS } diff --git a/pkg/acsengine/defaults_test.go b/pkg/acsengine/defaults_test.go index 0824b624c7..66c041e7ed 100644 --- a/pkg/acsengine/defaults_test.go +++ b/pkg/acsengine/defaults_test.go @@ -868,6 +868,40 @@ func TestDefaultDisableRbac(t *testing.T) { } } +func TestDefaultCloudProvider(t *testing.T) { + mockCS := getMockBaseContainerService("1.10.3") + properties := mockCS.Properties + properties.OrchestratorProfile.OrchestratorType = "Kubernetes" + setOrchestratorDefaults(&mockCS, true) + + if !helpers.IsTrueBoolPointer(properties.OrchestratorProfile.KubernetesConfig.CloudProviderBackoff) { + t.Fatalf("got unexpected CloudProviderBackoff expected true, got %t", + helpers.IsTrueBoolPointer(properties.OrchestratorProfile.KubernetesConfig.CloudProviderBackoff)) + } + + if !helpers.IsTrueBoolPointer(properties.OrchestratorProfile.KubernetesConfig.CloudProviderRateLimit) { + t.Fatalf("got unexpected CloudProviderBackoff expected true, got %t", + helpers.IsTrueBoolPointer(properties.OrchestratorProfile.KubernetesConfig.CloudProviderBackoff)) + } + + mockCS = getMockBaseContainerService("1.10.3") + properties = mockCS.Properties + properties.OrchestratorProfile.OrchestratorType = "Kubernetes" + properties.OrchestratorProfile.KubernetesConfig.CloudProviderBackoff = helpers.PointerToBool(false) + properties.OrchestratorProfile.KubernetesConfig.CloudProviderRateLimit = helpers.PointerToBool(false) + setOrchestratorDefaults(&mockCS, true) + + if !helpers.IsFalseBoolPointer(properties.OrchestratorProfile.KubernetesConfig.CloudProviderBackoff) { + t.Fatalf("got unexpected CloudProviderBackoff expected true, got %t", + helpers.IsTrueBoolPointer(properties.OrchestratorProfile.KubernetesConfig.CloudProviderBackoff)) + } + + if !helpers.IsFalseBoolPointer(properties.OrchestratorProfile.KubernetesConfig.CloudProviderRateLimit) { + t.Fatalf("got unexpected CloudProviderBackoff expected true, got %t", + helpers.IsTrueBoolPointer(properties.OrchestratorProfile.KubernetesConfig.CloudProviderBackoff)) + } +} + func getMockAddon(name string) api.KubernetesAddon { return api.KubernetesAddon{ Name: name, diff --git a/pkg/api/types.go b/pkg/api/types.go index 8afeab4744..fd5878a4c9 100644 --- a/pkg/api/types.go +++ b/pkg/api/types.go @@ -255,12 +255,12 @@ type PrivateJumpboxProfile struct { // CloudProviderConfig contains the KubernetesConfig properties specific to the Cloud Provider type CloudProviderConfig struct { - CloudProviderBackoff bool `json:"cloudProviderBackoff,omitempty"` + CloudProviderBackoff *bool `json:"cloudProviderBackoff,omitempty"` CloudProviderBackoffRetries int `json:"cloudProviderBackoffRetries,omitempty"` CloudProviderBackoffJitter string `json:"cloudProviderBackoffJitter,omitempty"` CloudProviderBackoffDuration int `json:"cloudProviderBackoffDuration,omitempty"` CloudProviderBackoffExponent string `json:"cloudProviderBackoffExponent,omitempty"` - CloudProviderRateLimit bool `json:"cloudProviderRateLimit,omitempty"` + CloudProviderRateLimit *bool `json:"cloudProviderRateLimit,omitempty"` CloudProviderRateLimitQPS string `json:"cloudProviderRateLimitQPS,omitempty"` CloudProviderRateLimitBucket int `json:"cloudProviderRateLimitBucket,omitempty"` } @@ -315,12 +315,12 @@ type KubernetesConfig struct { CloudControllerManagerConfig map[string]string `json:"cloudControllerManagerConfig,omitempty"` APIServerConfig map[string]string `json:"apiServerConfig,omitempty"` SchedulerConfig map[string]string `json:"schedulerConfig,omitempty"` - CloudProviderBackoff bool `json:"cloudProviderBackoff,omitempty"` + CloudProviderBackoff *bool `json:"cloudProviderBackoff,omitempty"` CloudProviderBackoffRetries int `json:"cloudProviderBackoffRetries,omitempty"` CloudProviderBackoffJitter float64 `json:"cloudProviderBackoffJitter,omitempty"` CloudProviderBackoffDuration int `json:"cloudProviderBackoffDuration,omitempty"` CloudProviderBackoffExponent float64 `json:"cloudProviderBackoffExponent,omitempty"` - CloudProviderRateLimit bool `json:"cloudProviderRateLimit,omitempty"` + CloudProviderRateLimit *bool `json:"cloudProviderRateLimit,omitempty"` CloudProviderRateLimitQPS float64 `json:"cloudProviderRateLimitQPS,omitempty"` CloudProviderRateLimitBucket int `json:"cloudProviderRateLimitBucket,omitempty"` NonMasqueradeCidr string `json:"nonMasqueradeCidr,omitempty"` diff --git a/pkg/api/vlabs/types.go b/pkg/api/vlabs/types.go index fbffb883cc..273b933f3d 100644 --- a/pkg/api/vlabs/types.go +++ b/pkg/api/vlabs/types.go @@ -300,12 +300,12 @@ type KubernetesConfig struct { CloudControllerManagerConfig map[string]string `json:"cloudControllerManagerConfig,omitempty"` APIServerConfig map[string]string `json:"apiServerConfig,omitempty"` SchedulerConfig map[string]string `json:"schedulerConfig,omitempty"` - CloudProviderBackoff bool `json:"cloudProviderBackoff,omitempty"` + CloudProviderBackoff *bool `json:"cloudProviderBackoff,omitempty"` CloudProviderBackoffRetries int `json:"cloudProviderBackoffRetries,omitempty"` CloudProviderBackoffJitter float64 `json:"cloudProviderBackoffJitter,omitempty"` CloudProviderBackoffDuration int `json:"cloudProviderBackoffDuration,omitempty"` CloudProviderBackoffExponent float64 `json:"cloudProviderBackoffExponent,omitempty"` - CloudProviderRateLimit bool `json:"cloudProviderRateLimit,omitempty"` + CloudProviderRateLimit *bool `json:"cloudProviderRateLimit,omitempty"` CloudProviderRateLimitQPS float64 `json:"cloudProviderRateLimitQPS,omitempty"` CloudProviderRateLimitBucket int `json:"cloudProviderRateLimitBucket,omitempty"` LoadBalancerSku string `json:"loadBalancerSku,omitempty"` diff --git a/pkg/api/vlabs/validate_test.go b/pkg/api/vlabs/validate_test.go index c11b172c0e..186d52a113 100644 --- a/pkg/api/vlabs/validate_test.go +++ b/pkg/api/vlabs/validate_test.go @@ -368,12 +368,12 @@ func Test_KubernetesConfig_Validate(t *testing.T) { ClusterSubnet: "10.120.0.0/16", DockerBridgeSubnet: "10.120.1.0/16", MaxPods: 42, - CloudProviderBackoff: ValidKubernetesCloudProviderBackoff, + CloudProviderBackoff: helpers.PointerToBool(ValidKubernetesCloudProviderBackoff), CloudProviderBackoffRetries: ValidKubernetesCloudProviderBackoffRetries, CloudProviderBackoffJitter: ValidKubernetesCloudProviderBackoffJitter, CloudProviderBackoffDuration: ValidKubernetesCloudProviderBackoffDuration, CloudProviderBackoffExponent: ValidKubernetesCloudProviderBackoffExponent, - CloudProviderRateLimit: ValidKubernetesCloudProviderRateLimit, + CloudProviderRateLimit: helpers.PointerToBool(ValidKubernetesCloudProviderRateLimit), CloudProviderRateLimitQPS: ValidKubernetesCloudProviderRateLimitQPS, CloudProviderRateLimitBucket: ValidKubernetesCloudProviderRateLimitBucket, KubeletConfig: map[string]string{ @@ -551,8 +551,8 @@ func Test_KubernetesConfig_Validate(t *testing.T) { // Tests that apply to 1.6 and later releases for _, k8sVersion := range common.GetAllSupportedKubernetesVersions(false, false) { c := KubernetesConfig{ - CloudProviderBackoff: true, - CloudProviderRateLimit: true, + CloudProviderBackoff: helpers.PointerToBool(true), + CloudProviderRateLimit: helpers.PointerToBool(true), } if err := c.Validate(k8sVersion, false); err != nil { t.Error("should not error when basic backoff and rate limiting are set to true with no options") From 47048159898cbc5d38576a84fdda09c2c27aa93c Mon Sep 17 00:00:00 2001 From: Jack Francis Date: Mon, 24 Sep 2018 15:53:46 -0700 Subject: [PATCH 2/3] cloudprovider defaults as KubernetesConfig method --- pkg/acsengine/const.go | 16 --- pkg/acsengine/defaults.go | 24 +---- pkg/acsengine/k8s_versions.go | 85 +++++++-------- pkg/api/const.go | 19 ++++ pkg/api/types.go | 26 +++++ pkg/api/types_test.go | 194 ++++++++++++++++++++++++++++++++++ 6 files changed, 286 insertions(+), 78 deletions(-) diff --git a/pkg/acsengine/const.go b/pkg/acsengine/const.go index 296e660729..937986e31a 100644 --- a/pkg/acsengine/const.go +++ b/pkg/acsengine/const.go @@ -78,22 +78,6 @@ const ( DefaultKubernetesCtrlMgrTerminatedPodGcThreshold = "5000" // DefaultKubernetesCtrlMgrUseSvcAccountCreds is "true", see --use-service-account-credentials at https://kubernetes.io/docs/admin/kube-controller-manager/ DefaultKubernetesCtrlMgrUseSvcAccountCreds = "false" - // DefaultKubernetesCloudProviderBackoff is false to disable cloudprovider backoff implementation for API calls - DefaultKubernetesCloudProviderBackoff = true - // DefaultKubernetesCloudProviderBackoffRetries is 6, takes effect if DefaultKubernetesCloudProviderBackoff is true - DefaultKubernetesCloudProviderBackoffRetries = 6 - // DefaultKubernetesCloudProviderBackoffJitter is 1, takes effect if DefaultKubernetesCloudProviderBackoff is true - DefaultKubernetesCloudProviderBackoffJitter = 1.0 - // DefaultKubernetesCloudProviderBackoffDuration is 5, takes effect if DefaultKubernetesCloudProviderBackoff is true - DefaultKubernetesCloudProviderBackoffDuration = 5 - // DefaultKubernetesCloudProviderBackoffExponent is 1.5, takes effect if DefaultKubernetesCloudProviderBackoff is true - DefaultKubernetesCloudProviderBackoffExponent = 1.5 - // DefaultKubernetesCloudProviderRateLimit is false to disable cloudprovider rate limiting implementation for API calls - DefaultKubernetesCloudProviderRateLimit = true - // DefaultKubernetesCloudProviderRateLimitQPS is 3, takes effect if DefaultKubernetesCloudProviderRateLimit is true - DefaultKubernetesCloudProviderRateLimitQPS = 3.0 - // DefaultKubernetesCloudProviderRateLimitBucket is 10, takes effect if DefaultKubernetesCloudProviderRateLimit is true - DefaultKubernetesCloudProviderRateLimitBucket = 10 // DefaultKubeHeapsterDeploymentAddonName is the name of the kube-heapster-deployment addon DefaultKubeHeapsterDeploymentAddonName = "kube-heapster-deployment" // DefaultKubeDNSDeploymentAddonName is the name of the kube-dns-deployment addon diff --git a/pkg/acsengine/defaults.go b/pkg/acsengine/defaults.go index 4fb77e67fb..d24da0aba8 100644 --- a/pkg/acsengine/defaults.go +++ b/pkg/acsengine/defaults.go @@ -350,35 +350,19 @@ func setOrchestratorDefaults(cs *api.ContainerService, isUpdate bool) { } if o.KubernetesConfig.CloudProviderBackoff == nil { - o.KubernetesConfig.CloudProviderBackoff = helpers.PointerToBool(DefaultKubernetesCloudProviderBackoff) + o.KubernetesConfig.CloudProviderBackoff = helpers.PointerToBool(api.DefaultKubernetesCloudProviderBackoff) } // Enforce sane cloudprovider backoff defaults, if CloudProviderBackoff is true in KubernetesConfig if helpers.IsTrueBoolPointer(o.KubernetesConfig.CloudProviderBackoff) { - if o.KubernetesConfig.CloudProviderBackoffDuration == 0 { - o.KubernetesConfig.CloudProviderBackoffDuration = DefaultKubernetesCloudProviderBackoffDuration - } - if o.KubernetesConfig.CloudProviderBackoffExponent == 0 { - o.KubernetesConfig.CloudProviderBackoffExponent = DefaultKubernetesCloudProviderBackoffExponent - } - if o.KubernetesConfig.CloudProviderBackoffJitter == 0 { - o.KubernetesConfig.CloudProviderBackoffJitter = DefaultKubernetesCloudProviderBackoffJitter - } - if o.KubernetesConfig.CloudProviderBackoffRetries == 0 { - o.KubernetesConfig.CloudProviderBackoffRetries = DefaultKubernetesCloudProviderBackoffRetries - } + o.KubernetesConfig.SetCloudProviderBackoffDefaults() } if o.KubernetesConfig.CloudProviderRateLimit == nil { - o.KubernetesConfig.CloudProviderRateLimit = helpers.PointerToBool(DefaultKubernetesCloudProviderRateLimit) + o.KubernetesConfig.CloudProviderRateLimit = helpers.PointerToBool(api.DefaultKubernetesCloudProviderRateLimit) } // Enforce sane cloudprovider rate limit defaults, if CloudProviderRateLimit is true in KubernetesConfig if helpers.IsTrueBoolPointer(o.KubernetesConfig.CloudProviderRateLimit) { - if o.KubernetesConfig.CloudProviderRateLimitQPS == 0 { - o.KubernetesConfig.CloudProviderRateLimitQPS = DefaultKubernetesCloudProviderRateLimitQPS - } - if o.KubernetesConfig.CloudProviderRateLimitBucket == 0 { - o.KubernetesConfig.CloudProviderRateLimitBucket = DefaultKubernetesCloudProviderRateLimitBucket - } + o.KubernetesConfig.SetCloudProviderRateLimitDefaults() } if o.KubernetesConfig.PrivateCluster == nil { diff --git a/pkg/acsengine/k8s_versions.go b/pkg/acsengine/k8s_versions.go index 62e884996d..9b898a7422 100644 --- a/pkg/acsengine/k8s_versions.go +++ b/pkg/acsengine/k8s_versions.go @@ -4,6 +4,7 @@ import ( "strconv" "strings" + "github.com/Azure/acs-engine/pkg/api" "github.com/Azure/acs-engine/pkg/api/common" ) @@ -31,12 +32,12 @@ var k8sComponentVersions = map[string]map[string]string{ "nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod, "podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout, "routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod, - "backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries), - "backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), - "backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration), - "backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), - "ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), - "ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket), + "backoffretries": strconv.Itoa(api.DefaultKubernetesCloudProviderBackoffRetries), + "backoffjitter": strconv.FormatFloat(api.DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), + "backoffduration": strconv.Itoa(api.DefaultKubernetesCloudProviderBackoffDuration), + "backoffexponent": strconv.FormatFloat(api.DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), + "ratelimitqps": strconv.FormatFloat(api.DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), + "ratelimitbucket": strconv.Itoa(api.DefaultKubernetesCloudProviderRateLimitBucket), "gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold), "gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold), }, @@ -63,12 +64,12 @@ var k8sComponentVersions = map[string]map[string]string{ "nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod, "podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout, "routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod, - "backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries), - "backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), - "backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration), - "backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), - "ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), - "ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket), + "backoffretries": strconv.Itoa(api.DefaultKubernetesCloudProviderBackoffRetries), + "backoffjitter": strconv.FormatFloat(api.DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), + "backoffduration": strconv.Itoa(api.DefaultKubernetesCloudProviderBackoffDuration), + "backoffexponent": strconv.FormatFloat(api.DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), + "ratelimitqps": strconv.FormatFloat(api.DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), + "ratelimitbucket": strconv.Itoa(api.DefaultKubernetesCloudProviderRateLimitBucket), "gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold), "gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold), }, @@ -95,12 +96,12 @@ var k8sComponentVersions = map[string]map[string]string{ "nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod, "podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout, "routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod, - "backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries), - "backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), - "backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration), - "backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), - "ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), - "ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket), + "backoffretries": strconv.Itoa(api.DefaultKubernetesCloudProviderBackoffRetries), + "backoffjitter": strconv.FormatFloat(api.DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), + "backoffduration": strconv.Itoa(api.DefaultKubernetesCloudProviderBackoffDuration), + "backoffexponent": strconv.FormatFloat(api.DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), + "ratelimitqps": strconv.FormatFloat(api.DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), + "ratelimitbucket": strconv.Itoa(api.DefaultKubernetesCloudProviderRateLimitBucket), "gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold), "gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold), }, @@ -126,12 +127,12 @@ var k8sComponentVersions = map[string]map[string]string{ "nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod, "podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout, "routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod, - "backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries), - "backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), - "backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration), - "backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), - "ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), - "ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket), + "backoffretries": strconv.Itoa(api.DefaultKubernetesCloudProviderBackoffRetries), + "backoffjitter": strconv.FormatFloat(api.DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), + "backoffduration": strconv.Itoa(api.DefaultKubernetesCloudProviderBackoffDuration), + "backoffexponent": strconv.FormatFloat(api.DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), + "ratelimitqps": strconv.FormatFloat(api.DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), + "ratelimitbucket": strconv.Itoa(api.DefaultKubernetesCloudProviderRateLimitBucket), "gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold), "gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold), }, @@ -155,12 +156,12 @@ var k8sComponentVersions = map[string]map[string]string{ "nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod, "podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout, "routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod, - "backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries), - "backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), - "backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration), - "backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), - "ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), - "ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket), + "backoffretries": strconv.Itoa(api.DefaultKubernetesCloudProviderBackoffRetries), + "backoffjitter": strconv.FormatFloat(api.DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), + "backoffduration": strconv.Itoa(api.DefaultKubernetesCloudProviderBackoffDuration), + "backoffexponent": strconv.FormatFloat(api.DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), + "ratelimitqps": strconv.FormatFloat(api.DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), + "ratelimitbucket": strconv.Itoa(api.DefaultKubernetesCloudProviderRateLimitBucket), "gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold), "gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold), }, @@ -184,12 +185,12 @@ var k8sComponentVersions = map[string]map[string]string{ "nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod, "podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout, "routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod, - "backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries), - "backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), - "backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration), - "backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), - "ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), - "ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket), + "backoffretries": strconv.Itoa(api.DefaultKubernetesCloudProviderBackoffRetries), + "backoffjitter": strconv.FormatFloat(api.DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), + "backoffduration": strconv.Itoa(api.DefaultKubernetesCloudProviderBackoffDuration), + "backoffexponent": strconv.FormatFloat(api.DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), + "ratelimitqps": strconv.FormatFloat(api.DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), + "ratelimitbucket": strconv.Itoa(api.DefaultKubernetesCloudProviderRateLimitBucket), "gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold), "gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold), }, @@ -212,12 +213,12 @@ var k8sComponentVersions = map[string]map[string]string{ "nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod, "podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout, "routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod, - "backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries), - "backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), - "backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration), - "backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), - "ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), - "ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket), + "backoffretries": strconv.Itoa(api.DefaultKubernetesCloudProviderBackoffRetries), + "backoffjitter": strconv.FormatFloat(api.DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), + "backoffduration": strconv.Itoa(api.DefaultKubernetesCloudProviderBackoffDuration), + "backoffexponent": strconv.FormatFloat(api.DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), + "ratelimitqps": strconv.FormatFloat(api.DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), + "ratelimitbucket": strconv.Itoa(api.DefaultKubernetesCloudProviderRateLimitBucket), "gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold), "gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold), }, diff --git a/pkg/api/const.go b/pkg/api/const.go index f5082e4677..a1e54aab4f 100644 --- a/pkg/api/const.go +++ b/pkg/api/const.go @@ -187,3 +187,22 @@ const ( // VHDDiskSizeAKS maps to the OSDiskSizeGB for AKS VHD image VHDDiskSizeAKS = 30 ) + +const ( + // DefaultKubernetesCloudProviderBackoff is false to disable cloudprovider backoff implementation for API calls + DefaultKubernetesCloudProviderBackoff = true + // DefaultKubernetesCloudProviderBackoffRetries is 6, takes effect if DefaultKubernetesCloudProviderBackoff is true + DefaultKubernetesCloudProviderBackoffRetries = 6 + // DefaultKubernetesCloudProviderBackoffJitter is 1, takes effect if DefaultKubernetesCloudProviderBackoff is true + DefaultKubernetesCloudProviderBackoffJitter = 1.0 + // DefaultKubernetesCloudProviderBackoffDuration is 5, takes effect if DefaultKubernetesCloudProviderBackoff is true + DefaultKubernetesCloudProviderBackoffDuration = 5 + // DefaultKubernetesCloudProviderBackoffExponent is 1.5, takes effect if DefaultKubernetesCloudProviderBackoff is true + DefaultKubernetesCloudProviderBackoffExponent = 1.5 + // DefaultKubernetesCloudProviderRateLimit is false to disable cloudprovider rate limiting implementation for API calls + DefaultKubernetesCloudProviderRateLimit = true + // DefaultKubernetesCloudProviderRateLimitQPS is 3, takes effect if DefaultKubernetesCloudProviderRateLimit is true + DefaultKubernetesCloudProviderRateLimitQPS = 3.0 + // DefaultKubernetesCloudProviderRateLimitBucket is 10, takes effect if DefaultKubernetesCloudProviderRateLimit is true + DefaultKubernetesCloudProviderRateLimitBucket = 10 +) diff --git a/pkg/api/types.go b/pkg/api/types.go index fd5878a4c9..ad64951a2d 100644 --- a/pkg/api/types.go +++ b/pkg/api/types.go @@ -1078,3 +1078,29 @@ func (k *KubernetesConfig) RequiresDocker() bool { runtime := strings.ToLower(k.ContainerRuntime) return runtime == "docker" || runtime == "" } + +// SetCloudProviderBackoffDefaults sets default cloudprovider backoff config +func (k *KubernetesConfig) SetCloudProviderBackoffDefaults() { + if k.CloudProviderBackoffDuration == 0 { + k.CloudProviderBackoffDuration = DefaultKubernetesCloudProviderBackoffDuration + } + if k.CloudProviderBackoffExponent == 0 { + k.CloudProviderBackoffExponent = DefaultKubernetesCloudProviderBackoffExponent + } + if k.CloudProviderBackoffJitter == 0 { + k.CloudProviderBackoffJitter = DefaultKubernetesCloudProviderBackoffJitter + } + if k.CloudProviderBackoffRetries == 0 { + k.CloudProviderBackoffRetries = DefaultKubernetesCloudProviderBackoffRetries + } +} + +// SetCloudProviderRateLimitDefaults sets default cloudprovider rate limiter config +func (k *KubernetesConfig) SetCloudProviderRateLimitDefaults() { + if k.CloudProviderRateLimitQPS == 0 { + k.CloudProviderRateLimitQPS = DefaultKubernetesCloudProviderRateLimitQPS + } + if k.CloudProviderRateLimitBucket == 0 { + k.CloudProviderRateLimitBucket = DefaultKubernetesCloudProviderRateLimitBucket + } +} diff --git a/pkg/api/types_test.go b/pkg/api/types_test.go index cc9ca2ecc9..db6c208e12 100644 --- a/pkg/api/types_test.go +++ b/pkg/api/types_test.go @@ -1373,6 +1373,200 @@ func TestIsMetricsServerEnabled(t *testing.T) { } } +func TestCloudProviderDefaults(t *testing.T) { + // Test cloudprovider defaults when no user-provided values + v := "1.8.0" + o := OrchestratorProfile{ + OrchestratorType: "Kubernetes", + OrchestratorVersion: v, + KubernetesConfig: &KubernetesConfig{}, + } + o.KubernetesConfig.SetCloudProviderBackoffDefaults() + o.KubernetesConfig.SetCloudProviderRateLimitDefaults() + + intCases := []struct { + defaultVal int + computedVal int + }{ + { + defaultVal: DefaultKubernetesCloudProviderBackoffRetries, + computedVal: o.KubernetesConfig.CloudProviderBackoffRetries, + }, + { + defaultVal: DefaultKubernetesCloudProviderBackoffDuration, + computedVal: o.KubernetesConfig.CloudProviderBackoffDuration, + }, + { + defaultVal: DefaultKubernetesCloudProviderRateLimitBucket, + computedVal: o.KubernetesConfig.CloudProviderRateLimitBucket, + }, + } + + for _, c := range intCases { + if c.computedVal != c.defaultVal { + t.Fatalf("KubernetesConfig empty cloudprovider configs should reflect default values after SetCloudProviderBackoffDefaults(), expected %d, got %d", c.defaultVal, c.computedVal) + } + } + + floatCases := []struct { + defaultVal float64 + computedVal float64 + }{ + { + defaultVal: DefaultKubernetesCloudProviderBackoffJitter, + computedVal: o.KubernetesConfig.CloudProviderBackoffJitter, + }, + { + defaultVal: DefaultKubernetesCloudProviderBackoffExponent, + computedVal: o.KubernetesConfig.CloudProviderBackoffExponent, + }, + { + defaultVal: DefaultKubernetesCloudProviderRateLimitQPS, + computedVal: o.KubernetesConfig.CloudProviderRateLimitQPS, + }, + } + + for _, c := range floatCases { + if c.computedVal != c.defaultVal { + t.Fatalf("KubernetesConfig empty cloudprovider configs should reflect default values after SetCloudProviderBackoffDefaults(), expected %f, got %f", c.defaultVal, c.computedVal) + } + } + + customCloudProviderBackoffDuration := 99 + customCloudProviderBackoffExponent := 10.0 + customCloudProviderBackoffJitter := 11.9 + customCloudProviderBackoffRetries := 9 + customCloudProviderRateLimitBucket := 37 + customCloudProviderRateLimitQPS := 9.9 + + // Test cloudprovider defaults when user provides configuration + v = "1.8.0" + o = OrchestratorProfile{ + OrchestratorType: "Kubernetes", + OrchestratorVersion: v, + KubernetesConfig: &KubernetesConfig{ + CloudProviderBackoffDuration: customCloudProviderBackoffDuration, + CloudProviderBackoffExponent: customCloudProviderBackoffExponent, + CloudProviderBackoffJitter: customCloudProviderBackoffJitter, + CloudProviderBackoffRetries: customCloudProviderBackoffRetries, + CloudProviderRateLimitBucket: customCloudProviderRateLimitBucket, + CloudProviderRateLimitQPS: customCloudProviderRateLimitQPS, + }, + } + o.KubernetesConfig.SetCloudProviderBackoffDefaults() + o.KubernetesConfig.SetCloudProviderRateLimitDefaults() + + intCasesCustom := []struct { + customVal int + computedVal int + }{ + { + customVal: customCloudProviderBackoffRetries, + computedVal: o.KubernetesConfig.CloudProviderBackoffRetries, + }, + { + customVal: customCloudProviderBackoffDuration, + computedVal: o.KubernetesConfig.CloudProviderBackoffDuration, + }, + { + customVal: customCloudProviderRateLimitBucket, + computedVal: o.KubernetesConfig.CloudProviderRateLimitBucket, + }, + } + + for _, c := range intCasesCustom { + if c.computedVal != c.customVal { + t.Fatalf("KubernetesConfig empty cloudprovider configs should reflect default values after SetCloudProviderBackoffDefaults(), expected %d, got %d", c.customVal, c.computedVal) + } + } + + floatCasesCustom := []struct { + customVal float64 + computedVal float64 + }{ + { + customVal: customCloudProviderBackoffJitter, + computedVal: o.KubernetesConfig.CloudProviderBackoffJitter, + }, + { + customVal: customCloudProviderBackoffExponent, + computedVal: o.KubernetesConfig.CloudProviderBackoffExponent, + }, + { + customVal: customCloudProviderRateLimitQPS, + computedVal: o.KubernetesConfig.CloudProviderRateLimitQPS, + }, + } + + for _, c := range floatCasesCustom { + if c.computedVal != c.customVal { + t.Fatalf("KubernetesConfig empty cloudprovider configs should reflect default values after SetCloudProviderBackoffDefaults(), expected %f, got %f", c.customVal, c.computedVal) + } + } + + // Test cloudprovider defaults when user provides *some* config values + v = "1.8.0" + o = OrchestratorProfile{ + OrchestratorType: "Kubernetes", + OrchestratorVersion: v, + KubernetesConfig: &KubernetesConfig{ + CloudProviderBackoffDuration: customCloudProviderBackoffDuration, + CloudProviderRateLimitBucket: customCloudProviderRateLimitBucket, + CloudProviderRateLimitQPS: customCloudProviderRateLimitQPS, + }, + } + o.KubernetesConfig.SetCloudProviderBackoffDefaults() + o.KubernetesConfig.SetCloudProviderRateLimitDefaults() + + intCasesMixed := []struct { + expectedVal int + computedVal int + }{ + { + expectedVal: DefaultKubernetesCloudProviderBackoffRetries, + computedVal: o.KubernetesConfig.CloudProviderBackoffRetries, + }, + { + expectedVal: customCloudProviderBackoffDuration, + computedVal: o.KubernetesConfig.CloudProviderBackoffDuration, + }, + { + expectedVal: customCloudProviderRateLimitBucket, + computedVal: o.KubernetesConfig.CloudProviderRateLimitBucket, + }, + } + + for _, c := range intCasesMixed { + if c.computedVal != c.expectedVal { + t.Fatalf("KubernetesConfig empty cloudprovider configs should reflect default values after SetCloudProviderBackoffDefaults(), expected %d, got %d", c.expectedVal, c.computedVal) + } + } + + floatCasesMixed := []struct { + expectedVal float64 + computedVal float64 + }{ + { + expectedVal: DefaultKubernetesCloudProviderBackoffJitter, + computedVal: o.KubernetesConfig.CloudProviderBackoffJitter, + }, + { + expectedVal: DefaultKubernetesCloudProviderBackoffExponent, + computedVal: o.KubernetesConfig.CloudProviderBackoffExponent, + }, + { + expectedVal: customCloudProviderRateLimitQPS, + computedVal: o.KubernetesConfig.CloudProviderRateLimitQPS, + }, + } + + for _, c := range floatCasesMixed { + if c.computedVal != c.expectedVal { + t.Fatalf("KubernetesConfig empty cloudprovider configs should reflect default values after SetCloudProviderBackoffDefaults(), expected %f, got %f", c.expectedVal, c.computedVal) + } + } +} + func getMockAddon(name string) KubernetesAddon { return KubernetesAddon{ Name: name, From 493a37a92eede1232cd76aab47da999eff821ed3 Mon Sep 17 00:00:00 2001 From: Jack Francis Date: Mon, 24 Sep 2018 16:02:04 -0700 Subject: [PATCH 3/3] =?UTF-8?q?bool=20default=20consts=20don=E2=80=99t=20n?= =?UTF-8?q?eed=20moving?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/acsengine/const.go | 4 ++++ pkg/acsengine/defaults.go | 4 ++-- pkg/api/const.go | 4 ---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/acsengine/const.go b/pkg/acsengine/const.go index 937986e31a..6e7a00f0fa 100644 --- a/pkg/acsengine/const.go +++ b/pkg/acsengine/const.go @@ -78,6 +78,10 @@ const ( DefaultKubernetesCtrlMgrTerminatedPodGcThreshold = "5000" // DefaultKubernetesCtrlMgrUseSvcAccountCreds is "true", see --use-service-account-credentials at https://kubernetes.io/docs/admin/kube-controller-manager/ DefaultKubernetesCtrlMgrUseSvcAccountCreds = "false" + // DefaultKubernetesCloudProviderBackoff is false to disable cloudprovider backoff implementation for API calls + DefaultKubernetesCloudProviderBackoff = true + // DefaultKubernetesCloudProviderRateLimit is false to disable cloudprovider rate limiting implementation for API calls + DefaultKubernetesCloudProviderRateLimit = true // DefaultKubeHeapsterDeploymentAddonName is the name of the kube-heapster-deployment addon DefaultKubeHeapsterDeploymentAddonName = "kube-heapster-deployment" // DefaultKubeDNSDeploymentAddonName is the name of the kube-dns-deployment addon diff --git a/pkg/acsengine/defaults.go b/pkg/acsengine/defaults.go index d24da0aba8..f066c6b6ef 100644 --- a/pkg/acsengine/defaults.go +++ b/pkg/acsengine/defaults.go @@ -350,7 +350,7 @@ func setOrchestratorDefaults(cs *api.ContainerService, isUpdate bool) { } if o.KubernetesConfig.CloudProviderBackoff == nil { - o.KubernetesConfig.CloudProviderBackoff = helpers.PointerToBool(api.DefaultKubernetesCloudProviderBackoff) + o.KubernetesConfig.CloudProviderBackoff = helpers.PointerToBool(DefaultKubernetesCloudProviderBackoff) } // Enforce sane cloudprovider backoff defaults, if CloudProviderBackoff is true in KubernetesConfig if helpers.IsTrueBoolPointer(o.KubernetesConfig.CloudProviderBackoff) { @@ -358,7 +358,7 @@ func setOrchestratorDefaults(cs *api.ContainerService, isUpdate bool) { } if o.KubernetesConfig.CloudProviderRateLimit == nil { - o.KubernetesConfig.CloudProviderRateLimit = helpers.PointerToBool(api.DefaultKubernetesCloudProviderRateLimit) + o.KubernetesConfig.CloudProviderRateLimit = helpers.PointerToBool(DefaultKubernetesCloudProviderRateLimit) } // Enforce sane cloudprovider rate limit defaults, if CloudProviderRateLimit is true in KubernetesConfig if helpers.IsTrueBoolPointer(o.KubernetesConfig.CloudProviderRateLimit) { diff --git a/pkg/api/const.go b/pkg/api/const.go index a1e54aab4f..9dae9274ce 100644 --- a/pkg/api/const.go +++ b/pkg/api/const.go @@ -189,8 +189,6 @@ const ( ) const ( - // DefaultKubernetesCloudProviderBackoff is false to disable cloudprovider backoff implementation for API calls - DefaultKubernetesCloudProviderBackoff = true // DefaultKubernetesCloudProviderBackoffRetries is 6, takes effect if DefaultKubernetesCloudProviderBackoff is true DefaultKubernetesCloudProviderBackoffRetries = 6 // DefaultKubernetesCloudProviderBackoffJitter is 1, takes effect if DefaultKubernetesCloudProviderBackoff is true @@ -199,8 +197,6 @@ const ( DefaultKubernetesCloudProviderBackoffDuration = 5 // DefaultKubernetesCloudProviderBackoffExponent is 1.5, takes effect if DefaultKubernetesCloudProviderBackoff is true DefaultKubernetesCloudProviderBackoffExponent = 1.5 - // DefaultKubernetesCloudProviderRateLimit is false to disable cloudprovider rate limiting implementation for API calls - DefaultKubernetesCloudProviderRateLimit = true // DefaultKubernetesCloudProviderRateLimitQPS is 3, takes effect if DefaultKubernetesCloudProviderRateLimit is true DefaultKubernetesCloudProviderRateLimitQPS = 3.0 // DefaultKubernetesCloudProviderRateLimitBucket is 10, takes effect if DefaultKubernetesCloudProviderRateLimit is true