mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	add --concurrent-ephemeralvolume-syncs flag for kube-controller-manager
This commit is contained in:
		@@ -528,6 +528,7 @@ API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,E
 | 
			
		||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,EndpointSliceMirroringControllerConfiguration,MirroringConcurrentServiceEndpointSyncs
 | 
			
		||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,EndpointSliceMirroringControllerConfiguration,MirroringEndpointUpdatesBatchPeriod
 | 
			
		||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,EndpointSliceMirroringControllerConfiguration,MirroringMaxEndpointsPerSubset
 | 
			
		||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,EphemeralVolumeControllerConfiguration,ConcurrentEphemeralVolumeSyncs
 | 
			
		||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,GarbageCollectorControllerConfiguration,ConcurrentGCSyncs
 | 
			
		||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,GarbageCollectorControllerConfiguration,EnableGarbageCollector
 | 
			
		||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,GarbageCollectorControllerConfiguration,GCIgnoredResources
 | 
			
		||||
@@ -550,6 +551,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,EndpointController
 | 
			
		||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,EndpointSliceController
 | 
			
		||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,EndpointSliceMirroringController
 | 
			
		||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,EphemeralVolumeController
 | 
			
		||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,GarbageCollectorController
 | 
			
		||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,Generic
 | 
			
		||||
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,HPAController
 | 
			
		||||
 
 | 
			
		||||
@@ -401,8 +401,7 @@ func startEphemeralVolumeController(ctx ControllerContext) (http.Handler, bool,
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, true, fmt.Errorf("failed to start ephemeral volume controller: %v", err)
 | 
			
		||||
		}
 | 
			
		||||
		// TODO (before beta at the latest): make this configurable similar to the EndpointController
 | 
			
		||||
		go ephemeralController.Run(1 /* int(ctx.ComponentConfig.EphemeralController.ConcurrentEphemeralVolumeSyncs) */, ctx.Stop)
 | 
			
		||||
		go ephemeralController.Run(int(ctx.ComponentConfig.EphemeralVolumeController.ConcurrentEphemeralVolumeSyncs), ctx.Stop)
 | 
			
		||||
		return nil, true, nil
 | 
			
		||||
	}
 | 
			
		||||
	return nil, false, nil
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,63 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2021 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"
 | 
			
		||||
 | 
			
		||||
	ephemeralvolumeconfig "k8s.io/kubernetes/pkg/controller/volume/ephemeral/config"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// EphemeralVolumeControllerOptions holds the EphemeralVolumeController options.
 | 
			
		||||
