Commit 1c6c4556 authored by stewart-yu's avatar stewart-yu

[kube-controller-manager] create package to hold kube-controller-manager component api

parent be4a437e
/*
Copyright 2018 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/apis/config"
/*
Copyright 2018 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
import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
)
// GroupName is the group name use in this package
const GroupName = "kubecontrollermanager.config.k8s.io"
// SchemeGroupVersion is group version used to register these objects
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
var (
// SchemeBuilder providers the handle of collects functions that add things to a scheme
SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
// AddToScheme applies all the stored functions to the scheme. A non-nil error
// indicates that one function failed and the attempt was abandoned.
AddToScheme = SchemeBuilder.AddToScheme
)
func addKnownTypes(scheme *runtime.Scheme) error {
scheme.AddKnownTypes(SchemeGroupVersion,
&KubeControllerManagerConfiguration{},
)
return nil
}
/*
Copyright 2018 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 scheme
import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/serializer"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/kubernetes/pkg/controller/apis/config"
"k8s.io/kubernetes/pkg/controller/apis/config/v1alpha1"
)
var (
// Scheme defines methods for serializing and deserializing API objects.
Scheme = runtime.NewScheme()
// Codecs provides methods for retrieving codecs and serializers for specific
// versions and content types.
Codecs = serializer.NewCodecFactory(Scheme)
)
func init() {
AddToScheme(Scheme)
}
// AddToScheme registers the API group and adds types to a scheme
func AddToScheme(scheme *runtime.Scheme) {
utilruntime.Must(config.AddToScheme(scheme))
utilruntime.Must(v1alpha1.AddToScheme(scheme))
utilruntime.Must(scheme.SetVersionPriority(v1alpha1.SchemeGroupVersion))
}
...@@ -22,6 +22,7 @@ import ( ...@@ -22,6 +22,7 @@ import (
apiserverconfig "k8s.io/apiserver/pkg/apis/config" apiserverconfig "k8s.io/apiserver/pkg/apis/config"
) )
// GroupResource describes an group resource.
type GroupResource struct { type GroupResource struct {
// group is the group portion of the GroupResource. // group is the group portion of the GroupResource.
Group string Group string
...@@ -30,13 +31,17 @@ type GroupResource struct { ...@@ -30,13 +31,17 @@ type GroupResource struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// KubeControllerManagerConfiguration contains elements describing kube-controller manager.
type KubeControllerManagerConfiguration struct { type KubeControllerManagerConfiguration struct {
metav1.TypeMeta metav1.TypeMeta
// Generic holds configuration for a generic controller-manager // Generic holds configuration for a generic controller-manager
Generic GenericControllerManagerConfiguration Generic GenericControllerManagerConfiguration
// KubeCloudSharedConfiguration holds configuration for shared related features // KubeCloudSharedConfiguration holds configuration for shared related features
// both in cloud controller manager and kube-controller manager. // both in cloud controller manager and kube-controller manager.
KubeCloudShared KubeCloudSharedConfiguration KubeCloudShared KubeCloudSharedConfiguration
// AttachDetachControllerConfiguration holds configuration for // AttachDetachControllerConfiguration holds configuration for
// AttachDetachController related features. // AttachDetachController related features.
AttachDetachController AttachDetachControllerConfiguration AttachDetachController AttachDetachControllerConfiguration
...@@ -93,6 +98,7 @@ type KubeControllerManagerConfiguration struct { ...@@ -93,6 +98,7 @@ type KubeControllerManagerConfiguration struct {
ServiceController ServiceControllerConfiguration ServiceController ServiceControllerConfiguration
} }
// GenericControllerManagerConfiguration holds configuration for a generic controller-manager
type GenericControllerManagerConfiguration struct { type GenericControllerManagerConfiguration struct {
// port is the port that the controller-manager's http service runs on. // port is the port that the controller-manager's http service runs on.
Port int32 Port int32
...@@ -118,6 +124,8 @@ type GenericControllerManagerConfiguration struct { ...@@ -118,6 +124,8 @@ type GenericControllerManagerConfiguration struct {
Debugging apiserverconfig.DebuggingConfiguration Debugging apiserverconfig.DebuggingConfiguration
} }
// KubeCloudSharedConfiguration contains elements shared by both kube-controller manager
// and cloud-controller manager, but not genericconfig.
type KubeCloudSharedConfiguration struct { type KubeCloudSharedConfiguration struct {
// CloudProviderConfiguration holds configuration for CloudProvider related features. // CloudProviderConfiguration holds configuration for CloudProvider related features.
CloudProvider CloudProviderConfiguration CloudProvider CloudProviderConfiguration
...@@ -150,6 +158,8 @@ type KubeCloudSharedConfiguration struct { ...@@ -150,6 +158,8 @@ type KubeCloudSharedConfiguration struct {
// of new nodes to cluster. // of new nodes to cluster.
NodeSyncPeriod metav1.Duration NodeSyncPeriod metav1.Duration
} }
// AttachDetachControllerConfiguration contains elements describing AttachDetachController.
type AttachDetachControllerConfiguration struct { type AttachDetachControllerConfiguration struct {
// Reconciler runs a periodic loop to reconcile the desired state of the with // Reconciler runs a periodic loop to reconcile the desired state of the with
// the actual state of the world by triggering attach detach operations. // the actual state of the world by triggering attach detach operations.
...@@ -160,6 +170,7 @@ type AttachDetachControllerConfiguration struct { ...@@ -160,6 +170,7 @@ type AttachDetachControllerConfiguration struct {
ReconcilerSyncLoopPeriod metav1.Duration ReconcilerSyncLoopPeriod metav1.Duration
} }
// CloudProviderConfiguration contains basically elements about cloud provider.
type CloudProviderConfiguration struct { type CloudProviderConfiguration struct {
// Name is the provider for cloud services. // Name is the provider for cloud services.
Name string Name string
...@@ -167,6 +178,7 @@ type CloudProviderConfiguration struct { ...@@ -167,6 +178,7 @@ type CloudProviderConfiguration struct {
CloudConfigFile string CloudConfigFile string
} }
// CSRSigningControllerConfiguration contains elements describing CSRSigningController.
type CSRSigningControllerConfiguration struct { type CSRSigningControllerConfiguration struct {
// clusterSigningCertFile is the filename containing a PEM-encoded // clusterSigningCertFile is the filename containing a PEM-encoded
// X509 CA certificate used to issue cluster-scoped certificates // X509 CA certificate used to issue cluster-scoped certificates
...@@ -179,6 +191,7 @@ type CSRSigningControllerConfiguration struct { ...@@ -179,6 +191,7 @@ type CSRSigningControllerConfiguration struct {
ClusterSigningDuration metav1.Duration ClusterSigningDuration metav1.Duration
} }
// DaemonSetControllerConfiguration contains elements describing DaemonSetController.
type DaemonSetControllerConfiguration struct { type DaemonSetControllerConfiguration struct {
// concurrentDaemonSetSyncs is the number of daemonset objects that are // concurrentDaemonSetSyncs is the number of daemonset objects that are
// allowed to sync concurrently. Larger number = more responsive daemonset, // allowed to sync concurrently. Larger number = more responsive daemonset,
...@@ -186,6 +199,7 @@ type DaemonSetControllerConfiguration struct { ...@@ -186,6 +199,7 @@ type DaemonSetControllerConfiguration struct {
ConcurrentDaemonSetSyncs int32 ConcurrentDaemonSetSyncs int32
} }
// DeploymentControllerConfiguration contains elements describing DeploymentController.
type DeploymentControllerConfiguration struct { type DeploymentControllerConfiguration struct {
// concurrentDeploymentSyncs is the number of deployment objects that are // concurrentDeploymentSyncs is the number of deployment objects that are
// allowed to sync concurrently. Larger number = more responsive deployments, // allowed to sync concurrently. Larger number = more responsive deployments,
...@@ -195,10 +209,11 @@ type DeploymentControllerConfiguration struct { ...@@ -195,10 +209,11 @@ type DeploymentControllerConfiguration struct {
DeploymentControllerSyncPeriod metav1.Duration DeploymentControllerSyncPeriod metav1.Duration
} }
// DeprecatedControllerConfiguration contains elements be deprecated.
type DeprecatedControllerConfiguration struct { type DeprecatedControllerConfiguration struct {
// DEPRECATED: deletingPodsQps is the number of nodes per second on which pods are deleted in // DEPRECATED: deletingPodsQps is the number of nodes per second on which pods are deleted in
// case of node failure. // case of node failure.
DeletingPodsQps float32 DeletingPodsQPS float32
// DEPRECATED: deletingPodsBurst is the number of nodes on which pods are bursty deleted in // DEPRECATED: deletingPodsBurst is the number of nodes on which pods are bursty deleted in
// case of node failure. For more details look into RateLimiter. // case of node failure. For more details look into RateLimiter.
DeletingPodsBurst int32 DeletingPodsBurst int32
...@@ -207,6 +222,7 @@ type DeprecatedControllerConfiguration struct { ...@@ -207,6 +222,7 @@ type DeprecatedControllerConfiguration struct {
RegisterRetryCount int32 RegisterRetryCount int32
} }
// EndpointControllerConfiguration contains elements describing EndpointController.
type EndpointControllerConfiguration struct { type EndpointControllerConfiguration struct {
// concurrentEndpointSyncs is the number of endpoint syncing operations // concurrentEndpointSyncs is the number of endpoint syncing operations
// that will be done concurrently. Larger number = faster endpoint updating, // that will be done concurrently. Larger number = faster endpoint updating,
...@@ -214,6 +230,7 @@ type EndpointControllerConfiguration struct { ...@@ -214,6 +230,7 @@ type EndpointControllerConfiguration struct {
ConcurrentEndpointSyncs int32 ConcurrentEndpointSyncs int32
} }
// GarbageCollectorControllerConfiguration contains elements describing GarbageCollectorController.
type GarbageCollectorControllerConfiguration struct { type GarbageCollectorControllerConfiguration struct {
// enables the generic garbage collector. MUST be synced with the // enables the generic garbage collector. MUST be synced with the
// corresponding flag of the kube-apiserver. WARNING: the generic garbage // corresponding flag of the kube-apiserver. WARNING: the generic garbage
...@@ -226,6 +243,7 @@ type GarbageCollectorControllerConfiguration struct { ...@@ -226,6 +243,7 @@ type GarbageCollectorControllerConfiguration struct {
GCIgnoredResources []GroupResource GCIgnoredResources []GroupResource
} }
// HPAControllerConfiguration contains elements describing HPAController.
type HPAControllerConfiguration struct { type HPAControllerConfiguration struct {
// horizontalPodAutoscalerSyncPeriod is the period for syncing the number of // horizontalPodAutoscalerSyncPeriod is the period for syncing the number of
// pods in horizontal pod autoscaler. // pods in horizontal pod autoscaler.
...@@ -254,6 +272,7 @@ type HPAControllerConfiguration struct { ...@@ -254,6 +272,7 @@ type HPAControllerConfiguration struct {
HorizontalPodAutoscalerInitialReadinessDelay metav1.Duration HorizontalPodAutoscalerInitialReadinessDelay metav1.Duration
} }
// JobControllerConfiguration contains elements describing JobController.
type JobControllerConfiguration struct { type JobControllerConfiguration struct {
// concurrentJobSyncs is the number of job objects that are // concurrentJobSyncs is the number of job objects that are
// allowed to sync concurrently. Larger number = more responsive jobs, // allowed to sync concurrently. Larger number = more responsive jobs,
...@@ -261,6 +280,7 @@ type JobControllerConfiguration struct { ...@@ -261,6 +280,7 @@ type JobControllerConfiguration struct {
ConcurrentJobSyncs int32 ConcurrentJobSyncs int32
} }
// NamespaceControllerConfiguration contains elements describing NamespaceController.
type NamespaceControllerConfiguration struct { type NamespaceControllerConfiguration struct {
// namespaceSyncPeriod is the period for syncing namespace life-cycle // namespaceSyncPeriod is the period for syncing namespace life-cycle
// updates. // updates.
...@@ -270,6 +290,7 @@ type NamespaceControllerConfiguration struct { ...@@ -270,6 +290,7 @@ type NamespaceControllerConfiguration struct {
ConcurrentNamespaceSyncs int32 ConcurrentNamespaceSyncs int32
} }
// NodeIPAMControllerConfiguration contains elements describing NodeIPAMController.
type NodeIPAMControllerConfiguration struct { type NodeIPAMControllerConfiguration struct {
// serviceCIDR is CIDR Range for Services in cluster. // serviceCIDR is CIDR Range for Services in cluster.
ServiceCIDR string ServiceCIDR string
...@@ -277,6 +298,7 @@ type NodeIPAMControllerConfiguration struct { ...@@ -277,6 +298,7 @@ type NodeIPAMControllerConfiguration struct {
NodeCIDRMaskSize int32 NodeCIDRMaskSize int32
} }
// NodeLifecycleControllerConfiguration contains elements describing NodeLifecycleController.
type NodeLifecycleControllerConfiguration struct { type NodeLifecycleControllerConfiguration struct {
// If set to true enables NoExecute Taints and will evict all not-tolerating // If set to true enables NoExecute Taints and will evict all not-tolerating
// Pod running on Nodes tainted with this kind of Taints. // Pod running on Nodes tainted with this kind of Taints.
...@@ -302,6 +324,8 @@ type NodeLifecycleControllerConfiguration struct { ...@@ -302,6 +324,8 @@ type NodeLifecycleControllerConfiguration struct {
UnhealthyZoneThreshold float32 UnhealthyZoneThreshold float32
} }
// PersistentVolumeBinderControllerConfiguration contains elements describing
// PersistentVolumeBinderController.
type PersistentVolumeBinderControllerConfiguration struct { type PersistentVolumeBinderControllerConfiguration struct {
// pvClaimBinderSyncPeriod is the period for syncing persistent volumes // pvClaimBinderSyncPeriod is the period for syncing persistent volumes
// and persistent volume claims. // and persistent volume claims.
...@@ -310,6 +334,7 @@ type PersistentVolumeBinderControllerConfiguration struct { ...@@ -310,6 +334,7 @@ type PersistentVolumeBinderControllerConfiguration struct {
VolumeConfiguration VolumeConfiguration VolumeConfiguration VolumeConfiguration
} }
// PodGCControllerConfiguration contains elements describing PodGCController.
type PodGCControllerConfiguration struct { type PodGCControllerConfiguration struct {
// terminatedPodGCThreshold is the number of terminated pods that can exist // terminatedPodGCThreshold is the number of terminated pods that can exist
// before the terminated pod garbage collector starts deleting terminated pods. // before the terminated pod garbage collector starts deleting terminated pods.
...@@ -317,6 +342,7 @@ type PodGCControllerConfiguration struct { ...@@ -317,6 +342,7 @@ type PodGCControllerConfiguration struct {
TerminatedPodGCThreshold int32 TerminatedPodGCThreshold int32
} }
// ReplicaSetControllerConfiguration contains elements describing ReplicaSetController.
type ReplicaSetControllerConfiguration struct { type ReplicaSetControllerConfiguration struct {
// concurrentRSSyncs is the number of replica sets that are allowed to sync // concurrentRSSyncs is the number of replica sets that are allowed to sync
// concurrently. Larger number = more responsive replica management, but more // concurrently. Larger number = more responsive replica management, but more
...@@ -324,6 +350,7 @@ type ReplicaSetControllerConfiguration struct { ...@@ -324,6 +350,7 @@ type ReplicaSetControllerConfiguration struct {
ConcurrentRSSyncs int32 ConcurrentRSSyncs int32
} }
// ReplicationControllerConfiguration contains elements describing ReplicationController.
type ReplicationControllerConfiguration struct { type ReplicationControllerConfiguration struct {
// concurrentRCSyncs is the number of replication controllers that are // concurrentRCSyncs is the number of replication controllers that are
// allowed to sync concurrently. Larger number = more responsive replica // allowed to sync concurrently. Larger number = more responsive replica
...@@ -331,6 +358,7 @@ type ReplicationControllerConfiguration struct { ...@@ -331,6 +358,7 @@ type ReplicationControllerConfiguration struct {
ConcurrentRCSyncs int32 ConcurrentRCSyncs int32
} }
// ResourceQuotaControllerConfiguration contains elements describing ResourceQuotaController.
type ResourceQuotaControllerConfiguration struct { type ResourceQuotaControllerConfiguration struct {
// resourceQuotaSyncPeriod is the period for syncing quota usage status // resourceQuotaSyncPeriod is the period for syncing quota usage status
// in the system. // in the system.
...@@ -341,6 +369,7 @@ type ResourceQuotaControllerConfiguration struct { ...@@ -341,6 +369,7 @@ type ResourceQuotaControllerConfiguration struct {
ConcurrentResourceQuotaSyncs int32 ConcurrentResourceQuotaSyncs int32
} }
// SAControllerConfiguration contains elements describing ServiceAccountController.
type SAControllerConfiguration struct { type SAControllerConfiguration struct {
// serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key // serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key
// used to sign service account tokens. // used to sign service account tokens.
...@@ -353,6 +382,7 @@ type SAControllerConfiguration struct { ...@@ -353,6 +382,7 @@ type SAControllerConfiguration struct {
RootCAFile string RootCAFile string
} }
// ServiceControllerConfiguration contains elements describing ServiceController.
type ServiceControllerConfiguration struct { type ServiceControllerConfiguration struct {
// concurrentServiceSyncs is the number of services that are // concurrentServiceSyncs is the number of services that are
// allowed to sync concurrently. Larger number = more responsive service // allowed to sync concurrently. Larger number = more responsive service
...@@ -381,6 +411,7 @@ type VolumeConfiguration struct { ...@@ -381,6 +411,7 @@ type VolumeConfiguration struct {
FlexVolumePluginDir string FlexVolumePluginDir string
} }
// PersistentVolumeRecyclerConfiguration contains elements describing persistent volume plugins.
type PersistentVolumeRecyclerConfiguration struct { type PersistentVolumeRecyclerConfiguration struct {
// maximumRetry is number of retries the PV recycler will execute on failure to recycle // maximumRetry is number of retries the PV recycler will execute on failure to recycle
// PV. // PV.
......
/*
Copyright 2018 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/apis/config"
)
// Important! The public back-and-forth conversion functions for the types in this generic
// package with ComponentConfig 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_GenericControllerManagerConfiguration_To_config_GenericControllerManagerConfiguration is an autogenerated conversion function.
func Convert_v1alpha1_GenericControllerManagerConfiguration_To_config_GenericControllerManagerConfiguration(in *v1alpha1.GenericControllerManagerConfiguration, out *config.GenericControllerManagerConfiguration, s conversion.Scope) error {
return autoConvert_v1alpha1_GenericControllerManagerConfiguration_To_config_GenericControllerManagerConfiguration(in, out, s)
}
// Convert_config_GenericControllerManagerConfiguration_To_v1alpha1_GenericControllerManagerConfiguration is an autogenerated conversion function.
func Convert_config_GenericControllerManagerConfiguration_To_v1alpha1_GenericControllerManagerConfiguration(in *config.GenericControllerManagerConfiguration, out *v1alpha1.GenericControllerManagerConfiguration, s conversion.Scope) error {
return autoConvert_config_GenericControllerManagerConfiguration_To_v1alpha1_GenericControllerManagerConfiguration(in, out, s)
}
// Convert_v1alpha1_KubeCloudSharedConfiguration_To_config_KubeCloudSharedConfiguration is an autogenerated conversion function.
func Convert_v1alpha1_KubeCloudSharedConfiguration_To_config_KubeCloudSharedConfiguration(in *v1alpha1.KubeCloudSharedConfiguration, out *config.KubeCloudSharedConfiguration, s conversion.Scope) error {
return autoConvert_v1alpha1_KubeCloudSharedConfiguration_To_config_KubeCloudSharedConfiguration(in, out, s)
}
// Convert_config_KubeCloudSharedConfiguration_To_v1alpha1_KubeCloudSharedConfiguration is an autogenerated conversion function.
func Convert_config_KubeCloudSharedConfiguration_To_v1alpha1_KubeCloudSharedConfiguration(in *config.KubeCloudSharedConfiguration, out *v1alpha1.KubeCloudSharedConfiguration, s conversion.Scope) error {
return autoConvert_config_KubeCloudSharedConfiguration_To_v1alpha1_KubeCloudSharedConfiguration(in, out, s)
}
// Convert_v1alpha1_ServiceControllerConfiguration_To_config_ServiceControllerConfiguration is an autogenerated conversion function.
func Convert_v1alpha1_ServiceControllerConfiguration_To_config_ServiceControllerConfiguration(in *v1alpha1.ServiceControllerConfiguration, out *config.ServiceControllerConfiguration, s conversion.Scope) error {
return autoConvert_v1alpha1_ServiceControllerConfiguration_To_config_ServiceControllerConfiguration(in, out, s)
}
// Convert_config_ServiceControllerConfiguration_To_v1alpha1_ServiceControllerConfiguration is an autogenerated conversion function.
func Convert_config_ServiceControllerConfiguration_To_v1alpha1_ServiceControllerConfiguration(in *config.ServiceControllerConfiguration, out *v1alpha1.ServiceControllerConfiguration, s conversion.Scope) error {
return autoConvert_config_ServiceControllerConfiguration_To_v1alpha1_ServiceControllerConfiguration(in, out, s)
}
/*
Copyright 2018 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 (
"encoding/json"
"reflect"
"testing"
"k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
kubectrlmgrconfigv1alpha1 "k8s.io/kube-controller-manager/config/v1alpha1"
)
func TestKubeControllerDefaultsRoundTrip(t *testing.T) {
ks1 := &kubectrlmgrconfigv1alpha1.KubeControllerManagerConfiguration{}
SetDefaults_KubeControllerManagerConfiguration(ks1)
cm, err := convertObjToConfigMap("KubeControllerManagerConfiguration", ks1)
if err != nil {
t.Errorf("unexpected ConvertObjToConfigMap error %v", err)
}
ks2 := &kubectrlmgrconfigv1alpha1.KubeControllerManagerConfiguration{}
if err = json.Unmarshal([]byte(cm.Data["KubeControllerManagerConfiguration"]), ks2); err != nil {
t.Errorf("unexpected error unserializing controller manager config %v", err)
}
if !reflect.DeepEqual(ks2, ks1) {
t.Errorf("Expected:\n%#v\n\nGot:\n%#v", ks1, ks2)
}
}
// convertObjToConfigMap converts an object to a ConfigMap.
// This is specifically meant for ComponentConfigs.
func convertObjToConfigMap(name string, obj runtime.Object) (*v1.ConfigMap, error) {
eJSONBytes, err := json.Marshal(obj)
if err != nil {
return nil, err
}
cm := &v1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: name,
},
Data: map[string]string{
name: string(eJSONBytes[:]),
},
}
return cm, nil
}
/*
Copyright 2018 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:conversion-gen=k8s.io/kubernetes/pkg/controller/apis/config
// +k8s:conversion-gen-external-types=k8s.io/kube-controller-manager/config/v1alpha1
// +k8s:defaulter-gen=TypeMeta
// +k8s:defaulter-gen-input=../../../../../vendor/k8s.io/kube-controller-manager/config/v1alpha1
// +groupName=kubecontrollermanager.config.k8s.io
package v1alpha1 // import "k8s.io/kubernetes/pkg/controller/apis/config/v1alpha1"
/*
Copyright 2018 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/schema"
kubectrlmgrconfigv1alpha1 "k8s.io/kube-controller-manager/config/v1alpha1"
)
// GroupName is the group name use in this package
const GroupName = "kubecontrollermanager.config.k8s.io"
// SchemeGroupVersion is group version used to register these objects
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}
var (
localSchemeBuilder = &kubectrlmgrconfigv1alpha1.SchemeBuilder
AddToScheme = localSchemeBuilder.AddToScheme
)
func init() {
// We only register manually written functions here. The registration of the
// generated functions takes place in the generated files. The separation
// makes the code compile even when the generated files are missing.
localSchemeBuilder.Register(addDefaultingFuncs)
}
Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead.
# Contributing guidelines
Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes.
This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/kube-controller-manager](https://git.k8s.io/kubernetes/staging/src/k8s.io/kube-controller-manager) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot).
Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/staging.md) for more information
# Kube-controller-manager
## Purpose
This library contains code to expose kube-controller-manager API.
## Compatibility
There are *NO compatibility guarantees* for this repository, yet. It is in direct support of Kubernetes, so branches
will track Kubernetes and be compatible with that repo. As we more cleanly separate the layers, we will review the
compatibility guarantee. We have a goal to make this easier to use in the future.
## Where does it come from?
`kube-controller-manager` is synced from https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/kube-controller-manager.
Code changes are made in that location, merged into `k8s.io/kubernetes` and later synced here.
## Things you should *NOT* do
1. Directly modify any files under `pkg` in this repo. Those are driven from `k8s.io/kubernetes/staging/src/k8s.io/kube-controller-manager`.
2. Expect compatibility. This repo is changing quickly in direct support of
Kubernetes and the kube-controller-manager API.
# Defined below are the security contacts for this repo.
#
# They are the contact point for the Product Security Team to reach out
# to for triaging and handling of incoming issues.
#
# The below names agree to abide by the
# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy)
# and will be removed and replaced if they violate that agreement.
#
# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE
# INSTRUCTIONS AT https://kubernetes.io/security/
cjcullen
liggitt
luxas
sttts
tallclair
# Kubernetes Community Code of Conduct
Please refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md)
/*
Copyright 2018 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:openapi-gen=true
// +groupName=kubecontrollermanager.config.k8s.io
package v1alpha1 // import "k8s.io/kube-controller-manager/config/v1alpha1"
/*
Copyright 2018 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"
"k8s.io/apimachinery/pkg/runtime/schema"
)
// GroupName is the group name use in this package
const GroupName = "kubecontrollermanager.config.k8s.io"
// SchemeGroupVersion is group version used to register these objects
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}
var (
// SchemeBuilder providers the handle of collects functions that add things to a scheme.
SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
// AddToScheme applies all the stored functions to the scheme. A non-nil error
// indicates that one function failed and the attempt was abandoned.
AddToScheme = SchemeBuilder.AddToScheme
)
func addKnownTypes(scheme *runtime.Scheme) error {
scheme.AddKnownTypes(SchemeGroupVersion,
&KubeControllerManagerConfiguration{},
)
return nil
}
...@@ -22,6 +22,7 @@ import ( ...@@ -22,6 +22,7 @@ import (
apiserverconfigv1alpha1 "k8s.io/apiserver/pkg/apis/config/v1alpha1" apiserverconfigv1alpha1 "k8s.io/apiserver/pkg/apis/config/v1alpha1"
) )
// PersistentVolumeRecyclerConfiguration contains elements describing persistent volume plugins.
type PersistentVolumeRecyclerConfiguration struct { type PersistentVolumeRecyclerConfiguration struct {
// maximumRetry is number of retries the PV recycler will execute on failure to recycle // maximumRetry is number of retries the PV recycler will execute on failure to recycle
// PV. // PV.
...@@ -70,6 +71,7 @@ type VolumeConfiguration struct { ...@@ -70,6 +71,7 @@ type VolumeConfiguration struct {
FlexVolumePluginDir string FlexVolumePluginDir string
} }
// GroupResource describes an group resource.
type GroupResource struct { type GroupResource struct {
// group is the group portion of the GroupResource. // group is the group portion of the GroupResource.
Group string Group string
...@@ -78,13 +80,17 @@ type GroupResource struct { ...@@ -78,13 +80,17 @@ type GroupResource struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// KubeControllerManagerConfiguration contains elements describing kube-controller manager.
type KubeControllerManagerConfiguration struct { type KubeControllerManagerConfiguration struct {
metav1.TypeMeta `json:",inline"` metav1.TypeMeta `json:",inline"`
// Generic holds configuration for a generic controller-manager // Generic holds configuration for a generic controller-manager
Generic GenericControllerManagerConfiguration Generic GenericControllerManagerConfiguration
// KubeCloudSharedConfiguration holds configuration for shared related features // KubeCloudSharedConfiguration holds configuration for shared related features
// both in cloud controller manager and kube-controller manager. // both in cloud controller manager and kube-controller manager.
KubeCloudShared KubeCloudSharedConfiguration KubeCloudShared KubeCloudSharedConfiguration
// AttachDetachControllerConfiguration holds configuration for // AttachDetachControllerConfiguration holds configuration for
// AttachDetachController related features. // AttachDetachController related features.
AttachDetachController AttachDetachControllerConfiguration AttachDetachController AttachDetachControllerConfiguration
...@@ -141,6 +147,7 @@ type KubeControllerManagerConfiguration struct { ...@@ -141,6 +147,7 @@ type KubeControllerManagerConfiguration struct {
ServiceController ServiceControllerConfiguration ServiceController ServiceControllerConfiguration
} }
// GenericControllerManagerConfiguration holds configuration for a generic controller-manager.
type GenericControllerManagerConfiguration struct { type GenericControllerManagerConfiguration struct {
// port is the port that the controller-manager's http service runs on. // port is the port that the controller-manager's http service runs on.
Port int32 Port int32
...@@ -166,6 +173,8 @@ type GenericControllerManagerConfiguration struct { ...@@ -166,6 +173,8 @@ type GenericControllerManagerConfiguration struct {
Debugging apiserverconfigv1alpha1.DebuggingConfiguration Debugging apiserverconfigv1alpha1.DebuggingConfiguration
} }
// KubeCloudSharedConfiguration contains elements shared by both kube-controller manager
// and cloud-controller manager, but not genericconfig.
type KubeCloudSharedConfiguration struct { type KubeCloudSharedConfiguration struct {
// CloudProviderConfiguration holds configuration for CloudProvider related features. // CloudProviderConfiguration holds configuration for CloudProvider related features.
CloudProvider CloudProviderConfiguration CloudProvider CloudProviderConfiguration
...@@ -199,6 +208,7 @@ type KubeCloudSharedConfiguration struct { ...@@ -199,6 +208,7 @@ type KubeCloudSharedConfiguration struct {
NodeSyncPeriod metav1.Duration NodeSyncPeriod metav1.Duration
} }
// AttachDetachControllerConfiguration contains elements describing AttachDetachController.
type AttachDetachControllerConfiguration struct { type AttachDetachControllerConfiguration struct {
// Reconciler runs a periodic loop to reconcile the desired state of the with // Reconciler runs a periodic loop to reconcile the desired state of the with
// the actual state of the world by triggering attach detach operations. // the actual state of the world by triggering attach detach operations.
...@@ -209,6 +219,7 @@ type AttachDetachControllerConfiguration struct { ...@@ -209,6 +219,7 @@ type AttachDetachControllerConfiguration struct {
ReconcilerSyncLoopPeriod metav1.Duration ReconcilerSyncLoopPeriod metav1.Duration
} }
// CloudProviderConfiguration contains basically elements about cloud provider.
type CloudProviderConfiguration struct { type CloudProviderConfiguration struct {
// Name is the provider for cloud services. // Name is the provider for cloud services.
Name string Name string
...@@ -216,6 +227,7 @@ type CloudProviderConfiguration struct { ...@@ -216,6 +227,7 @@ type CloudProviderConfiguration struct {
CloudConfigFile string CloudConfigFile string
} }
// CSRSigningControllerConfiguration contains elements describing CSRSigningController.
type CSRSigningControllerConfiguration struct { type CSRSigningControllerConfiguration struct {
// clusterSigningCertFile is the filename containing a PEM-encoded // clusterSigningCertFile is the filename containing a PEM-encoded
// X509 CA certificate used to issue cluster-scoped certificates // X509 CA certificate used to issue cluster-scoped certificates
...@@ -228,6 +240,7 @@ type CSRSigningControllerConfiguration struct { ...@@ -228,6 +240,7 @@ type CSRSigningControllerConfiguration struct {
ClusterSigningDuration metav1.Duration ClusterSigningDuration metav1.Duration
} }
// DaemonSetControllerConfiguration contains elements describing DaemonSetController.
type DaemonSetControllerConfiguration struct { type DaemonSetControllerConfiguration struct {
// concurrentDaemonSetSyncs is the number of daemonset objects that are // concurrentDaemonSetSyncs is the number of daemonset objects that are
// allowed to sync concurrently. Larger number = more responsive daemonset, // allowed to sync concurrently. Larger number = more responsive daemonset,
...@@ -235,6 +248,7 @@ type DaemonSetControllerConfiguration struct { ...@@ -235,6 +248,7 @@ type DaemonSetControllerConfiguration struct {
ConcurrentDaemonSetSyncs int32 ConcurrentDaemonSetSyncs int32
} }
// DeploymentControllerConfiguration contains elements describing DeploymentController.
type DeploymentControllerConfiguration struct { type DeploymentControllerConfiguration struct {
// concurrentDeploymentSyncs is the number of deployment objects that are // concurrentDeploymentSyncs is the number of deployment objects that are
// allowed to sync concurrently. Larger number = more responsive deployments, // allowed to sync concurrently. Larger number = more responsive deployments,
...@@ -244,10 +258,11 @@ type DeploymentControllerConfiguration struct { ...@@ -244,10 +258,11 @@ type DeploymentControllerConfiguration struct {
DeploymentControllerSyncPeriod metav1.Duration DeploymentControllerSyncPeriod metav1.Duration
} }
// DeprecatedControllerConfiguration contains elements be deprecated.
type DeprecatedControllerConfiguration struct { type DeprecatedControllerConfiguration struct {
// DEPRECATED: deletingPodsQps is the number of nodes per second on which pods are deleted in // DEPRECATED: deletingPodsQps is the number of nodes per second on which pods are deleted in
// case of node failure. // case of node failure.
DeletingPodsQps float32 DeletingPodsQPS float32
// DEPRECATED: deletingPodsBurst is the number of nodes on which pods are bursty deleted in // DEPRECATED: deletingPodsBurst is the number of nodes on which pods are bursty deleted in
// case of node failure. For more details look into RateLimiter. // case of node failure. For more details look into RateLimiter.
DeletingPodsBurst int32 DeletingPodsBurst int32
...@@ -256,6 +271,7 @@ type DeprecatedControllerConfiguration struct { ...@@ -256,6 +271,7 @@ type DeprecatedControllerConfiguration struct {
RegisterRetryCount int32 RegisterRetryCount int32
} }
// EndpointControllerConfiguration contains elements describing EndpointController.
type EndpointControllerConfiguration struct { type EndpointControllerConfiguration struct {
// concurrentEndpointSyncs is the number of endpoint syncing operations // concurrentEndpointSyncs is the number of endpoint syncing operations
// that will be done concurrently. Larger number = faster endpoint updating, // that will be done concurrently. Larger number = faster endpoint updating,
...@@ -263,6 +279,7 @@ type EndpointControllerConfiguration struct { ...@@ -263,6 +279,7 @@ type EndpointControllerConfiguration struct {
ConcurrentEndpointSyncs int32 ConcurrentEndpointSyncs int32
} }
// GarbageCollectorControllerConfiguration contains elements describing GarbageCollectorController.
type GarbageCollectorControllerConfiguration struct { type GarbageCollectorControllerConfiguration struct {
// enables the generic garbage collector. MUST be synced with the // enables the generic garbage collector. MUST be synced with the
// corresponding flag of the kube-apiserver. WARNING: the generic garbage // corresponding flag of the kube-apiserver. WARNING: the generic garbage
...@@ -275,6 +292,7 @@ type GarbageCollectorControllerConfiguration struct { ...@@ -275,6 +292,7 @@ type GarbageCollectorControllerConfiguration struct {
GCIgnoredResources []GroupResource GCIgnoredResources []GroupResource
} }
// HPAControllerConfiguration contains elements describing HPAController.
type HPAControllerConfiguration struct { type HPAControllerConfiguration struct {
// HorizontalPodAutoscalerSyncPeriod is the period for syncing the number of // HorizontalPodAutoscalerSyncPeriod is the period for syncing the number of
// pods in horizontal pod autoscaler. // pods in horizontal pod autoscaler.
...@@ -303,6 +321,7 @@ type HPAControllerConfiguration struct { ...@@ -303,6 +321,7 @@ type HPAControllerConfiguration struct {
HorizontalPodAutoscalerInitialReadinessDelay metav1.Duration HorizontalPodAutoscalerInitialReadinessDelay metav1.Duration
} }
// JobControllerConfiguration contains elements describing JobController.
type JobControllerConfiguration struct { type JobControllerConfiguration struct {
// concurrentJobSyncs is the number of job objects that are // concurrentJobSyncs is the number of job objects that are
// allowed to sync concurrently. Larger number = more responsive jobs, // allowed to sync concurrently. Larger number = more responsive jobs,
...@@ -310,6 +329,7 @@ type JobControllerConfiguration struct { ...@@ -310,6 +329,7 @@ type JobControllerConfiguration struct {
ConcurrentJobSyncs int32 ConcurrentJobSyncs int32
} }
// NamespaceControllerConfiguration contains elements describing NamespaceController.
type NamespaceControllerConfiguration struct { type NamespaceControllerConfiguration struct {
// namespaceSyncPeriod is the period for syncing namespace life-cycle // namespaceSyncPeriod is the period for syncing namespace life-cycle
// updates. // updates.
...@@ -319,6 +339,7 @@ type NamespaceControllerConfiguration struct { ...@@ -319,6 +339,7 @@ type NamespaceControllerConfiguration struct {
ConcurrentNamespaceSyncs int32 ConcurrentNamespaceSyncs int32
} }
// NodeIPAMControllerConfiguration contains elements describing NodeIpamController.
type NodeIPAMControllerConfiguration struct { type NodeIPAMControllerConfiguration struct {
// serviceCIDR is CIDR Range for Services in cluster. // serviceCIDR is CIDR Range for Services in cluster.
ServiceCIDR string ServiceCIDR string
...@@ -326,6 +347,7 @@ type NodeIPAMControllerConfiguration struct { ...@@ -326,6 +347,7 @@ type NodeIPAMControllerConfiguration struct {
NodeCIDRMaskSize int32 NodeCIDRMaskSize int32
} }
// NodeLifecycleControllerConfiguration contains elements describing NodeLifecycleController.
type NodeLifecycleControllerConfiguration struct { type NodeLifecycleControllerConfiguration struct {
// If set to true enables NoExecute Taints and will evict all not-tolerating // If set to true enables NoExecute Taints and will evict all not-tolerating
// Pod running on Nodes tainted with this kind of Taints. // Pod running on Nodes tainted with this kind of Taints.
...@@ -351,6 +373,8 @@ type NodeLifecycleControllerConfiguration struct { ...@@ -351,6 +373,8 @@ type NodeLifecycleControllerConfiguration struct {
UnhealthyZoneThreshold float32 UnhealthyZoneThreshold float32
} }
// PersistentVolumeBinderControllerConfiguration contains elements describing
// PersistentVolumeBinderController.
type PersistentVolumeBinderControllerConfiguration struct { type PersistentVolumeBinderControllerConfiguration struct {
// pvClaimBinderSyncPeriod is the period for syncing persistent volumes // pvClaimBinderSyncPeriod is the period for syncing persistent volumes
// and persistent volume claims. // and persistent volume claims.
...@@ -359,6 +383,7 @@ type PersistentVolumeBinderControllerConfiguration struct { ...@@ -359,6 +383,7 @@ type PersistentVolumeBinderControllerConfiguration struct {
VolumeConfiguration VolumeConfiguration VolumeConfiguration VolumeConfiguration
} }
// PodGCControllerConfiguration contains elements describing PodGCController.
type PodGCControllerConfiguration struct { type PodGCControllerConfiguration struct {
// terminatedPodGCThreshold is the number of terminated pods that can exist // terminatedPodGCThreshold is the number of terminated pods that can exist
// before the terminated pod garbage collector starts deleting terminated pods. // before the terminated pod garbage collector starts deleting terminated pods.
...@@ -366,6 +391,7 @@ type PodGCControllerConfiguration struct { ...@@ -366,6 +391,7 @@ type PodGCControllerConfiguration struct {
TerminatedPodGCThreshold int32 TerminatedPodGCThreshold int32
} }
// ReplicaSetControllerConfiguration contains elements describing ReplicaSetController.
type ReplicaSetControllerConfiguration struct { type ReplicaSetControllerConfiguration struct {
// concurrentRSSyncs is the number of replica sets that are allowed to sync // concurrentRSSyncs is the number of replica sets that are allowed to sync
// concurrently. Larger number = more responsive replica management, but more // concurrently. Larger number = more responsive replica management, but more
...@@ -373,6 +399,7 @@ type ReplicaSetControllerConfiguration struct { ...@@ -373,6 +399,7 @@ type ReplicaSetControllerConfiguration struct {
ConcurrentRSSyncs int32 ConcurrentRSSyncs int32
} }
// ReplicationControllerConfiguration contains elements describing ReplicationController.
type ReplicationControllerConfiguration struct { type ReplicationControllerConfiguration struct {
// concurrentRCSyncs is the number of replication controllers that are // concurrentRCSyncs is the number of replication controllers that are
// allowed to sync concurrently. Larger number = more responsive replica // allowed to sync concurrently. Larger number = more responsive replica
...@@ -380,6 +407,7 @@ type ReplicationControllerConfiguration struct { ...@@ -380,6 +407,7 @@ type ReplicationControllerConfiguration struct {
ConcurrentRCSyncs int32 ConcurrentRCSyncs int32
} }
// ResourceQuotaControllerConfiguration contains elements describing ResourceQuotaController.
type ResourceQuotaControllerConfiguration struct { type ResourceQuotaControllerConfiguration struct {
// resourceQuotaSyncPeriod is the period for syncing quota usage status // resourceQuotaSyncPeriod is the period for syncing quota usage status
// in the system. // in the system.
...@@ -390,6 +418,7 @@ type ResourceQuotaControllerConfiguration struct { ...@@ -390,6 +418,7 @@ type ResourceQuotaControllerConfiguration struct {
ConcurrentResourceQuotaSyncs int32 ConcurrentResourceQuotaSyncs int32
} }
// SAControllerConfiguration contains elements describing ServiceAccountController.
type SAControllerConfiguration struct { type SAControllerConfiguration struct {
// serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key // serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key
// used to sign service account tokens. // used to sign service account tokens.
...@@ -402,6 +431,7 @@ type SAControllerConfiguration struct { ...@@ -402,6 +431,7 @@ type SAControllerConfiguration struct {
RootCAFile string RootCAFile string
} }
// ServiceControllerConfiguration contains elements describing ServiceController.
type ServiceControllerConfiguration struct { type ServiceControllerConfiguration struct {
// concurrentServiceSyncs is the number of services that are // concurrentServiceSyncs is the number of services that are
// allowed to sync concurrently. Larger number = more responsive service // allowed to sync concurrently. Larger number = more responsive service
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment