Add support to configure HPA Controller concurrent syncs flag in HPA/KCM Controller

This commit is contained in:
hakuna-matatah 2024-01-24 11:39:57 -08:00
parent 4bd457afb9
commit 1854076579
14 changed files with 37 additions and 1 deletions

View File

@ -2147,6 +2147,11 @@ spec:
sync concurrently. sync concurrently.
format: int32 format: int32
type: integer type: integer
concurrentHorizontalPodAustoscalerSyncs:
description: The number of horizontal pod autoscaler objects that
are allowed to sync concurrently (default 5).
format: int32
type: integer
concurrentNamespaceSyncs: concurrentNamespaceSyncs:
description: The number of namespace objects that are allowed description: The number of namespace objects that are allowed
to sync concurrently. to sync concurrently.

View File

@ -653,6 +653,8 @@ type KubeControllerManagerConfig struct {
ConcurrentServiceaccountTokenSyncs *int32 `json:"concurrentServiceaccountTokenSyncs,omitempty" flag:"concurrent-serviceaccount-token-syncs"` ConcurrentServiceaccountTokenSyncs *int32 `json:"concurrentServiceaccountTokenSyncs,omitempty" flag:"concurrent-serviceaccount-token-syncs"`
// The number of replicationcontroller objects that are allowed to sync concurrently. // The number of replicationcontroller objects that are allowed to sync concurrently.
ConcurrentRCSyncs *int32 `json:"concurrentRCSyncs,omitempty" flag:"concurrent-rc-syncs"` ConcurrentRCSyncs *int32 `json:"concurrentRCSyncs,omitempty" flag:"concurrent-rc-syncs"`
// The number of horizontal pod autoscaler objects that are allowed to sync concurrently (default 5).
ConcurrentHorizontalPodAustoscalerSyncs *int32 `json:"concurrentHorizontalPodAustoscalerSyncs,omitempty" flag:"concurrent-horizontal-pod-autoscaler-syncs"`
// AuthenticationKubeconfig is the path to an Authentication Kubeconfig // AuthenticationKubeconfig is the path to an Authentication Kubeconfig
AuthenticationKubeconfig string `json:"authenticationKubeconfig,omitempty" flag:"authentication-kubeconfig"` AuthenticationKubeconfig string `json:"authenticationKubeconfig,omitempty" flag:"authentication-kubeconfig"`
// AuthorizationKubeconfig is the path to an Authorization Kubeconfig // AuthorizationKubeconfig is the path to an Authorization Kubeconfig

View File

@ -661,6 +661,8 @@ type KubeControllerManagerConfig struct {
// The number of replicationcontroller objects that are allowed to sync concurrently. // The number of replicationcontroller objects that are allowed to sync concurrently.
// This only works on kubernetes >= 1.14 // This only works on kubernetes >= 1.14
ConcurrentRCSyncs *int32 `json:"concurrentRcSyncs,omitempty" flag:"concurrent-rc-syncs"` ConcurrentRCSyncs *int32 `json:"concurrentRcSyncs,omitempty" flag:"concurrent-rc-syncs"`
// The number of horizontal pod autoscaler objects that are allowed to sync concurrently (default 5).
ConcurrentHorizontalPodAustoscalerSyncs *int32 `json:"concurrentHorizontalPodAustoscalerSyncs,omitempty" flag:"concurrent-horizontal-pod-autoscaler-syncs"`
// AuthenticationKubeconfig is the path to an Authentication Kubeconfig // AuthenticationKubeconfig is the path to an Authentication Kubeconfig
AuthenticationKubeconfig string `json:"authenticationKubeconfig,omitempty" flag:"authentication-kubeconfig"` AuthenticationKubeconfig string `json:"authenticationKubeconfig,omitempty" flag:"authentication-kubeconfig"`
// AuthorizationKubeconfig is the path to an Authorization Kubeconfig // AuthorizationKubeconfig is the path to an Authorization Kubeconfig

View File

@ -5139,6 +5139,7 @@ func autoConvert_v1alpha2_KubeControllerManagerConfig_To_kops_KubeControllerMana
out.ConcurrentResourceQuotaSyncs = in.ConcurrentResourceQuotaSyncs out.ConcurrentResourceQuotaSyncs = in.ConcurrentResourceQuotaSyncs
out.ConcurrentServiceaccountTokenSyncs = in.ConcurrentServiceaccountTokenSyncs out.ConcurrentServiceaccountTokenSyncs = in.ConcurrentServiceaccountTokenSyncs
out.ConcurrentRCSyncs = in.ConcurrentRCSyncs out.ConcurrentRCSyncs = in.ConcurrentRCSyncs
out.ConcurrentHorizontalPodAustoscalerSyncs = in.ConcurrentHorizontalPodAustoscalerSyncs
out.AuthenticationKubeconfig = in.AuthenticationKubeconfig out.AuthenticationKubeconfig = in.AuthenticationKubeconfig
out.AuthorizationKubeconfig = in.AuthorizationKubeconfig out.AuthorizationKubeconfig = in.AuthorizationKubeconfig
out.AuthorizationAlwaysAllowPaths = in.AuthorizationAlwaysAllowPaths out.AuthorizationAlwaysAllowPaths = in.AuthorizationAlwaysAllowPaths
@ -5213,6 +5214,7 @@ func autoConvert_kops_KubeControllerManagerConfig_To_v1alpha2_KubeControllerMana
out.ConcurrentResourceQuotaSyncs = in.ConcurrentResourceQuotaSyncs out.ConcurrentResourceQuotaSyncs = in.ConcurrentResourceQuotaSyncs
out.ConcurrentServiceaccountTokenSyncs = in.ConcurrentServiceaccountTokenSyncs out.ConcurrentServiceaccountTokenSyncs = in.ConcurrentServiceaccountTokenSyncs
out.ConcurrentRCSyncs = in.ConcurrentRCSyncs out.ConcurrentRCSyncs = in.ConcurrentRCSyncs
out.ConcurrentHorizontalPodAustoscalerSyncs = in.ConcurrentHorizontalPodAustoscalerSyncs
out.AuthenticationKubeconfig = in.AuthenticationKubeconfig out.AuthenticationKubeconfig = in.AuthenticationKubeconfig
out.AuthorizationKubeconfig = in.AuthorizationKubeconfig out.AuthorizationKubeconfig = in.AuthorizationKubeconfig
out.AuthorizationAlwaysAllowPaths = in.AuthorizationAlwaysAllowPaths out.AuthorizationAlwaysAllowPaths = in.AuthorizationAlwaysAllowPaths

View File

@ -3591,6 +3591,11 @@ func (in *KubeControllerManagerConfig) DeepCopyInto(out *KubeControllerManagerCo
*out = new(int32) *out = new(int32)
**out = **in **out = **in
} }
if in.ConcurrentHorizontalPodAustoscalerSyncs != nil {
in, out := &in.ConcurrentHorizontalPodAustoscalerSyncs, &out.ConcurrentHorizontalPodAustoscalerSyncs
*out = new(int32)
**out = **in
}
if in.AuthorizationAlwaysAllowPaths != nil { if in.AuthorizationAlwaysAllowPaths != nil {
in, out := &in.AuthorizationAlwaysAllowPaths, &out.AuthorizationAlwaysAllowPaths in, out := &in.AuthorizationAlwaysAllowPaths, &out.AuthorizationAlwaysAllowPaths
*out = make([]string, len(*in)) *out = make([]string, len(*in))

View File

@ -652,6 +652,8 @@ type KubeControllerManagerConfig struct {
// The number of replicationcontroller objects that are allowed to sync concurrently. // The number of replicationcontroller objects that are allowed to sync concurrently.
// This only works on kubernetes >= 1.14 // This only works on kubernetes >= 1.14
ConcurrentRCSyncs *int32 `json:"concurrentRCSyncs,omitempty" flag:"concurrent-rc-syncs"` ConcurrentRCSyncs *int32 `json:"concurrentRCSyncs,omitempty" flag:"concurrent-rc-syncs"`
// The number of horizontal pod autoscaler objects that are allowed to sync concurrently (default 5).
ConcurrentHorizontalPodAustoscalerSyncs *int32 `json:"concurrentHorizontalPodAustoscalerSyncs,omitempty" flag:"concurrent-horizontal-pod-autoscaler-syncs"`
// AuthenticationKubeconfig is the path to an Authentication Kubeconfig // AuthenticationKubeconfig is the path to an Authentication Kubeconfig
AuthenticationKubeconfig string `json:"authenticationKubeconfig,omitempty" flag:"authentication-kubeconfig"` AuthenticationKubeconfig string `json:"authenticationKubeconfig,omitempty" flag:"authentication-kubeconfig"`
// AuthorizationKubeconfig is the path to an Authorization Kubeconfig // AuthorizationKubeconfig is the path to an Authorization Kubeconfig

View File

@ -5534,6 +5534,7 @@ func autoConvert_v1alpha3_KubeControllerManagerConfig_To_kops_KubeControllerMana
out.ConcurrentResourceQuotaSyncs = in.ConcurrentResourceQuotaSyncs out.ConcurrentResourceQuotaSyncs = in.ConcurrentResourceQuotaSyncs
out.ConcurrentServiceaccountTokenSyncs = in.ConcurrentServiceaccountTokenSyncs out.ConcurrentServiceaccountTokenSyncs = in.ConcurrentServiceaccountTokenSyncs
out.ConcurrentRCSyncs = in.ConcurrentRCSyncs out.ConcurrentRCSyncs = in.ConcurrentRCSyncs
out.ConcurrentHorizontalPodAustoscalerSyncs = in.ConcurrentHorizontalPodAustoscalerSyncs
out.AuthenticationKubeconfig = in.AuthenticationKubeconfig out.AuthenticationKubeconfig = in.AuthenticationKubeconfig
out.AuthorizationKubeconfig = in.AuthorizationKubeconfig out.AuthorizationKubeconfig = in.AuthorizationKubeconfig
out.AuthorizationAlwaysAllowPaths = in.AuthorizationAlwaysAllowPaths out.AuthorizationAlwaysAllowPaths = in.AuthorizationAlwaysAllowPaths
@ -5608,6 +5609,7 @@ func autoConvert_kops_KubeControllerManagerConfig_To_v1alpha3_KubeControllerMana
out.ConcurrentResourceQuotaSyncs = in.ConcurrentResourceQuotaSyncs out.ConcurrentResourceQuotaSyncs = in.ConcurrentResourceQuotaSyncs
out.ConcurrentServiceaccountTokenSyncs = in.ConcurrentServiceaccountTokenSyncs out.ConcurrentServiceaccountTokenSyncs = in.ConcurrentServiceaccountTokenSyncs
out.ConcurrentRCSyncs = in.ConcurrentRCSyncs out.ConcurrentRCSyncs = in.ConcurrentRCSyncs
out.ConcurrentHorizontalPodAustoscalerSyncs = in.ConcurrentHorizontalPodAustoscalerSyncs
out.AuthenticationKubeconfig = in.AuthenticationKubeconfig out.AuthenticationKubeconfig = in.AuthenticationKubeconfig
out.AuthorizationKubeconfig = in.AuthorizationKubeconfig out.AuthorizationKubeconfig = in.AuthorizationKubeconfig
out.AuthorizationAlwaysAllowPaths = in.AuthorizationAlwaysAllowPaths out.AuthorizationAlwaysAllowPaths = in.AuthorizationAlwaysAllowPaths

View File

@ -3565,6 +3565,11 @@ func (in *KubeControllerManagerConfig) DeepCopyInto(out *KubeControllerManagerCo
*out = new(int32) *out = new(int32)
**out = **in **out = **in
} }
if in.ConcurrentHorizontalPodAustoscalerSyncs != nil {
in, out := &in.ConcurrentHorizontalPodAustoscalerSyncs, &out.ConcurrentHorizontalPodAustoscalerSyncs
*out = new(int32)
**out = **in
}
if in.AuthorizationAlwaysAllowPaths != nil { if in.AuthorizationAlwaysAllowPaths != nil {
in, out := &in.AuthorizationAlwaysAllowPaths, &out.AuthorizationAlwaysAllowPaths in, out := &in.AuthorizationAlwaysAllowPaths, &out.AuthorizationAlwaysAllowPaths
*out = make([]string, len(*in)) *out = make([]string, len(*in))

View File

@ -3668,6 +3668,11 @@ func (in *KubeControllerManagerConfig) DeepCopyInto(out *KubeControllerManagerCo
*out = new(int32) *out = new(int32)
**out = **in **out = **in
} }
if in.ConcurrentHorizontalPodAustoscalerSyncs != nil {
in, out := &in.ConcurrentHorizontalPodAustoscalerSyncs, &out.ConcurrentHorizontalPodAustoscalerSyncs
*out = new(int32)
**out = **in
}
if in.AuthorizationAlwaysAllowPaths != nil { if in.AuthorizationAlwaysAllowPaths != nil {
in, out := &in.AuthorizationAlwaysAllowPaths, &out.AuthorizationAlwaysAllowPaths in, out := &in.AuthorizationAlwaysAllowPaths, &out.AuthorizationAlwaysAllowPaths
*out = make([]string, len(*in)) *out = make([]string, len(*in))

View File

@ -137,7 +137,7 @@ ClusterName: complex.example.com
ConfigBase: memfs://clusters.example.com/complex.example.com ConfigBase: memfs://clusters.example.com/complex.example.com
InstanceGroupName: master-us-test-1a InstanceGroupName: master-us-test-1a
InstanceGroupRole: ControlPlane InstanceGroupRole: ControlPlane
NodeupConfigHash: 8llBgMPmer0wwNgQzc6HgHOziAIsfsuBrULCqM5rJ8g= NodeupConfigHash: oS9f/2989IOxnyiWmx1lnkIQsogeQAhSZLPP6TSUsKo=
__EOF_KUBE_ENV __EOF_KUBE_ENV

View File

@ -135,6 +135,7 @@ spec:
cloudProvider: external cloudProvider: external
clusterCIDR: 100.96.0.0/11 clusterCIDR: 100.96.0.0/11
clusterName: complex.example.com clusterName: complex.example.com
concurrentHorizontalPodAustoscalerSyncs: 10
configureCloudRoutes: false configureCloudRoutes: false
featureGates: featureGates:
CSIMigrationAWS: "true" CSIMigrationAWS: "true"

View File

@ -241,6 +241,7 @@ ControlPlaneConfig:
cloudProvider: external cloudProvider: external
clusterCIDR: 100.96.0.0/11 clusterCIDR: 100.96.0.0/11
clusterName: complex.example.com clusterName: complex.example.com
concurrentHorizontalPodAustoscalerSyncs: 10
configureCloudRoutes: false configureCloudRoutes: false
featureGates: featureGates:
CSIMigrationAWS: "true" CSIMigrationAWS: "true"

View File

@ -50,6 +50,8 @@ spec:
cpuLimit: 500m cpuLimit: 500m
memoryRequest: 800Mi memoryRequest: 800Mi
memoryLimit: 1000Mi memoryLimit: 1000Mi
kubeControllerManager:
concurrentHorizontalPodAustoscalerSyncs: 10
kubelet: kubelet:
anonymousAuth: false anonymousAuth: false
kubernetesVersion: v1.24.0 kubernetesVersion: v1.24.0

View File

@ -27,6 +27,8 @@ spec:
channel: stable channel: stable
cloudControllerManager: cloudControllerManager:
concurrentNodeSyncs: 5 concurrentNodeSyncs: 5
kubeControllerManager:
concurrentHorizontalPodAustoscalerSyncs: 10
cloudProvider: aws cloudProvider: aws
cloudLabels: cloudLabels:
Owner: John Doe Owner: John Doe