type EphemeralVolumeControllerOptions struct {
 | 
			
		||||
	*ephemeralvolumeconfig.EphemeralVolumeControllerConfiguration
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// AddFlags adds flags related to EphemeralVolumeController for controller manager to the specified FlagSet.
 | 
			
		||||
func (o *EphemeralVolumeControllerOptions) AddFlags(fs *pflag.FlagSet) {
 | 
			
		||||
	if o == nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	fs.Int32Var(&o.ConcurrentEphemeralVolumeSyncs, "concurrent-ephemeralvolume-syncs", o.ConcurrentEphemeralVolumeSyncs, "The number of ephemeral volume syncing operations that will be done concurrently. Larger number = faster ephemeral volume updating, but more CPU (and network) load")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ApplyTo fills up EphemeralVolumeController config with options.
 | 
			
		||||
func (o *EphemeralVolumeControllerOptions) ApplyTo(cfg *ephemeralvolumeconfig.EphemeralVolumeControllerConfiguration) error {
 | 
			
		||||
	if o == nil {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	cfg.ConcurrentEphemeralVolumeSyncs = o.ConcurrentEphemeralVolumeSyncs
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Validate checks validation of EphemeralVolumeControllerOptions.
 | 
			
		||||
func (o *EphemeralVolumeControllerOptions) Validate() []error {
 | 
			
		||||
	if o == nil {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	errs := []error{}
 | 
			
		||||
	if o.ConcurrentEphemeralVolumeSyncs < 1 {
 | 
			
		||||
		errs = append(errs, fmt.Errorf("concurrent-ephemeralvolume-syncs must be greater than 0, but got %d", o.ConcurrentEphemeralVolumeSyncs))
 | 
			
		||||
	}
 | 
			
		||||
	return errs
 | 
			
		||||
}
 | 
			
		||||
@@ -70,6 +70,7 @@ type KubeControllerManagerOptions struct {
 | 
			
		||||
	EndpointController               *EndpointControllerOptions
 | 
			
		||||
	EndpointSliceController          *EndpointSliceControllerOptions
 | 
			
		||||
	EndpointSliceMirroringController *EndpointSliceMirroringControllerOptions
 | 
			
		||||
	EphemeralVolumeController        *EphemeralVolumeControllerOptions
 | 
			
		||||
	GarbageCollectorController       *GarbageCollectorControllerOptions
 | 
			
		||||
	HPAController                    *HPAControllerOptions
 | 
			
		||||
	JobController                    *JobControllerOptions
 | 
			
		||||
@@ -136,6 +137,9 @@ func NewKubeControllerManagerOptions() (*KubeControllerManagerOptions, error) {
 | 
			
		||||
		EndpointSliceMirroringController: &EndpointSliceMirroringControllerOptions{
 | 
			
		||||
			&componentConfig.EndpointSliceMirroringController,
 | 
			
		||||
		},
 | 
			
		||||
		EphemeralVolumeController: &EphemeralVolumeControllerOptions{
 | 
			
		||||
			&componentConfig.EphemeralVolumeController,
 | 
			
		||||
		},
 | 
			
		||||
		GarbageCollectorController: &GarbageCollectorControllerOptions{
 | 
			
		||||
			&componentConfig.GarbageCollectorController,
 | 
			
		||||
		},
 | 
			
		||||
@@ -252,6 +256,7 @@ func (s *KubeControllerManagerOptions) Flags(allControllers []string, disabledBy
 | 
			
		||||
	s.EndpointController.AddFlags(fss.FlagSet("endpoint controller"))
 | 
			
		||||
	s.EndpointSliceController.AddFlags(fss.FlagSet("endpointslice controller"))
 | 
			
		||||
	s.EndpointSliceMirroringController.AddFlags(fss.FlagSet("endpointslicemirroring controller"))
 | 
			
		||||
	s.EphemeralVolumeController.AddFlags(fss.FlagSet("ephemeralvolume controller"))
 | 
			
		||||
	s.GarbageCollectorController.AddFlags(fss.FlagSet("garbagecollector controller"))
 | 
			
		||||
	s.HPAController.AddFlags(fss.FlagSet("horizontalpodautoscaling controller"))
 | 
			
		||||
	s.JobController.AddFlags(fss.FlagSet("job controller"))
 | 
			
		||||
@@ -312,6 +317,9 @@ func (s *KubeControllerManagerOptions) ApplyTo(c *kubecontrollerconfig.Config) e
 | 
			
		||||
	if err := s.EndpointSliceMirroringController.ApplyTo(&c.ComponentConfig.EndpointSliceMirroringController); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	if err := s.EphemeralVolumeController.ApplyTo(&c.ComponentConfig.EphemeralVolumeController); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	if err := s.GarbageCollectorController.ApplyTo(&c.ComponentConfig.GarbageCollectorController); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
@@ -386,6 +394,7 @@ func (s *KubeControllerManagerOptions) Validate(allControllers []string, disable
 | 
			
		||||
	errs = append(errs, s.EndpointController.Validate()...)
 | 
			
		||||
	errs = append(errs, s.EndpointSliceController.Validate()...)
 | 
			
		||||
	errs = append(errs, s.EndpointSliceMirroringController.Validate()...)
 | 
			
		||||
	errs = append(errs, s.EphemeralVolumeController.Validate()...)
 | 
			
		||||
	errs = append(errs, s.GarbageCollectorController.Validate()...)
 | 
			
		||||
	errs = append(errs, s.HPAController.Validate()...)
 | 
			
		||||
	errs = append(errs, s.JobController.Validate()...)
 | 
			
		||||
 
 | 
			
		||||
@@ -59,6 +59,7 @@ import (
 | 
			
		||||
	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"
 | 
			
		||||
	ephemeralvolumeconfig "k8s.io/kubernetes/pkg/controller/volume/ephemeral/config"
 | 
			
		||||
	persistentvolumeconfig "k8s.io/kubernetes/pkg/controller/volume/persistentvolume/config"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -83,6 +84,7 @@ var args = []string{
 | 
			
		||||
	"--concurrent-deployment-syncs=10",
 | 
			
		||||
	"--concurrent-statefulset-syncs=15",
 | 
			
		||||
	"--concurrent-endpoint-syncs=10",
 | 
			
		||||
	"--concurrent-ephemeralvolume-syncs=10",
 | 
			
		||||
	"--concurrent-service-endpoint-syncs=10",
 | 
			
		||||
	"--concurrent-gc-syncs=30",
 | 
			
		||||
	"--concurrent-namespace-syncs=20",
 | 
			
		||||
@@ -288,6 +290,11 @@ func TestAddFlags(t *testing.T) {
 | 
			
		||||
				MirroringMaxEndpointsPerSubset:          1000,
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		EphemeralVolumeController: &EphemeralVolumeControllerOptions{
 | 
			
		||||
			&ephemeralvolumeconfig.EphemeralVolumeControllerConfiguration{
 | 
			
		||||
				ConcurrentEphemeralVolumeSyncs: 10,
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		GarbageCollectorController: &GarbageCollectorControllerOptions{
 | 
			
		||||
			&garbagecollectorconfig.GarbageCollectorControllerConfiguration{
 | 
			
		||||
				ConcurrentGCSyncs: 30,
 | 
			
		||||
@@ -545,6 +552,9 @@ func TestApplyTo(t *testing.T) {
 | 
			
		||||
				MirroringConcurrentServiceEndpointSyncs: 2,
 | 
			
		||||
				MirroringMaxEndpointsPerSubset:          1000,
 | 
			
		||||
			},
 | 
			
		||||
			EphemeralVolumeController: ephemeralvolumeconfig.EphemeralVolumeControllerConfiguration{
 | 
			
		||||
				ConcurrentEphemeralVolumeSyncs: 10,
 | 
			
		||||
			},
 | 
			
		||||
			GarbageCollectorController: garbagecollectorconfig.GarbageCollectorControllerConfiguration{
 | 
			
		||||
				ConcurrentGCSyncs: 30,
 | 
			
		||||
				GCIgnoredResources: []garbagecollectorconfig.GroupResource{
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,7 @@ import (
 | 
			
		||||
	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"
 | 
			
		||||
	ephemeralvolumeconfig "k8s.io/kubernetes/pkg/controller/volume/ephemeral/config"
 | 
			
		||||
	persistentvolumeconfig "k8s.io/kubernetes/pkg/controller/volume/persistentvolume/config"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -84,6 +85,9 @@ type KubeControllerManagerConfiguration struct {
 | 
			
		||||
	// EndpointSliceMirroringControllerConfiguration holds configuration for
 | 
			
		||||
	// EndpointSliceMirroringController related features.
 | 
			
		||||
	EndpointSliceMirroringController endpointslicemirroringconfig.EndpointSliceMirroringControllerConfiguration
 | 
			
		||||
	// EphemeralVolumeControllerConfiguration holds configuration for EphemeralVolumeController
 | 
			
		||||
	// related features.
 | 
			
		||||
	EphemeralVolumeController ephemeralvolumeconfig.EphemeralVolumeControllerConfiguration
 | 
			
		||||
	// GarbageCollectorControllerConfiguration holds configuration for
 | 
			
		||||
	// GarbageCollectorController related features.
 | 
			
		||||
	GarbageCollectorController garbagecollectorconfig.GarbageCollectorControllerConfiguration
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,7 @@ import (
 | 
			
		||||
	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"
 | 
			
		||||
	ephemeralvolumeconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/volume/ephemeral/config/v1alpha1"
 | 
			
		||||
	persistentvolumeconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/volume/persistentvolume/config/v1alpha1"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -81,6 +82,8 @@ func SetDefaults_KubeControllerManagerConfiguration(obj *kubectrlmgrconfigv1alph
 | 
			
		||||
	endpointsliceconfigv1alpha1.RecommendedDefaultEndpointSliceControllerConfiguration(&obj.EndpointSliceController)
 | 
			
		||||
	// Use the default RecommendedDefaultEndpointSliceMirroringControllerConfiguration options
 | 
			
		||||
	endpointslicemirroringconfigv1alpha1.RecommendedDefaultEndpointSliceMirroringControllerConfiguration(&obj.EndpointSliceMirroringController)
 | 
			
		||||
	// Use the default RecommendedDefaultEphemeralVolumeControllerConfiguration options
 | 
			
		||||
	ephemeralvolumeconfigv1alpha1.RecommendedDefaultEphemeralVolumeControllerConfiguration(&obj.EphemeralVolumeController)
 | 
			
		||||
	// Use the default RecommendedDefaultGenericControllerManagerConfiguration options
 | 
			
		||||
	garbagecollectorconfigv1alpha1.RecommendedDefaultGarbageCollectorControllerConfiguration(&obj.GarbageCollectorController)
 | 
			
		||||
	// Use the default RecommendedDefaultJobControllerConfiguration options
 | 
			
		||||
 
 | 
			
		||||
@@ -41,6 +41,7 @@ limitations under the License.
 | 
			
		||||
// +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/ephemeral/config/v1alpha1
 | 
			
		||||
// +k8s:conversion-gen=k8s.io/kubernetes/pkg/controller/volume/persistentvolume/config/v1alpha1
 | 
			
		||||
// +k8s:conversion-gen-external-types=k8s.io/kube-controller-manager/config/v1alpha1
 | 
			
		||||
// +k8s:defaulter-gen=TypeMeta
 | 
			
		||||
 
 | 
			
		||||
@@ -50,6 +50,7 @@ import (
 | 
			
		||||
	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"
 | 
			
		||||
	ephemeralconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/volume/ephemeral/config/v1alpha1"
 | 
			
		||||
	persistentvolumeconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/volume/persistentvolume/config/v1alpha1"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -173,6 +174,9 @@ func autoConvert_v1alpha1_KubeControllerManagerConfiguration_To_config_KubeContr
 | 
			
		||||
	if err := endpointslicemirroringconfigv1alpha1.Convert_v1alpha1_EndpointSliceMirroringControllerConfiguration_To_config_EndpointSliceMirroringControllerConfiguration(&in.EndpointSliceMirroringController, &out.EndpointSliceMirroringController, s); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	if err := ephemeralconfigv1alpha1.Convert_v1alpha1_EphemeralVolumeControllerConfiguration_To_config_EphemeralVolumeControllerConfiguration(&in.EphemeralVolumeController, &out.EphemeralVolumeController, s); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	if err := garbagecollectorconfigv1alpha1.Convert_v1alpha1_GarbageCollectorControllerConfiguration_To_config_GarbageCollectorControllerConfiguration(&in.GarbageCollectorController, &out.GarbageCollectorController, s); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
@@ -260,6 +264,9 @@ func autoConvert_config_KubeControllerManagerConfiguration_To_v1alpha1_KubeContr
 | 
			
		||||
	if err := endpointslicemirroringconfigv1alpha1.Convert_config_EndpointSliceMirroringControllerConfiguration_To_v1alpha1_EndpointSliceMirroringControllerConfiguration(&in.EndpointSliceMirroringController, &out.EndpointSliceMirroringController, s); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	if err := ephemeralconfigv1alpha1.Convert_config_EphemeralVolumeControllerConfiguration_To_v1alpha1_EphemeralVolumeControllerConfiguration(&in.EphemeralVolumeController, &out.EphemeralVolumeController, s); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	if err := garbagecollectorconfigv1alpha1.Convert_config_GarbageCollectorControllerConfiguration_To_v1alpha1_GarbageCollectorControllerConfiguration(&in.GarbageCollectorController, &out.GarbageCollectorController, s); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -55,6 +55,7 @@ func (in *KubeControllerManagerConfiguration) DeepCopyInto(out *KubeControllerMa
 | 
			
		||||
	out.EndpointController = in.EndpointController
 | 
			
		||||
	out.EndpointSliceController = in.EndpointSliceController
 | 
			
		||||
	out.EndpointSliceMirroringController = in.EndpointSliceMirroringController
 | 
			
		||||
	out.EphemeralVolumeController = in.EphemeralVolumeController
 | 
			
		||||
	in.GarbageCollectorController.DeepCopyInto(&out.GarbageCollectorController)
 | 
			
		||||
	out.HPAController = in.HPAController
 | 
			
		||||
	out.JobController = in.JobController
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								pkg/controller/volume/ephemeral/config/doc.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								pkg/controller/volume/ephemeral/config/doc.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2021 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/volume/ephemeral/config"
 | 
			
		||||
							
								
								
									
										25
									
								
								pkg/controller/volume/ephemeral/config/types.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								pkg/controller/volume/ephemeral/config/types.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2021 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
 | 
			
		||||
 | 
			
		||||
// EphemeralVolumeControllerConfiguration contains elements describing EphemeralVolumeController.
 | 
			
		||||
type EphemeralVolumeControllerConfiguration struct {
 | 
			
		||||
	// ConcurrentEphemeralVolumeSyncs is the number of ephemeral volume syncing operations
 | 
			
		||||
	// that will be done concurrently. Larger number = faster ephemeral volume updating,
 | 
			
		||||
	// but more CPU (and network) load.
 | 
			
		||||
	ConcurrentEphemeralVolumeSyncs int32
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,40 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2021 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"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/controller/volume/ephemeral/config"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Important! The public back-and-forth conversion functions for the types in this package
 | 
			
		||||
// with EphemeralVolumeControllerConfiguration 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_EphemeralVolumeControllerConfiguration_To_config_EphemeralVolumeControllerConfiguration is an autogenerated conversion function.
 | 
			
		||||
func Convert_v1alpha1_EphemeralVolumeControllerConfiguration_To_config_EphemeralVolumeControllerConfiguration(in *v1alpha1.EphemeralVolumeControllerConfiguration, out *config.EphemeralVolumeControllerConfiguration, s conversion.Scope) error {
 | 
			
		||||
	return autoConvert_v1alpha1_EphemeralVolumeControllerConfiguration_To_config_EphemeralVolumeControllerConfiguration(in, out, s)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Convert_config_EphemeralVolumeControllerConfiguration_To_v1alpha1_EphemeralVolumeControllerConfiguration is an autogenerated conversion function.
 | 
			
		||||
func Convert_config_EphemeralVolumeControllerConfiguration_To_v1alpha1_EphemeralVolumeControllerConfiguration(in *config.EphemeralVolumeControllerConfiguration, out *v1alpha1.EphemeralVolumeControllerConfiguration, s conversion.Scope) error {
 | 
			
		||||
	return autoConvert_config_EphemeralVolumeControllerConfiguration_To_v1alpha1_EphemeralVolumeControllerConfiguration(in, out, s)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										36
									
								
								pkg/controller/volume/ephemeral/config/v1alpha1/defaults.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								pkg/controller/volume/ephemeral/config/v1alpha1/defaults.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2021 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"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// RecommendedDefaultEphemeralVolumeControllerConfiguration defaults a pointer to a
 | 
			
		||||
// EphemeralVolumeControllerConfiguration 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 RecommendedDefaultEphemeralVolumeControllerConfiguration(obj *kubectrlmgrconfigv1alpha1.EphemeralVolumeControllerConfiguration) {
 | 
			
		||||
	if obj.ConcurrentEphemeralVolumeSyncs == 0 {
 | 
			
		||||
		obj.ConcurrentEphemeralVolumeSyncs = 5
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								pkg/controller/volume/ephemeral/config/v1alpha1/doc.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								pkg/controller/volume/ephemeral/config/v1alpha1/doc.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2021 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/volume/ephemeral/config
 | 
			
		||||
// +k8s:conversion-gen-external-types=k8s.io/kube-controller-manager/config/v1alpha1
 | 
			
		||||
 | 
			
		||||
package v1alpha1 // import "k8s.io/kubernetes/pkg/controller/volume/ephemeral/config/v1alpha1"
 | 
			
		||||
							
								
								
									
										31
									
								
								pkg/controller/volume/ephemeral/config/v1alpha1/register.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								pkg/controller/volume/ephemeral/config/v1alpha1/register.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2021 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
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										91
									
								
								pkg/controller/volume/ephemeral/config/v1alpha1/zz_generated.conversion.go
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								pkg/controller/volume/ephemeral/config/v1alpha1/zz_generated.conversion.go
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,91 @@
 | 
			
		||||
// +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/volume/ephemeral/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.AddConversionFunc((*config.EphemeralVolumeControllerConfiguration)(nil), (*v1alpha1.EphemeralVolumeControllerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error {
 | 
			
		||||
		return Convert_config_EphemeralVolumeControllerConfiguration_To_v1alpha1_EphemeralVolumeControllerConfiguration(a.(*config.EphemeralVolumeControllerConfiguration), b.(*v1alpha1.EphemeralVolumeControllerConfiguration), scope)
 | 
			
		||||
	}); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	if err := s.AddConversionFunc((*v1alpha1.EphemeralVolumeControllerConfiguration)(nil), (*config.EphemeralVolumeControllerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error {
 | 
			
		||||
		return Convert_v1alpha1_EphemeralVolumeControllerConfiguration_To_config_EphemeralVolumeControllerConfiguration(a.(*v1alpha1.EphemeralVolumeControllerConfiguration), b.(*config.EphemeralVolumeControllerConfiguration), scope)
 | 
			
		||||
	}); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func autoConvert_v1alpha1_EphemeralVolumeControllerConfiguration_To_config_EphemeralVolumeControllerConfiguration(in *v1alpha1.EphemeralVolumeControllerConfiguration, out *config.EphemeralVolumeControllerConfiguration, s conversion.Scope) error {
 | 
			
		||||
	out.ConcurrentEphemeralVolumeSyncs = in.ConcurrentEphemeralVolumeSyncs
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func autoConvert_config_EphemeralVolumeControllerConfiguration_To_v1alpha1_EphemeralVolumeControllerConfiguration(in *config.EphemeralVolumeControllerConfiguration, out *v1alpha1.EphemeralVolumeControllerConfiguration, s conversion.Scope) error {
 | 
			
		||||
	out.ConcurrentEphemeralVolumeSyncs = in.ConcurrentEphemeralVolumeSyncs
 | 
			
		||||
	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)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								pkg/controller/volume/ephemeral/config/v1alpha1/zz_generated.deepcopy.go
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								pkg/controller/volume/ephemeral/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/volume/ephemeral/config/zz_generated.deepcopy.go
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								pkg/controller/volume/ephemeral/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 *EphemeralVolumeControllerConfiguration) DeepCopyInto(out *EphemeralVolumeControllerConfiguration) {
 | 
			
		||||
	*out = *in
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EphemeralVolumeControllerConfiguration.
 | 
			
		||||
func (in *EphemeralVolumeControllerConfiguration) DeepCopy() *EphemeralVolumeControllerConfiguration {
 | 
			
		||||
	if in == nil {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
	out := new(EphemeralVolumeControllerConfiguration)
 | 
			
		||||
	in.DeepCopyInto(out)
 | 
			
		||||
	return out
 | 
			
		||||
}
 | 
			
		||||
@@ -119,6 +119,9 @@ type KubeControllerManagerConfiguration struct {
 | 
			
		||||
	// EndpointSliceMirroringControllerConfiguration holds configuration for
 | 
			
		||||
	// EndpointSliceMirroringController related features.
 | 
			
		||||
	EndpointSliceMirroringController EndpointSliceMirroringControllerConfiguration
 | 
			
		||||
	// EphemeralVolumeControllerConfiguration holds configuration for EphemeralVolumeController
 | 
			
		||||
	// related features.
 | 
			
		||||
	EphemeralVolumeController EphemeralVolumeControllerConfiguration
 | 
			
		||||
	// GarbageCollectorControllerConfiguration holds configuration for
 | 
			
		||||
	// GarbageCollectorController related features.
 | 
			
		||||
	GarbageCollectorController GarbageCollectorControllerConfiguration
 | 
			
		||||
@@ -300,6 +303,14 @@ type EndpointSliceMirroringControllerConfiguration struct {
 | 
			
		||||
	MirroringEndpointUpdatesBatchPeriod metav1.Duration
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// EphemeralVolumeControllerConfiguration contains elements describing EphemeralVolumeController.
 | 
			
		||||
type EphemeralVolumeControllerConfiguration struct {
 | 
			
		||||
	// ConcurrentEphemeralVolumeSyncseSyncs is the number of ephemeral volume syncing operations
 | 
			
		||||
	// that will be done concurrently. Larger number = faster ephemeral volume updating,
 | 
			
		||||
	// but more CPU (and network) load.
 | 
			
		||||
	ConcurrentEphemeralVolumeSyncs int32
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GarbageCollectorControllerConfiguration contains elements describing GarbageCollectorController.
 | 
			
		||||
type GarbageCollectorControllerConfiguration struct {
 | 
			
		||||
	// enables the generic garbage collector. MUST be synced with the
 | 
			
		||||
 
 | 
			
		||||
@@ -194,6 +194,22 @@ func (in *EndpointSliceMirroringControllerConfiguration) DeepCopy() *EndpointSli
 | 
			
		||||
	return out
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 | 
			
		||||
func (in *EphemeralVolumeControllerConfiguration) DeepCopyInto(out *EphemeralVolumeControllerConfiguration) {
 | 
			
		||||
	*out = *in
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EphemeralVolumeControllerConfiguration.
 | 
			
		||||
func (in *EphemeralVolumeControllerConfiguration) DeepCopy() *EphemeralVolumeControllerConfiguration {
 | 
			
		||||
	if in == nil {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
	out := new(EphemeralVolumeControllerConfiguration)
 | 
			
		||||
	in.DeepCopyInto(out)
 | 
			
		||||
	return out
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 | 
			
		||||
func (in *GarbageCollectorControllerConfiguration) DeepCopyInto(out *GarbageCollectorControllerConfiguration) {
 | 
			
		||||
	*out = *in
 | 
			
		||||
@@ -289,6 +305,7 @@ func (in *KubeControllerManagerConfiguration) DeepCopyInto(out *KubeControllerMa
 | 
			
		||||
	out.EndpointController = in.EndpointController
 | 
			
		||||
	out.EndpointSliceController = in.EndpointSliceController
 | 
			
		||||
	out.EndpointSliceMirroringController = in.EndpointSliceMirroringController
 | 
			
		||||
	out.EphemeralVolumeController = in.EphemeralVolumeController
 | 
			
		||||
	in.GarbageCollectorController.DeepCopyInto(&out.GarbageCollectorController)
 | 
			
		||||
	out.HPAController = in.HPAController
 | 
			
		||||
	out.JobController = in.JobController
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user