From 83de3e9733d898978cf379c194fc5ad00b5bffe9 Mon Sep 17 00:00:00 2001 From: Robert Rati Date: Wed, 30 Mar 2016 10:07:30 -0400 Subject: [PATCH] Added optional delays to starting controller managers. #22669 --- .../app/controllermanager.go | 23 + .../app/options/options.go | 8 +- docs/admin/kube-controller-manager.md | 3 +- hack/verify-flags/known-flags.txt | 1 + .../componentconfig/deep_copy_generated.go | 3 + pkg/apis/componentconfig/types.generated.go | 717 ++++++++++-------- pkg/apis/componentconfig/types.go | 2 + 7 files changed, 428 insertions(+), 329 deletions(-) diff --git a/cmd/kube-controller-manager/app/controllermanager.go b/cmd/kube-controller-manager/app/controllermanager.go index 22a483cae1..c8641e2f37 100644 --- a/cmd/kube-controller-manager/app/controllermanager.go +++ b/cmd/kube-controller-manager/app/controllermanager.go @@ -75,6 +75,11 @@ import ( "github.com/spf13/pflag" ) +const ( + // Jitter used when starting controller managers + ControllerStartJitter = 1.0 +) + // NewControllerManagerCommand creates a *cobra.Command object with default parameters func NewControllerManagerCommand() *cobra.Command { s := options.NewCMServer() @@ -186,6 +191,7 @@ func Run(s *options.CMServer) error { func StartControllers(s *options.CMServer, kubeClient *client.Client, kubeconfig *restclient.Config, stop <-chan struct{}) error { go endpointcontroller.NewEndpointController(clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "endpoint-controller")), ResyncPeriod(s)). Run(s.ConcurrentEndpointSyncs, wait.NeverStop) + time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) go replicationcontroller.NewReplicationManager( clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "replication-controller")), @@ -193,10 +199,12 @@ func StartControllers(s *options.CMServer, kubeClient *client.Client, kubeconfig replicationcontroller.BurstReplicas, s.LookupCacheSizeForRC, ).Run(s.ConcurrentRCSyncs, wait.NeverStop) + time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) if s.TerminatedPodGCThreshold > 0 { go gc.New(clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "garbage-collector")), ResyncPeriod(s), s.TerminatedPodGCThreshold). Run(wait.NeverStop) + time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) } cloud, err := cloudprovider.InitCloudProvider(s.CloudProvider, s.CloudConfigFile) @@ -211,11 +219,13 @@ func StartControllers(s *options.CMServer, kubeClient *client.Client, kubeconfig flowcontrol.NewTokenBucketRateLimiter(s.DeletingPodsQps, s.DeletingPodsBurst), s.NodeMonitorGracePeriod.Duration, s.NodeStartupGracePeriod.Duration, s.NodeMonitorPeriod.Duration, clusterCIDR, s.AllocateNodeCIDRs) nodeController.Run(s.NodeSyncPeriod.Duration) + time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) serviceController := servicecontroller.New(cloud, clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "service-controller")), s.ClusterName) if err := serviceController.Run(s.ServiceSyncPeriod.Duration, s.NodeSyncPeriod.Duration); err != nil { glog.Errorf("Failed to start service controller: %v", err) } + time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) if s.AllocateNodeCIDRs { if cloud == nil { @@ -225,6 +235,7 @@ func StartControllers(s *options.CMServer, kubeClient *client.Client, kubeconfig } else { routeController := routecontroller.New(routes, clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "route-controller")), s.ClusterName, clusterCIDR) routeController.Run(s.NodeSyncPeriod.Duration) + time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) } } else { glog.Infof("allocate-node-cidrs set to %v, node controller not creating routes", s.AllocateNodeCIDRs) @@ -249,6 +260,7 @@ func StartControllers(s *options.CMServer, kubeClient *client.Client, kubeconfig GroupKindsToReplenish: groupKindsToReplenish, } go resourcequotacontroller.NewResourceQuotaController(resourceQuotaControllerOptions).Run(s.ConcurrentResourceQuotaSyncs, wait.NeverStop) + time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) // If apiserver is not running we should wait for some time and fail only then. This is particularly // important when we start apiserver and controller manager at the same time. @@ -279,6 +291,7 @@ func StartControllers(s *options.CMServer, kubeClient *client.Client, kubeconfig } namespaceController := namespacecontroller.NewNamespaceController(namespaceKubeClient, namespaceClientPool, groupVersionResources, s.NamespaceSyncPeriod.Duration, api.FinalizerKubernetes) go namespaceController.Run(s.ConcurrentNamespaceSyncs, wait.NeverStop) + time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) groupVersion := "extensions/v1beta1" resources, found := resourceMap[groupVersion] @@ -297,30 +310,35 @@ func StartControllers(s *options.CMServer, kubeClient *client.Client, kubeconfig ) go podautoscaler.NewHorizontalController(hpaClient.Core(), hpaClient.Extensions(), hpaClient, metricsClient, s.HorizontalPodAutoscalerSyncPeriod.Duration). Run(wait.NeverStop) + time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) } if containsResource(resources, "daemonsets") { glog.Infof("Starting daemon set controller") go daemon.NewDaemonSetsController(clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "daemon-set-controller")), ResyncPeriod(s), s.LookupCacheSizeForDaemonSet). Run(s.ConcurrentDaemonSetSyncs, wait.NeverStop) + time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) } if containsResource(resources, "jobs") { glog.Infof("Starting job controller") go job.NewJobController(clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "job-controller")), ResyncPeriod(s)). Run(s.ConcurrentJobSyncs, wait.NeverStop) + time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) } if containsResource(resources, "deployments") { glog.Infof("Starting deployment controller") go deployment.NewDeploymentController(clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "deployment-controller")), ResyncPeriod(s)). Run(s.ConcurrentDeploymentSyncs, wait.NeverStop) + time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) } if containsResource(resources, "replicasets") { glog.Infof("Starting ReplicaSet controller") go replicaset.NewReplicaSetController(clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "replicaset-controller")), ResyncPeriod(s), replicaset.BurstReplicas, s.LookupCacheSizeForRS). Run(s.ConcurrentRSSyncs, wait.NeverStop) + time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) } } @@ -332,6 +350,7 @@ func StartControllers(s *options.CMServer, kubeClient *client.Client, kubeconfig pvclaimBinder := persistentvolumecontroller.NewPersistentVolumeClaimBinder(clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "persistent-volume-binder")), s.PVClaimBinderSyncPeriod.Duration) pvclaimBinder.Run() + time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) pvRecycler, err := persistentvolumecontroller.NewPersistentVolumeRecycler( clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "persistent-volume-recycler")), @@ -344,6 +363,7 @@ func StartControllers(s *options.CMServer, kubeClient *client.Client, kubeconfig glog.Fatalf("Failed to start persistent volume recycler: %+v", err) } pvRecycler.Run() + time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) if provisioner != nil { pvController, err := persistentvolumecontroller.NewPersistentVolumeProvisionerController(persistentvolumecontroller.NewControllerClient(clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "persistent-volume-provisioner"))), s.PVClaimBinderSyncPeriod.Duration, s.ClusterName, volumePlugins, provisioner, cloud) @@ -351,6 +371,7 @@ func StartControllers(s *options.CMServer, kubeClient *client.Client, kubeconfig glog.Fatalf("Failed to start persistent volume provisioner controller: %+v", err) } pvController.Run() + time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) } var rootCA []byte @@ -379,6 +400,7 @@ func StartControllers(s *options.CMServer, kubeClient *client.Client, kubeconfig RootCA: rootCA, }, ).Run() + time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) } } @@ -386,6 +408,7 @@ func StartControllers(s *options.CMServer, kubeClient *client.Client, kubeconfig clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "service-account-controller")), serviceaccountcontroller.DefaultServiceAccountsControllerOptions(), ).Run() + time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter)) select {} } diff --git a/cmd/kube-controller-manager/app/options/options.go b/cmd/kube-controller-manager/app/options/options.go index 1c9638ade0..f82b6c82cf 100644 --- a/cmd/kube-controller-manager/app/options/options.go +++ b/cmd/kube-controller-manager/app/options/options.go @@ -81,9 +81,10 @@ func NewCMServer() *CMServer { IncrementTimeoutHostPath: 30, }, }, - KubeAPIQPS: 20.0, - KubeAPIBurst: 30, - LeaderElection: leaderelection.DefaultLeaderElectionConfiguration(), + KubeAPIQPS: 20.0, + KubeAPIBurst: 30, + LeaderElection: leaderelection.DefaultLeaderElectionConfiguration(), + ControllerStartInterval: unversioned.Duration{0 * time.Second}, }, } return &s @@ -146,5 +147,6 @@ func (s *CMServer) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&s.RootCAFile, "root-ca-file", s.RootCAFile, "If set, this root certificate authority will be included in service account's token secret. This must be a valid PEM-encoded CA bundle.") fs.Float32Var(&s.KubeAPIQPS, "kube-api-qps", s.KubeAPIQPS, "QPS to use while talking with kubernetes apiserver") fs.IntVar(&s.KubeAPIBurst, "kube-api-burst", s.KubeAPIBurst, "Burst to use while talking with kubernetes apiserver") + fs.DurationVar(&s.ControllerStartInterval.Duration, "controller-start-interval", s.ControllerStartInterval.Duration, "Interval between starting controller managers.") leaderelection.BindFlags(&s.LeaderElection, fs) } diff --git a/docs/admin/kube-controller-manager.md b/docs/admin/kube-controller-manager.md index a05c99d121..93a57c6f0e 100644 --- a/docs/admin/kube-controller-manager.md +++ b/docs/admin/kube-controller-manager.md @@ -67,6 +67,7 @@ kube-controller-manager --concurrent-replicaset-syncs=5: The number of replica sets that are allowed to sync concurrently. Larger number = more responsive replica management, but more CPU (and network) load --concurrent-resource-quota-syncs=5: The number of resource quotas that are allowed to sync concurrently. Larger number = more responsive quota management, but more CPU (and network) load --concurrent_rc_syncs=5: The number of replication controllers that are allowed to sync concurrently. Larger number = more responsive replica management, but more CPU (and network) load + --controller-start-interval=0: Interval between starting controller managers. --daemonset-lookup-cache-size=1024: The the size of lookup cache for daemonsets. Larger number = more responsive daemonsets, but more MEM load. --deleting-pods-burst=10: Number of nodes on which pods are bursty deleted in case of node failure. For more details look into RateLimiter. --deleting-pods-qps=0.1: Number of nodes per second on which pods are deleted in case of node failure. @@ -108,7 +109,7 @@ kube-controller-manager --terminated-pod-gc-threshold=12500: Number of terminated pods that can exist before the terminated pod garbage collector starts deleting terminated pods. If <= 0, the terminated pod garbage collector is disabled. ``` -###### Auto generated by spf13/cobra on 29-Feb-2016 +###### Auto generated by spf13/cobra on 5-Apr-2016 diff --git a/hack/verify-flags/known-flags.txt b/hack/verify-flags/known-flags.txt index 990b79cf0b..6903270285 100644 --- a/hack/verify-flags/known-flags.txt +++ b/hack/verify-flags/known-flags.txt @@ -65,6 +65,7 @@ conntrack-tcp-timeout-established contain-pod-resources container-port container-runtime +controller-start-interval cors-allowed-origins cpu-cfs-quota cpu-percent diff --git a/pkg/apis/componentconfig/deep_copy_generated.go b/pkg/apis/componentconfig/deep_copy_generated.go index 35d73940c4..cc500efeca 100644 --- a/pkg/apis/componentconfig/deep_copy_generated.go +++ b/pkg/apis/componentconfig/deep_copy_generated.go @@ -127,6 +127,9 @@ func DeepCopy_componentconfig_KubeControllerManagerConfiguration(in KubeControll if err := DeepCopy_componentconfig_VolumeConfiguration(in.VolumeConfiguration, &out.VolumeConfiguration, c); err != nil { return err } + if err := unversioned.DeepCopy_unversioned_Duration(in.ControllerStartInterval, &out.ControllerStartInterval, c); err != nil { + return err + } return nil } diff --git a/pkg/apis/componentconfig/types.generated.go b/pkg/apis/componentconfig/types.generated.go index 3ca4b476c4..daef3fd6e1 100644 --- a/pkg/apis/componentconfig/types.generated.go +++ b/pkg/apis/componentconfig/types.generated.go @@ -5768,16 +5768,16 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode } else { yysep2 := !z.EncBinary() yy2arr2 := z.EncBasicHandle().StructToArray - var yyq2 [43]bool + var yyq2 [44]bool _, _, _ = yysep2, yyq2, yy2arr2 const yyr2 bool = false - yyq2[41] = x.Kind != "" - yyq2[42] = x.APIVersion != "" + yyq2[42] = x.Kind != "" + yyq2[43] = x.APIVersion != "" var yynn2 int if yyr2 || yy2arr2 { - r.EncodeArrayStart(43) + r.EncodeArrayStart(44) } else { - yynn2 = 41 + yynn2 = 42 for _, b := range yyq2 { if b { yynn2++ @@ -6647,9 +6647,36 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode } if yyr2 || yy2arr2 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - if yyq2[41] { - yym155 := z.EncBinary() - _ = yym155 + yy155 := &x.ControllerStartInterval + yym156 := z.EncBinary() + _ = yym156 + if false { + } else if z.HasExtensions() && z.EncExt(yy155) { + } else if !yym156 && z.IsJSONHandle() { + z.EncJSONMarshal(yy155) + } else { + z.EncFallback(yy155) + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("controllerStartInterval")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yy157 := &x.ControllerStartInterval + yym158 := z.EncBinary() + _ = yym158 + if false { + } else if z.HasExtensions() && z.EncExt(yy157) { + } else if !yym158 && z.IsJSONHandle() { + z.EncJSONMarshal(yy157) + } else { + z.EncFallback(yy157) + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[42] { + yym160 := z.EncBinary() + _ = yym160 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) @@ -6658,12 +6685,12 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode r.EncodeString(codecSelferC_UTF81234, "") } } else { - if yyq2[41] { + if yyq2[42] { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("kind")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym156 := z.EncBinary() - _ = yym156 + yym161 := z.EncBinary() + _ = yym161 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) @@ -6672,9 +6699,9 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode } if yyr2 || yy2arr2 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - if yyq2[42] { - yym158 := z.EncBinary() - _ = yym158 + if yyq2[43] { + yym163 := z.EncBinary() + _ = yym163 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) @@ -6683,12 +6710,12 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode r.EncodeString(codecSelferC_UTF81234, "") } } else { - if yyq2[42] { + if yyq2[43] { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("apiVersion")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym159 := z.EncBinary() - _ = yym159 + yym164 := z.EncBinary() + _ = yym164 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) @@ -7112,6 +7139,21 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromMap(l int, d *co yyv56 := &x.VolumeConfiguration yyv56.CodecDecodeSelf(d) } + case "controllerStartInterval": + if r.TryDecodeAsNil() { + x.ControllerStartInterval = pkg1_unversioned.Duration{} + } else { + yyv57 := &x.ControllerStartInterval + yym58 := z.DecBinary() + _ = yym58 + if false { + } else if z.HasExtensions() && z.DecExt(yyv57) { + } else if !yym58 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv57) + } else { + z.DecFallback(yyv57, false) + } + } case "kind": if r.TryDecodeAsNil() { x.Kind = "" @@ -7135,16 +7177,16 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj59 int - var yyb59 bool - var yyhl59 bool = l >= 0 - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + var yyj61 int + var yyb61 bool + var yyhl61 bool = l >= 0 + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7154,13 +7196,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.Port = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7170,13 +7212,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.Address = string(r.DecodeString()) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7186,13 +7228,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.CloudProvider = string(r.DecodeString()) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7202,13 +7244,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.CloudConfigFile = string(r.DecodeString()) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7218,13 +7260,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConcurrentEndpointSyncs = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7234,13 +7276,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConcurrentRSSyncs = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7250,13 +7292,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConcurrentRCSyncs = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7266,13 +7308,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConcurrentResourceQuotaSyncs = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7282,13 +7324,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConcurrentDeploymentSyncs = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7298,13 +7340,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConcurrentDaemonSetSyncs = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7314,13 +7356,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConcurrentJobSyncs = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7330,13 +7372,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConcurrentNamespaceSyncs = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7346,13 +7388,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.LookupCacheSizeForRC = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7362,13 +7404,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.LookupCacheSizeForRS = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7378,13 +7420,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.LookupCacheSizeForDaemonSet = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7392,32 +7434,7 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * if r.TryDecodeAsNil() { x.ServiceSyncPeriod = pkg1_unversioned.Duration{} } else { - yyv75 := &x.ServiceSyncPeriod - yym76 := z.DecBinary() - _ = yym76 - if false { - } else if z.HasExtensions() && z.DecExt(yyv75) { - } else if !yym76 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv75) - } else { - z.DecFallback(yyv75, false) - } - } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l - } else { - yyb59 = r.CheckBreak() - } - if yyb59 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.NodeSyncPeriod = pkg1_unversioned.Duration{} - } else { - yyv77 := &x.NodeSyncPeriod + yyv77 := &x.ServiceSyncPeriod yym78 := z.DecBinary() _ = yym78 if false { @@ -7428,21 +7445,21 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * z.DecFallback(yyv77, false) } } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } z.DecSendContainerState(codecSelfer_containerArrayElem1234) if r.TryDecodeAsNil() { - x.ResourceQuotaSyncPeriod = pkg1_unversioned.Duration{} + x.NodeSyncPeriod = pkg1_unversioned.Duration{} } else { - yyv79 := &x.ResourceQuotaSyncPeriod + yyv79 := &x.NodeSyncPeriod yym80 := z.DecBinary() _ = yym80 if false { @@ -7453,21 +7470,21 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * z.DecFallback(yyv79, false) } } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } z.DecSendContainerState(codecSelfer_containerArrayElem1234) if r.TryDecodeAsNil() { - x.NamespaceSyncPeriod = pkg1_unversioned.Duration{} + x.ResourceQuotaSyncPeriod = pkg1_unversioned.Duration{} } else { - yyv81 := &x.NamespaceSyncPeriod + yyv81 := &x.ResourceQuotaSyncPeriod yym82 := z.DecBinary() _ = yym82 if false { @@ -7478,21 +7495,21 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * z.DecFallback(yyv81, false) } } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } z.DecSendContainerState(codecSelfer_containerArrayElem1234) if r.TryDecodeAsNil() { - x.PVClaimBinderSyncPeriod = pkg1_unversioned.Duration{} + x.NamespaceSyncPeriod = pkg1_unversioned.Duration{} } else { - yyv83 := &x.PVClaimBinderSyncPeriod + yyv83 := &x.NamespaceSyncPeriod yym84 := z.DecBinary() _ = yym84 if false { @@ -7503,21 +7520,21 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * z.DecFallback(yyv83, false) } } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } z.DecSendContainerState(codecSelfer_containerArrayElem1234) if r.TryDecodeAsNil() { - x.MinResyncPeriod = pkg1_unversioned.Duration{} + x.PVClaimBinderSyncPeriod = pkg1_unversioned.Duration{} } else { - yyv85 := &x.MinResyncPeriod + yyv85 := &x.PVClaimBinderSyncPeriod yym86 := z.DecBinary() _ = yym86 if false { @@ -7528,13 +7545,38 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * z.DecFallback(yyv85, false) } } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.MinResyncPeriod = pkg1_unversioned.Duration{} + } else { + yyv87 := &x.MinResyncPeriod + yym88 := z.DecBinary() + _ = yym88 + if false { + } else if z.HasExtensions() && z.DecExt(yyv87) { + } else if !yym88 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv87) + } else { + z.DecFallback(yyv87, false) + } + } + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l + } else { + yyb61 = r.CheckBreak() + } + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7544,13 +7586,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.TerminatedPodGCThreshold = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7558,32 +7600,7 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * if r.TryDecodeAsNil() { x.HorizontalPodAutoscalerSyncPeriod = pkg1_unversioned.Duration{} } else { - yyv88 := &x.HorizontalPodAutoscalerSyncPeriod - yym89 := z.DecBinary() - _ = yym89 - if false { - } else if z.HasExtensions() && z.DecExt(yyv88) { - } else if !yym89 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv88) - } else { - z.DecFallback(yyv88, false) - } - } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l - } else { - yyb59 = r.CheckBreak() - } - if yyb59 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.DeploymentControllerSyncPeriod = pkg1_unversioned.Duration{} - } else { - yyv90 := &x.DeploymentControllerSyncPeriod + yyv90 := &x.HorizontalPodAutoscalerSyncPeriod yym91 := z.DecBinary() _ = yym91 if false { @@ -7594,21 +7611,21 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * z.DecFallback(yyv90, false) } } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } z.DecSendContainerState(codecSelfer_containerArrayElem1234) if r.TryDecodeAsNil() { - x.PodEvictionTimeout = pkg1_unversioned.Duration{} + x.DeploymentControllerSyncPeriod = pkg1_unversioned.Duration{} } else { - yyv92 := &x.PodEvictionTimeout + yyv92 := &x.DeploymentControllerSyncPeriod yym93 := z.DecBinary() _ = yym93 if false { @@ -7619,13 +7636,38 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * z.DecFallback(yyv92, false) } } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.PodEvictionTimeout = pkg1_unversioned.Duration{} + } else { + yyv94 := &x.PodEvictionTimeout + yym95 := z.DecBinary() + _ = yym95 + if false { + } else if z.HasExtensions() && z.DecExt(yyv94) { + } else if !yym95 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv94) + } else { + z.DecFallback(yyv94, false) + } + } + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l + } else { + yyb61 = r.CheckBreak() + } + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7635,13 +7677,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.DeletingPodsQps = float32(r.DecodeFloat(true)) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7651,13 +7693,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.DeletingPodsBurst = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7665,24 +7707,24 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * if r.TryDecodeAsNil() { x.NodeMonitorGracePeriod = pkg1_unversioned.Duration{} } else { - yyv96 := &x.NodeMonitorGracePeriod - yym97 := z.DecBinary() - _ = yym97 + yyv98 := &x.NodeMonitorGracePeriod + yym99 := z.DecBinary() + _ = yym99 if false { - } else if z.HasExtensions() && z.DecExt(yyv96) { - } else if !yym97 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv96) + } else if z.HasExtensions() && z.DecExt(yyv98) { + } else if !yym99 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv98) } else { - z.DecFallback(yyv96, false) + z.DecFallback(yyv98, false) } } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7692,13 +7734,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.RegisterRetryCount = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7706,32 +7748,7 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * if r.TryDecodeAsNil() { x.NodeStartupGracePeriod = pkg1_unversioned.Duration{} } else { - yyv99 := &x.NodeStartupGracePeriod - yym100 := z.DecBinary() - _ = yym100 - if false { - } else if z.HasExtensions() && z.DecExt(yyv99) { - } else if !yym100 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv99) - } else { - z.DecFallback(yyv99, false) - } - } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l - } else { - yyb59 = r.CheckBreak() - } - if yyb59 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.NodeMonitorPeriod = pkg1_unversioned.Duration{} - } else { - yyv101 := &x.NodeMonitorPeriod + yyv101 := &x.NodeStartupGracePeriod yym102 := z.DecBinary() _ = yym102 if false { @@ -7742,13 +7759,38 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * z.DecFallback(yyv101, false) } } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.NodeMonitorPeriod = pkg1_unversioned.Duration{} + } else { + yyv103 := &x.NodeMonitorPeriod + yym104 := z.DecBinary() + _ = yym104 + if false { + } else if z.HasExtensions() && z.DecExt(yyv103) { + } else if !yym104 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv103) + } else { + z.DecFallback(yyv103, false) + } + } + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l + } else { + yyb61 = r.CheckBreak() + } + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7758,13 +7800,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ServiceAccountKeyFile = string(r.DecodeString()) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7774,13 +7816,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.EnableProfiling = bool(r.DecodeBool()) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7790,13 +7832,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ClusterName = string(r.DecodeString()) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7806,13 +7848,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ClusterCIDR = string(r.DecodeString()) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7822,13 +7864,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.AllocateNodeCIDRs = bool(r.DecodeBool()) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7838,13 +7880,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.RootCAFile = string(r.DecodeString()) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7854,13 +7896,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.KubeAPIQPS = float32(r.DecodeFloat(true)) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7870,13 +7912,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.KubeAPIBurst = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7884,16 +7926,16 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * if r.TryDecodeAsNil() { x.LeaderElection = LeaderElectionConfiguration{} } else { - yyv111 := &x.LeaderElection - yyv111.CodecDecodeSelf(d) + yyv113 := &x.LeaderElection + yyv113.CodecDecodeSelf(d) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7901,16 +7943,41 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * if r.TryDecodeAsNil() { x.VolumeConfiguration = VolumeConfiguration{} } else { - yyv112 := &x.VolumeConfiguration - yyv112.CodecDecodeSelf(d) + yyv114 := &x.VolumeConfiguration + yyv114.CodecDecodeSelf(d) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.ControllerStartInterval = pkg1_unversioned.Duration{} + } else { + yyv115 := &x.ControllerStartInterval + yym116 := z.DecBinary() + _ = yym116 + if false { + } else if z.HasExtensions() && z.DecExt(yyv115) { + } else if !yym116 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv115) + } else { + z.DecFallback(yyv115, false) + } + } + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l + } else { + yyb61 = r.CheckBreak() + } + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7920,13 +7987,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.Kind = string(r.DecodeString()) } - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7937,17 +8004,17 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * x.APIVersion = string(r.DecodeString()) } for { - yyj59++ - if yyhl59 { - yyb59 = yyj59 > l + yyj61++ + if yyhl61 { + yyb61 = yyj61 > l } else { - yyb59 = r.CheckBreak() + yyb61 = r.CheckBreak() } - if yyb59 { + if yyb61 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj59-1, "") + z.DecStructFieldNotFound(yyj61-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } diff --git a/pkg/apis/componentconfig/types.go b/pkg/apis/componentconfig/types.go index 9fb0d6577c..bc89309410 100644 --- a/pkg/apis/componentconfig/types.go +++ b/pkg/apis/componentconfig/types.go @@ -510,6 +510,8 @@ type KubeControllerManagerConfiguration struct { LeaderElection LeaderElectionConfiguration `json:"leaderElection"` // vloumeConfiguration holds configuration for volume related features. VolumeConfiguration VolumeConfiguration `json:"volumeConfiguration"` + // How long to wait between starting controller managers + ControllerStartInterval unversioned.Duration `json:"controllerStartInterval"` } // VolumeConfiguration contains *all* enumerated flags meant to configure all volume