mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 11:21:47 +00:00
add flag concurrent-statefulset-syncs to kube-controller-manager (#79169)
* add flag `concurrent-statefulset-syncs` to set number of concurrent workers for statefulset controller * change default value of ConcurrentStatefulSetSyncs from 1 to 5 * 1. fix doc comment of statefulset config types.go 2. add missing deps k8s.io/kubernetes/pkg/controller/statefulset/config * add missing dep k8s.io/kubernetes/pkg/controller/statefulset/config/v1alpha1 * updated bazel BUILD files * update kube-controller-manager options testcase * fix codegen * fix golint error * fix testcase
This commit is contained in:
parent
c5787856b9
commit
d29f194474
@ -599,6 +599,7 @@ API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,K
|
||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,ResourceQuotaController
|
||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,SAController
|
||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,ServiceController
|
||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,StatefulSetController
|
||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,TTLAfterFinishedController
|
||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,NamespaceControllerConfiguration,ConcurrentNamespaceSyncs
|
||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,NamespaceControllerConfiguration,NamespaceSyncPeriod
|
||||
@ -630,6 +631,7 @@ API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,S
|
||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,SAControllerConfiguration,RootCAFile
|
||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,SAControllerConfiguration,ServiceAccountKeyFile
|
||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,ServiceControllerConfiguration,ConcurrentServiceSyncs
|
||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,StatefulSetControllerConfiguration,ConcurrentStatefulSetSyncs
|
||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,TTLAfterFinishedControllerConfiguration,ConcurrentTTLSyncs
|
||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,VolumeConfiguration,EnableDynamicProvisioning
|
||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,VolumeConfiguration,EnableHostPathProvisioning
|
||||
|
@ -62,7 +62,7 @@ func startStatefulSetController(ctx ControllerContext) (http.Handler, bool, erro
|
||||
ctx.InformerFactory.Core().V1().PersistentVolumeClaims(),
|
||||
ctx.InformerFactory.Apps().V1().ControllerRevisions(),
|
||||
ctx.ClientBuilder.ClientOrDie("statefulset-controller"),
|
||||
).Run(1, ctx.Stop)
|
||||
).Run(int(ctx.ComponentConfig.StatefulSetController.ConcurrentStatefulSetSyncs), ctx.Stop)
|
||||
return nil, true, nil
|
||||
}
|
||||
|
||||
|
@ -28,6 +28,7 @@ go_library(
|
||||
"replicationcontroller.go",
|
||||
"resourcequotacontroller.go",
|
||||
"serviceaccountcontroller.go",
|
||||
"statefulsetcontroller.go",
|
||||
"ttlafterfinishedcontroller.go",
|
||||
],
|
||||
importpath = "k8s.io/kubernetes/cmd/kube-controller-manager/app/options",
|
||||
@ -52,6 +53,7 @@ go_library(
|
||||
"//pkg/controller/replication/config:go_default_library",
|
||||
"//pkg/controller/resourcequota/config:go_default_library",
|
||||
"//pkg/controller/serviceaccount/config:go_default_library",
|
||||
"//pkg/controller/statefulset/config:go_default_library",
|
||||
"//pkg/controller/ttlafterfinished/config:go_default_library",
|
||||
"//pkg/controller/volume/attachdetach/config:go_default_library",
|
||||
"//pkg/controller/volume/persistentvolume/config:go_default_library",
|
||||
@ -110,6 +112,7 @@ go_test(
|
||||
"//pkg/controller/resourcequota/config:go_default_library",
|
||||
"//pkg/controller/service/config:go_default_library",
|
||||
"//pkg/controller/serviceaccount/config:go_default_library",
|
||||
"//pkg/controller/statefulset/config:go_default_library",
|
||||
"//pkg/controller/ttlafterfinished/config:go_default_library",
|
||||
"//pkg/controller/volume/attachdetach/config:go_default_library",
|
||||
"//pkg/controller/volume/persistentvolume/config:go_default_library",
|
||||
|
@ -63,6 +63,7 @@ type KubeControllerManagerOptions struct {
|
||||
CSRSigningController *CSRSigningControllerOptions
|
||||
DaemonSetController *DaemonSetControllerOptions
|
||||
DeploymentController *DeploymentControllerOptions
|
||||
StatefulSetController *StatefulSetControllerOptions
|
||||
DeprecatedFlags *DeprecatedControllerOptions
|
||||
EndpointController *EndpointControllerOptions
|
||||
GarbageCollectorController *GarbageCollectorControllerOptions
|
||||
@ -114,6 +115,9 @@ func NewKubeControllerManagerOptions() (*KubeControllerManagerOptions, error) {
|
||||
DeploymentController: &DeploymentControllerOptions{
|
||||
&componentConfig.DeploymentController,
|
||||
},
|
||||
StatefulSetController: &StatefulSetControllerOptions{
|
||||
&componentConfig.StatefulSetController,
|
||||
},
|
||||
DeprecatedFlags: &DeprecatedControllerOptions{
|
||||
&componentConfig.DeprecatedController,
|
||||
},
|
||||
@ -216,6 +220,7 @@ func (s *KubeControllerManagerOptions) Flags(allControllers []string, disabledBy
|
||||
s.AttachDetachController.AddFlags(fss.FlagSet("attachdetach controller"))
|
||||
s.CSRSigningController.AddFlags(fss.FlagSet("csrsigning controller"))
|
||||
s.DeploymentController.AddFlags(fss.FlagSet("deployment controller"))
|
||||
s.StatefulSetController.AddFlags(fss.FlagSet("statefulset controller"))
|
||||
s.DaemonSetController.AddFlags(fss.FlagSet("daemonset controller"))
|
||||
s.DeprecatedFlags.AddFlags(fss.FlagSet("deprecated"))
|
||||
s.EndpointController.AddFlags(fss.FlagSet("endpoint controller"))
|
||||
@ -261,6 +266,9 @@ func (s *KubeControllerManagerOptions) ApplyTo(c *kubecontrollerconfig.Config) e
|
||||
if err := s.DeploymentController.ApplyTo(&c.ComponentConfig.DeploymentController); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.StatefulSetController.ApplyTo(&c.ComponentConfig.StatefulSetController); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.DeprecatedFlags.ApplyTo(&c.ComponentConfig.DeprecatedController); err != nil {
|
||||
return err
|
||||
}
|
||||
@ -342,6 +350,7 @@ func (s *KubeControllerManagerOptions) Validate(allControllers []string, disable
|
||||
errs = append(errs, s.CSRSigningController.Validate()...)
|
||||
errs = append(errs, s.DaemonSetController.Validate()...)
|
||||
errs = append(errs, s.DeploymentController.Validate()...)
|
||||
errs = append(errs, s.StatefulSetController.Validate()...)
|
||||
errs = append(errs, s.DeprecatedFlags.Validate()...)
|
||||
errs = append(errs, s.EndpointController.Validate()...)
|
||||
errs = append(errs, s.GarbageCollectorController.Validate()...)
|
||||
|
@ -47,6 +47,7 @@ import (
|
||||
resourcequotaconfig "k8s.io/kubernetes/pkg/controller/resourcequota/config"
|
||||
serviceconfig "k8s.io/kubernetes/pkg/controller/service/config"
|
||||
serviceaccountconfig "k8s.io/kubernetes/pkg/controller/serviceaccount/config"
|
||||
statefulsetconfig "k8s.io/kubernetes/pkg/controller/statefulset/config"
|
||||
ttlafterfinishedconfig "k8s.io/kubernetes/pkg/controller/ttlafterfinished/config"
|
||||
attachdetachconfig "k8s.io/kubernetes/pkg/controller/volume/attachdetach/config"
|
||||
persistentvolumeconfig "k8s.io/kubernetes/pkg/controller/volume/persistentvolume/config"
|
||||
@ -71,6 +72,7 @@ func TestAddFlags(t *testing.T) {
|
||||
"--cluster-signing-cert-file=/cluster-signing-cert",
|
||||
"--cluster-signing-key-file=/cluster-signing-key",
|
||||
"--concurrent-deployment-syncs=10",
|
||||
"--concurrent-statefulset-syncs=15",
|
||||
"--concurrent-endpoint-syncs=10",
|
||||
"--concurrent-gc-syncs=30",
|
||||
"--concurrent-namespace-syncs=20",
|
||||
@ -216,6 +218,11 @@ func TestAddFlags(t *testing.T) {
|
||||
DeploymentControllerSyncPeriod: metav1.Duration{Duration: 45 * time.Second},
|
||||
},
|
||||
},
|
||||
StatefulSetController: &StatefulSetControllerOptions{
|
||||
&statefulsetconfig.StatefulSetControllerConfiguration{
|
||||
ConcurrentStatefulSetSyncs: 15,
|
||||
},
|
||||
},
|
||||
DeprecatedFlags: &DeprecatedControllerOptions{
|
||||
&kubectrlmgrconfig.DeprecatedControllerConfiguration{
|
||||
DeletingPodsQPS: 0.1,
|
||||
|
@ -0,0 +1,63 @@
|
||||
/*
|
||||
Copyright 2019 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package options
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/spf13/pflag"
|
||||
|
||||
statefulsetconfig "k8s.io/kubernetes/pkg/controller/statefulset/config"
|
||||
)
|
||||
|
||||
// StatefulSetControllerOptions holds the StatefulSetController options.
|
||||
type StatefulSetControllerOptions struct {
|
||||
*statefulsetconfig.StatefulSetControllerConfiguration
|
||||
}
|
||||
|
||||
// AddFlags adds flags related to StatefulSetController for controller manager to the specified FlagSet.
|
||||
func (o *StatefulSetControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
||||
if o == nil {
|
||||
return
|
||||
}
|
||||
|
||||
fs.Int32Var(&o.ConcurrentStatefulSetSyncs, "concurrent-statefulset-syncs", o.ConcurrentStatefulSetSyncs, "The number of statefulset objects that are allowed to sync concurrently. Larger number = more responsive statefulsets, but more CPU (and network) load")
|
||||
}
|
||||
|
||||
// ApplyTo fills up StatefulSetController config with options.
|
||||
func (o *StatefulSetControllerOptions) ApplyTo(cfg *statefulsetconfig.StatefulSetControllerConfiguration) error {
|
||||
if o == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
cfg.ConcurrentStatefulSetSyncs = o.ConcurrentStatefulSetSyncs
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Validate checks validation of StatefulSetControllerOptions.
|
||||
func (o *StatefulSetControllerOptions) Validate() []error {
|
||||
if o == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
errs := []error{}
|
||||
if o.ConcurrentStatefulSetSyncs < 1 {
|
||||
errs = append(errs, fmt.Errorf("concurrent-statefulset-syncs must be greater than 0, but got %d", o.ConcurrentStatefulSetSyncs))
|
||||
}
|
||||
return errs
|
||||
}
|
@ -90,6 +90,7 @@ pkg/controller/service
|
||||
pkg/controller/service/config/v1alpha1
|
||||
pkg/controller/serviceaccount/config/v1alpha1
|
||||
pkg/controller/statefulset
|
||||
pkg/controller/statefulset/config/v1alpha1
|
||||
pkg/controller/ttl
|
||||
pkg/controller/ttlafterfinished/config/v1alpha1
|
||||
pkg/controller/volume/attachdetach
|
||||
|
@ -27,6 +27,7 @@ go_library(
|
||||
"//pkg/controller/resourcequota/config:go_default_library",
|
||||
"//pkg/controller/service/config:go_default_library",
|
||||
"//pkg/controller/serviceaccount/config:go_default_library",
|
||||
"//pkg/controller/statefulset/config:go_default_library",
|
||||
"//pkg/controller/ttlafterfinished/config:go_default_library",
|
||||
"//pkg/controller/volume/attachdetach/config:go_default_library",
|
||||
"//pkg/controller/volume/persistentvolume/config:go_default_library",
|
||||
|
@ -35,6 +35,7 @@ import (
|
||||
resourcequotaconfig "k8s.io/kubernetes/pkg/controller/resourcequota/config"
|
||||
serviceconfig "k8s.io/kubernetes/pkg/controller/service/config"
|
||||
serviceaccountconfig "k8s.io/kubernetes/pkg/controller/serviceaccount/config"
|
||||
statefulsetconfig "k8s.io/kubernetes/pkg/controller/statefulset/config"
|
||||
ttlafterfinishedconfig "k8s.io/kubernetes/pkg/controller/ttlafterfinished/config"
|
||||
attachdetachconfig "k8s.io/kubernetes/pkg/controller/volume/attachdetach/config"
|
||||
persistentvolumeconfig "k8s.io/kubernetes/pkg/controller/volume/persistentvolume/config"
|
||||
@ -64,6 +65,9 @@ type KubeControllerManagerConfiguration struct {
|
||||
// DeploymentControllerConfiguration holds configuration for
|
||||
// DeploymentController related features.
|
||||
DeploymentController deploymentconfig.DeploymentControllerConfiguration
|
||||
// StatefulSetControllerConfiguration holds configuration for
|
||||
// StatefulSetController related features.
|
||||
StatefulSetController statefulsetconfig.StatefulSetControllerConfiguration
|
||||
// DeprecatedControllerConfiguration holds configuration for some deprecated
|
||||
// features.
|
||||
DeprecatedController DeprecatedControllerConfiguration
|
||||
|
@ -31,6 +31,7 @@ go_library(
|
||||
"//pkg/controller/resourcequota/config/v1alpha1:go_default_library",
|
||||
"//pkg/controller/service/config/v1alpha1:go_default_library",
|
||||
"//pkg/controller/serviceaccount/config/v1alpha1:go_default_library",
|
||||
"//pkg/controller/statefulset/config/v1alpha1:go_default_library",
|
||||
"//pkg/controller/ttlafterfinished/config/v1alpha1:go_default_library",
|
||||
"//pkg/controller/volume/attachdetach/config/v1alpha1:go_default_library",
|
||||
"//pkg/controller/volume/persistentvolume/config/v1alpha1:go_default_library",
|
||||
|
@ -39,6 +39,7 @@ import (
|
||||
resourcequotaconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/resourcequota/config/v1alpha1"
|
||||
serviceconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/service/config/v1alpha1"
|
||||
serviceaccountconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/serviceaccount/config/v1alpha1"
|
||||
statefulsetconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/statefulset/config/v1alpha1"
|
||||
ttlafterfinishedconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/ttlafterfinished/config/v1alpha1"
|
||||
attachdetachconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/volume/attachdetach/config/v1alpha1"
|
||||
persistentvolumeconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/volume/persistentvolume/config/v1alpha1"
|
||||
@ -73,6 +74,8 @@ func SetDefaults_KubeControllerManagerConfiguration(obj *kubectrlmgrconfigv1alph
|
||||
daemonconfigv1alpha1.RecommendedDefaultDaemonSetControllerConfiguration(&obj.DaemonSetController)
|
||||
// Use the default RecommendedDefaultDeploymentControllerConfiguration options
|
||||
deploymentconfigv1alpha1.RecommendedDefaultDeploymentControllerConfiguration(&obj.DeploymentController)
|
||||
// Use the default RecommendedDefaultStatefulSetControllerConfiguration options
|
||||
statefulsetconfigv1alpha1.RecommendedDefaultStatefulSetControllerConfiguration(&obj.StatefulSetController)
|
||||
// Use the default RecommendedDefaultEndpointControllerConfiguration options
|
||||
endpointconfigv1alpha1.RecommendedDefaultEndpointControllerConfiguration(&obj.EndpointController)
|
||||
// Use the default RecommendedDefaultGenericControllerManagerConfiguration options
|
||||
|
@ -33,6 +33,7 @@ limitations under the License.
|
||||
// +k8s:conversion-gen=k8s.io/kubernetes/pkg/controller/resourcequota/config/v1alpha1
|
||||
// +k8s:conversion-gen=k8s.io/kubernetes/pkg/controller/service/config/v1alpha1
|
||||
// +k8s:conversion-gen=k8s.io/kubernetes/pkg/controller/serviceaccount/config/v1alpha1
|
||||
// +k8s:conversion-gen=k8s.io/kubernetes/pkg/controller/statefulset/config/v1alpha1
|
||||
// +k8s:conversion-gen=k8s.io/kubernetes/pkg/controller/ttlafterfinished/config/v1alpha1
|
||||
// +k8s:conversion-gen=k8s.io/kubernetes/pkg/controller/volume/attachdetach/config/v1alpha1
|
||||
// +k8s:conversion-gen=k8s.io/kubernetes/pkg/controller/volume/persistentvolume/config/v1alpha1
|
||||
|
@ -45,6 +45,7 @@ import (
|
||||
resourcequotaconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/resourcequota/config/v1alpha1"
|
||||
serviceconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/service/config/v1alpha1"
|
||||
serviceaccountconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/serviceaccount/config/v1alpha1"
|
||||
statefulsetconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/statefulset/config/v1alpha1"
|
||||
ttlafterfinishedconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/ttlafterfinished/config/v1alpha1"
|
||||
attachdetachconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/volume/attachdetach/config/v1alpha1"
|
||||
persistentvolumeconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/volume/persistentvolume/config/v1alpha1"
|
||||
@ -303,6 +304,9 @@ func autoConvert_v1alpha1_KubeControllerManagerConfiguration_To_config_KubeContr
|
||||
if err := deploymentconfigv1alpha1.Convert_v1alpha1_DeploymentControllerConfiguration_To_config_DeploymentControllerConfiguration(&in.DeploymentController, &out.DeploymentController, s); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := statefulsetconfigv1alpha1.Convert_v1alpha1_StatefulSetControllerConfiguration_To_config_StatefulSetControllerConfiguration(&in.StatefulSetController, &out.StatefulSetController, s); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := Convert_v1alpha1_DeprecatedControllerConfiguration_To_config_DeprecatedControllerConfiguration(&in.DeprecatedController, &out.DeprecatedController, s); err != nil {
|
||||
return err
|
||||
}
|
||||
@ -378,6 +382,9 @@ func autoConvert_config_KubeControllerManagerConfiguration_To_v1alpha1_KubeContr
|
||||
if err := deploymentconfigv1alpha1.Convert_config_DeploymentControllerConfiguration_To_v1alpha1_DeploymentControllerConfiguration(&in.DeploymentController, &out.DeploymentController, s); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := statefulsetconfigv1alpha1.Convert_config_StatefulSetControllerConfiguration_To_v1alpha1_StatefulSetControllerConfiguration(&in.StatefulSetController, &out.StatefulSetController, s); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := Convert_config_DeprecatedControllerConfiguration_To_v1alpha1_DeprecatedControllerConfiguration(&in.DeprecatedController, &out.DeprecatedController, s); err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -112,6 +112,7 @@ func (in *KubeControllerManagerConfiguration) DeepCopyInto(out *KubeControllerMa
|
||||
out.CSRSigningController = in.CSRSigningController
|
||||
out.DaemonSetController = in.DaemonSetController
|
||||
out.DeploymentController = in.DeploymentController
|
||||
out.StatefulSetController = in.StatefulSetController
|
||||
out.DeprecatedController = in.DeprecatedController
|
||||
out.EndpointController = in.EndpointController
|
||||
in.GarbageCollectorController.DeepCopyInto(&out.GarbageCollectorController)
|
||||
|
@ -92,6 +92,9 @@ filegroup(
|
||||
|
||||
filegroup(
|
||||
name = "all-srcs",
|
||||
srcs = [":package-srcs"],
|
||||
srcs = [
|
||||
":package-srcs",
|
||||
"//pkg/controller/statefulset/config:all-srcs",
|
||||
],
|
||||
tags = ["automanaged"],
|
||||
)
|
||||
|
29
pkg/controller/statefulset/config/BUILD
Normal file
29
pkg/controller/statefulset/config/BUILD
Normal file
@ -0,0 +1,29 @@
|
||||
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = [
|
||||
"doc.go",
|
||||
"types.go",
|
||||
"zz_generated.deepcopy.go",
|
||||
],
|
||||
importpath = "k8s.io/kubernetes/pkg/controller/statefulset/config",
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "package-srcs",
|
||||
srcs = glob(["**"]),
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "all-srcs",
|
||||
srcs = [
|
||||
":package-srcs",
|
||||
"//pkg/controller/statefulset/config/v1alpha1:all-srcs",
|
||||
],
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
14
pkg/controller/statefulset/config/OWNERS
Normal file
14
pkg/controller/statefulset/config/OWNERS
Normal file
@ -0,0 +1,14 @@
|
||||
approvers:
|
||||
- api-approvers
|
||||
- deads2k
|
||||
- luxas
|
||||
- mtaufen
|
||||
- sttts
|
||||
- stewart-yu
|
||||
reviewers:
|
||||
- api-reviewers
|
||||
- deads2k
|
||||
- luxas
|
||||
- mtaufen
|
||||
- sttts
|
||||
- stewart-yu
|
19
pkg/controller/statefulset/config/doc.go
Normal file
19
pkg/controller/statefulset/config/doc.go
Normal file
@ -0,0 +1,19 @@
|
||||
/*
|
||||
Copyright 2019 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// +k8s:deepcopy-gen=package
|
||||
|
||||
package config // import "k8s.io/kubernetes/pkg/controller/statefulset/config"
|
25
pkg/controller/statefulset/config/types.go
Normal file
25
pkg/controller/statefulset/config/types.go
Normal file
@ -0,0 +1,25 @@
|
||||
/*
|
||||
Copyright 2019 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package config
|
||||
|
||||
// StatefulSetControllerConfiguration contains elements describing StatefulSetController.
|
||||
type StatefulSetControllerConfiguration struct {
|
||||
// concurrentStatefulSetSyncs is the number of statefulset objects that are
|
||||
// allowed to sync concurrently. Larger number = more responsive statefulsets,
|
||||
// but more CPU (and network) load.
|
||||
ConcurrentStatefulSetSyncs int32
|
||||
}
|
36
pkg/controller/statefulset/config/v1alpha1/BUILD
Normal file
36
pkg/controller/statefulset/config/v1alpha1/BUILD
Normal file
@ -0,0 +1,36 @@
|
||||
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = [
|
||||
"conversion.go",
|
||||
"defaults.go",
|
||||
"doc.go",
|
||||
"register.go",
|
||||
"zz_generated.conversion.go",
|
||||
"zz_generated.deepcopy.go",
|
||||
],
|
||||
importpath = "k8s.io/kubernetes/pkg/controller/statefulset/config/v1alpha1",
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//pkg/controller/statefulset/config:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/conversion:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||
"//staging/src/k8s.io/kube-controller-manager/config/v1alpha1:go_default_library",
|
||||
],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "package-srcs",
|
||||
srcs = glob(["**"]),
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "all-srcs",
|
||||
srcs = [":package-srcs"],
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
40
pkg/controller/statefulset/config/v1alpha1/conversion.go
Normal file
40
pkg/controller/statefulset/config/v1alpha1/conversion.go
Normal file
@ -0,0 +1,40 @@
|
||||
/*
|
||||
Copyright 2019 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package v1alpha1
|
||||
|
||||
import (
|
||||
"k8s.io/apimachinery/pkg/conversion"
|
||||
"k8s.io/kube-controller-manager/config/v1alpha1"
|
||||
statefulsetconfig "k8s.io/kubernetes/pkg/controller/statefulset/config"
|
||||
)
|
||||
|
||||
// Important! The public back-and-forth conversion functions for the types in this package
|
||||
// with StatefulsetControllerConfiguration types need to be manually exposed like this in order for
|
||||
// other packages that reference this package to be able to call these conversion functions
|
||||
// in an autogenerated manner.
|
||||
// TODO: Fix the bug in conversion-gen so it automatically discovers these Convert_* functions
|
||||
// in autogenerated code as well.
|
||||
|
||||
// Convert_v1alpha1_StatefulSetControllerConfiguration_To_config_StatefulSetControllerConfiguration is an autogenerated conversion function.
|
||||
func Convert_v1alpha1_StatefulSetControllerConfiguration_To_config_StatefulSetControllerConfiguration(in *v1alpha1.StatefulSetControllerConfiguration, out *statefulsetconfig.StatefulSetControllerConfiguration, s conversion.Scope) error {
|
||||
return autoConvert_v1alpha1_StatefulSetControllerConfiguration_To_config_StatefulSetControllerConfiguration(in, out, s)
|
||||
}
|
||||
|
||||
// Convert_config_StatefulSetControllerConfiguration_To_v1alpha1_StatefulSetControllerConfiguration is an autogenerated conversion function.
|
||||
func Convert_config_StatefulSetControllerConfiguration_To_v1alpha1_StatefulSetControllerConfiguration(in *statefulsetconfig.StatefulSetControllerConfiguration, out *v1alpha1.StatefulSetControllerConfiguration, s conversion.Scope) error {
|
||||
return autoConvert_config_StatefulSetControllerConfiguration_To_v1alpha1_StatefulSetControllerConfiguration(in, out, s)
|
||||
}
|
36
pkg/controller/statefulset/config/v1alpha1/defaults.go
Normal file
36
pkg/controller/statefulset/config/v1alpha1/defaults.go
Normal file
@ -0,0 +1,36 @@
|
||||
/*
|
||||
Copyright 2019 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package v1alpha1
|
||||
|
||||
import (
|
||||
kubectrlmgrconfigv1alpha1 "k8s.io/kube-controller-manager/config/v1alpha1"
|
||||
)
|
||||
|
||||
// RecommendedDefaultStatefulSetControllerConfiguration defaults a pointer to a
|
||||
// StatefulSetControllerConfiguration struct. This will set the recommended default
|
||||
// values, but they may be subject to change between API versions. This function
|
||||
// is intentionally not registered in the scheme as a "normal" `SetDefaults_Foo`
|
||||
// function to allow consumers of this type to set whatever defaults for their
|
||||
// embedded configs. Forcing consumers to use these defaults would be problematic
|
||||
// as defaulting in the scheme is done as part of the conversion, and there would
|
||||
// be no easy way to opt-out. Instead, if you want to use this defaulting method
|
||||
// run it in your wrapper struct of this type in its `SetDefaults_` method.
|
||||
func RecommendedDefaultStatefulSetControllerConfiguration(obj *kubectrlmgrconfigv1alpha1.StatefulSetControllerConfiguration) {
|
||||
if obj.ConcurrentStatefulSetSyncs == 0 {
|
||||
obj.ConcurrentStatefulSetSyncs = 5
|
||||
}
|
||||
}
|
21
pkg/controller/statefulset/config/v1alpha1/doc.go
Normal file
21
pkg/controller/statefulset/config/v1alpha1/doc.go
Normal file
@ -0,0 +1,21 @@
|
||||
/*
|
||||
Copyright 2019 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// +k8s:deepcopy-gen=package
|
||||
// +k8s:conversion-gen=k8s.io/kubernetes/pkg/controller/statefulset/config
|
||||
// +k8s:conversion-gen-external-types=k8s.io/kube-controller-manager/config/v1alpha1
|
||||
|
||||
package v1alpha1 // import "k8s.io/kubernetes/pkg/controller/statefulset/config/v1alpha1"
|
31
pkg/controller/statefulset/config/v1alpha1/register.go
Normal file
31
pkg/controller/statefulset/config/v1alpha1/register.go
Normal file
@ -0,0 +1,31 @@
|
||||
/*
|
||||
Copyright 2019 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package v1alpha1
|
||||
|
||||
import (
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
)
|
||||
|
||||
var (
|
||||
// SchemeBuilder is the scheme builder with scheme init functions to run for this API package
|
||||
SchemeBuilder runtime.SchemeBuilder
|
||||
// localSchemeBuilder extends the SchemeBuilder instance with the external types. In this package,
|
||||
// defaulting and conversion init funcs are registered as well.
|
||||
localSchemeBuilder = &SchemeBuilder
|
||||
// AddToScheme is a global function that registers this API group & version to a scheme
|
||||
AddToScheme = localSchemeBuilder.AddToScheme
|
||||
)
|
101
pkg/controller/statefulset/config/v1alpha1/zz_generated.conversion.go
generated
Normal file
101
pkg/controller/statefulset/config/v1alpha1/zz_generated.conversion.go
generated
Normal file
@ -0,0 +1,101 @@
|
||||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by conversion-gen. DO NOT EDIT.
|
||||
|
||||
package v1alpha1
|
||||
|
||||
import (
|
||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
conversion "k8s.io/apimachinery/pkg/conversion"
|
||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||
v1alpha1 "k8s.io/kube-controller-manager/config/v1alpha1"
|
||||
config "k8s.io/kubernetes/pkg/controller/statefulset/config"
|
||||
)
|
||||
|
||||
func init() {
|
||||
localSchemeBuilder.Register(RegisterConversions)
|
||||
}
|
||||
|
||||
// RegisterConversions adds conversion functions to the given scheme.
|
||||
// Public to allow building arbitrary schemes.
|
||||
func RegisterConversions(s *runtime.Scheme) error {
|
||||
if err := s.AddGeneratedConversionFunc((*v1alpha1.GroupResource)(nil), (*v1.GroupResource)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_v1alpha1_GroupResource_To_v1_GroupResource(a.(*v1alpha1.GroupResource), b.(*v1.GroupResource), scope)
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddGeneratedConversionFunc((*v1.GroupResource)(nil), (*v1alpha1.GroupResource)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_v1_GroupResource_To_v1alpha1_GroupResource(a.(*v1.GroupResource), b.(*v1alpha1.GroupResource), scope)
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddGeneratedConversionFunc((*v1alpha1.StatefulSetControllerConfiguration)(nil), (*config.StatefulSetControllerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_v1alpha1_StatefulSetControllerConfiguration_To_config_StatefulSetControllerConfiguration(a.(*v1alpha1.StatefulSetControllerConfiguration), b.(*config.StatefulSetControllerConfiguration), scope)
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddGeneratedConversionFunc((*config.StatefulSetControllerConfiguration)(nil), (*v1alpha1.StatefulSetControllerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_config_StatefulSetControllerConfiguration_To_v1alpha1_StatefulSetControllerConfiguration(a.(*config.StatefulSetControllerConfiguration), b.(*v1alpha1.StatefulSetControllerConfiguration), scope)
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddConversionFunc((*config.StatefulSetControllerConfiguration)(nil), (*v1alpha1.StatefulSetControllerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_config_StatefulSetControllerConfiguration_To_v1alpha1_StatefulSetControllerConfiguration(a.(*config.StatefulSetControllerConfiguration), b.(*v1alpha1.StatefulSetControllerConfiguration), scope)
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddConversionFunc((*v1alpha1.StatefulSetControllerConfiguration)(nil), (*config.StatefulSetControllerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_v1alpha1_StatefulSetControllerConfiguration_To_config_StatefulSetControllerConfiguration(a.(*v1alpha1.StatefulSetControllerConfiguration), b.(*config.StatefulSetControllerConfiguration), scope)
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func autoConvert_v1alpha1_GroupResource_To_v1_GroupResource(in *v1alpha1.GroupResource, out *v1.GroupResource, s conversion.Scope) error {
|
||||
out.Group = in.Group
|
||||
out.Resource = in.Resource
|
||||
return nil
|
||||
}
|
||||
|
||||
// Convert_v1alpha1_GroupResource_To_v1_GroupResource is an autogenerated conversion function.
|
||||
func Convert_v1alpha1_GroupResource_To_v1_GroupResource(in *v1alpha1.GroupResource, out *v1.GroupResource, s conversion.Scope) error {
|
||||
return autoConvert_v1alpha1_GroupResource_To_v1_GroupResource(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_v1_GroupResource_To_v1alpha1_GroupResource(in *v1.GroupResource, out *v1alpha1.GroupResource, s conversion.Scope) error {
|
||||
out.Group = in.Group
|
||||
out.Resource = in.Resource
|
||||
return nil
|
||||
}
|
||||
|
||||
// Convert_v1_GroupResource_To_v1alpha1_GroupResource is an autogenerated conversion function.
|
||||
func Convert_v1_GroupResource_To_v1alpha1_GroupResource(in *v1.GroupResource, out *v1alpha1.GroupResource, s conversion.Scope) error {
|
||||
return autoConvert_v1_GroupResource_To_v1alpha1_GroupResource(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_v1alpha1_StatefulSetControllerConfiguration_To_config_StatefulSetControllerConfiguration(in *v1alpha1.StatefulSetControllerConfiguration, out *config.StatefulSetControllerConfiguration, s conversion.Scope) error {
|
||||
out.ConcurrentStatefulSetSyncs = in.ConcurrentStatefulSetSyncs
|
||||
return nil
|
||||
}
|
||||
|
||||
func autoConvert_config_StatefulSetControllerConfiguration_To_v1alpha1_StatefulSetControllerConfiguration(in *config.StatefulSetControllerConfiguration, out *v1alpha1.StatefulSetControllerConfiguration, s conversion.Scope) error {
|
||||
out.ConcurrentStatefulSetSyncs = in.ConcurrentStatefulSetSyncs
|
||||
return nil
|
||||
}
|
21
pkg/controller/statefulset/config/v1alpha1/zz_generated.deepcopy.go
generated
Normal file
21
pkg/controller/statefulset/config/v1alpha1/zz_generated.deepcopy.go
generated
Normal file
@ -0,0 +1,21 @@
|
||||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by deepcopy-gen. DO NOT EDIT.
|
||||
|
||||
package v1alpha1
|
37
pkg/controller/statefulset/config/zz_generated.deepcopy.go
generated
Normal file
37
pkg/controller/statefulset/config/zz_generated.deepcopy.go
generated
Normal file
@ -0,0 +1,37 @@
|
||||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// Code generated by deepcopy-gen. DO NOT EDIT.
|
||||
|
||||
package config
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *StatefulSetControllerConfiguration) DeepCopyInto(out *StatefulSetControllerConfiguration) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetControllerConfiguration.
|
||||
func (in *StatefulSetControllerConfiguration) DeepCopy() *StatefulSetControllerConfiguration {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(StatefulSetControllerConfiguration)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
@ -102,6 +102,9 @@ type KubeControllerManagerConfiguration struct {
|
||||
// DeploymentControllerConfiguration holds configuration for
|
||||
// DeploymentController related features.
|
||||
DeploymentController DeploymentControllerConfiguration
|
||||
// StatefulSetControllerConfiguration holds configuration for
|
||||
// StatefulSetController related features.
|
||||
StatefulSetController StatefulSetControllerConfiguration
|
||||
// DeprecatedControllerConfiguration holds configuration for some deprecated
|
||||
// features.
|
||||
DeprecatedController DeprecatedControllerConfiguration
|
||||
@ -260,6 +263,14 @@ type DeploymentControllerConfiguration struct {
|
||||
DeploymentControllerSyncPeriod metav1.Duration
|
||||
}
|
||||
|
||||
// StatefulSetControllerConfiguration contains elements describing StatefulSetController.
|
||||
type StatefulSetControllerConfiguration struct {
|
||||
// concurrentStatefulSetSyncs is the number of statefulset objects that are
|
||||
// allowed to sync concurrently. Larger number = more responsive statefulsets,
|
||||
// but more CPU (and network) load.
|
||||
ConcurrentStatefulSetSyncs int32
|
||||
}
|
||||
|
||||
// DeprecatedControllerConfiguration contains elements be deprecated.
|
||||
type DeprecatedControllerConfiguration struct {
|
||||
// DEPRECATED: deletingPodsQps is the number of nodes per second on which pods are deleted in
|
||||
|
@ -286,6 +286,7 @@ func (in *KubeControllerManagerConfiguration) DeepCopyInto(out *KubeControllerMa
|
||||
out.CSRSigningController = in.CSRSigningController
|
||||
out.DaemonSetController = in.DaemonSetController
|
||||
out.DeploymentController = in.DeploymentController
|
||||
out.StatefulSetController = in.StatefulSetController
|
||||
out.DeprecatedController = in.DeprecatedController
|
||||
out.EndpointController = in.EndpointController
|
||||
in.GarbageCollectorController.DeepCopyInto(&out.GarbageCollectorController)
|
||||
@ -511,6 +512,22 @@ func (in *ServiceControllerConfiguration) DeepCopy() *ServiceControllerConfigura
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *StatefulSetControllerConfiguration) DeepCopyInto(out *StatefulSetControllerConfiguration) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetControllerConfiguration.
|
||||
func (in *StatefulSetControllerConfiguration) DeepCopy() *StatefulSetControllerConfiguration {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(StatefulSetControllerConfiguration)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *TTLAfterFinishedControllerConfiguration) DeepCopyInto(out *TTLAfterFinishedControllerConfiguration) {
|
||||
*out = *in
|
||||
|
Loading…
Reference in New Issue
Block a user