diff --git a/api/api-rules/violation_exceptions.list b/api/api-rules/violation_exceptions.list index 35403d38e84..ef4d73a0520 100644 --- a/api/api-rules/violation_exceptions.list +++ b/api/api-rules/violation_exceptions.list @@ -71,8 +71,6 @@ API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alp API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudProviderConfiguration,Name API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudProviderConfiguration,CloudConfigFile API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DaemonSetControllerConfiguration,ConcurrentDaemonSetSyncs -API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DebuggingConfiguration,EnableProfiling -API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DebuggingConfiguration,EnableContentionProfiling API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeploymentControllerConfiguration,ConcurrentDeploymentSyncs API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeploymentControllerConfiguration,DeploymentControllerSyncPeriod API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeprecatedControllerConfiguration,DeletingPodsQps diff --git a/cmd/cloud-controller-manager/app/options/BUILD b/cmd/cloud-controller-manager/app/options/BUILD index 76023f68eca..4e24624d50a 100644 --- a/cmd/cloud-controller-manager/app/options/BUILD +++ b/cmd/cloud-controller-manager/app/options/BUILD @@ -55,9 +55,9 @@ go_test( embed = [":go_default_library"], deps = [ "//cmd/controller-manager/app/options:go_default_library", - "//pkg/apis/componentconfig:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/diff:go_default_library", + "//staging/src/k8s.io/apiserver/pkg/apis/config:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/options:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", ], diff --git a/cmd/cloud-controller-manager/app/options/options_test.go b/cmd/cloud-controller-manager/app/options/options_test.go index 0f6f54d6eef..84ff245685c 100644 --- a/cmd/cloud-controller-manager/app/options/options_test.go +++ b/cmd/cloud-controller-manager/app/options/options_test.go @@ -26,9 +26,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/diff" + apiserverconfig "k8s.io/apiserver/pkg/apis/config" apiserveroptions "k8s.io/apiserver/pkg/server/options" cmoptions "k8s.io/kubernetes/cmd/controller-manager/app/options" - "k8s.io/kubernetes/pkg/apis/componentconfig" ) func TestDefaultFlags(t *testing.T) { @@ -48,7 +48,7 @@ func TestDefaultFlags(t *testing.T) { KubeAPIQPS: 20.0, KubeAPIBurst: 30, ControllerStartInterval: metav1.Duration{Duration: 0}, - LeaderElection: componentconfig.LeaderElectionConfiguration{ + LeaderElection: apiserverconfig.LeaderElectionConfiguration{ ResourceLock: "endpoints", LeaderElect: true, LeaseDuration: metav1.Duration{Duration: 15 * time.Second}, @@ -145,7 +145,7 @@ func TestAddFlags(t *testing.T) { KubeAPIQPS: 50.0, KubeAPIBurst: 100, ControllerStartInterval: metav1.Duration{Duration: 2 * time.Minute}, - LeaderElection: componentconfig.LeaderElectionConfiguration{ + LeaderElection: apiserverconfig.LeaderElectionConfiguration{ ResourceLock: "configmap", LeaderElect: false, LeaseDuration: metav1.Duration{Duration: 30 * time.Second}, diff --git a/cmd/controller-manager/app/BUILD b/cmd/controller-manager/app/BUILD index 93562acffb4..f01ddd19eac 100644 --- a/cmd/controller-manager/app/BUILD +++ b/cmd/controller-manager/app/BUILD @@ -11,9 +11,9 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/api/legacyscheme:go_default_library", - "//pkg/apis/componentconfig:go_default_library", "//pkg/util/configz:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//staging/src/k8s.io/apiserver/pkg/apis/config:go_default_library", "//staging/src/k8s.io/apiserver/pkg/endpoints/filters:go_default_library", "//staging/src/k8s.io/apiserver/pkg/endpoints/request:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server:go_default_library", diff --git a/cmd/controller-manager/app/options/BUILD b/cmd/controller-manager/app/options/BUILD index 28b68c40208..6879f60d085 100644 --- a/cmd/controller-manager/app/options/BUILD +++ b/cmd/controller-manager/app/options/BUILD @@ -17,6 +17,7 @@ go_library( "//pkg/apis/componentconfig:go_default_library", "//pkg/client/leaderelectionconfig:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//staging/src/k8s.io/apiserver/pkg/apis/config:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/options:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", ], diff --git a/cmd/controller-manager/app/options/debugging.go b/cmd/controller-manager/app/options/debugging.go index fefb015918f..e459b6d4525 100644 --- a/cmd/controller-manager/app/options/debugging.go +++ b/cmd/controller-manager/app/options/debugging.go @@ -19,7 +19,7 @@ package options import ( "github.com/spf13/pflag" - "k8s.io/kubernetes/pkg/apis/componentconfig" + apiserverconfig "k8s.io/apiserver/pkg/apis/config" ) // DebuggingOptions holds the Debugging options. @@ -41,7 +41,7 @@ func (o *DebuggingOptions) AddFlags(fs *pflag.FlagSet) { } // ApplyTo fills up Debugging config with options. -func (o *DebuggingOptions) ApplyTo(cfg *componentconfig.DebuggingConfiguration) error { +func (o *DebuggingOptions) ApplyTo(cfg *apiserverconfig.DebuggingConfiguration) error { if o == nil { return nil } diff --git a/cmd/controller-manager/app/options/generic.go b/cmd/controller-manager/app/options/generic.go index 40d6631749c..66523abb730 100644 --- a/cmd/controller-manager/app/options/generic.go +++ b/cmd/controller-manager/app/options/generic.go @@ -20,6 +20,7 @@ import ( "github.com/spf13/pflag" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apiserverconfig "k8s.io/apiserver/pkg/apis/config" "k8s.io/kubernetes/pkg/apis/componentconfig" "k8s.io/kubernetes/pkg/client/leaderelectionconfig" ) @@ -31,7 +32,7 @@ type GenericComponentConfigOptions struct { KubeAPIQPS float32 KubeAPIBurst int32 ControllerStartInterval metav1.Duration - LeaderElection componentconfig.LeaderElectionConfiguration + LeaderElection apiserverconfig.LeaderElectionConfiguration } // NewGenericComponentConfigOptions returns generic configuration default values for both diff --git a/cmd/controller-manager/app/serve.go b/cmd/controller-manager/app/serve.go index a6bffbf47a2..a7bd56d08f4 100644 --- a/cmd/controller-manager/app/serve.go +++ b/cmd/controller-manager/app/serve.go @@ -22,6 +22,7 @@ import ( "github.com/prometheus/client_golang/prometheus" + apiserverconfig "k8s.io/apiserver/pkg/apis/config" genericapifilters "k8s.io/apiserver/pkg/endpoints/filters" apirequest "k8s.io/apiserver/pkg/endpoints/request" apiserver "k8s.io/apiserver/pkg/server" @@ -30,7 +31,6 @@ import ( "k8s.io/apiserver/pkg/server/mux" "k8s.io/apiserver/pkg/server/routes" "k8s.io/kubernetes/pkg/api/legacyscheme" - "k8s.io/kubernetes/pkg/apis/componentconfig" "k8s.io/kubernetes/pkg/util/configz" ) @@ -48,7 +48,7 @@ func BuildHandlerChain(apiHandler http.Handler, authorizationInfo *apiserver.Aut } // NewBaseHandler takes in CompletedConfig and returns a handler. -func NewBaseHandler(c *componentconfig.DebuggingConfiguration) *mux.PathRecorderMux { +func NewBaseHandler(c *apiserverconfig.DebuggingConfiguration) *mux.PathRecorderMux { mux := mux.NewPathRecorderMux("controller-manager") healthz.InstallHandler(mux) if c.EnableProfiling { diff --git a/cmd/kube-controller-manager/app/options/BUILD b/cmd/kube-controller-manager/app/options/BUILD index 8c58928317c..3e3900a5aaa 100644 --- a/cmd/kube-controller-manager/app/options/BUILD +++ b/cmd/kube-controller-manager/app/options/BUILD @@ -79,6 +79,7 @@ go_test( "//pkg/apis/componentconfig:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/diff:go_default_library", + "//staging/src/k8s.io/apiserver/pkg/apis/config:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/options:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", ], diff --git a/cmd/kube-controller-manager/app/options/options_test.go b/cmd/kube-controller-manager/app/options/options_test.go index 31962408f28..c5c4b83a0ba 100644 --- a/cmd/kube-controller-manager/app/options/options_test.go +++ b/cmd/kube-controller-manager/app/options/options_test.go @@ -27,6 +27,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/diff" + apiserverconfig "k8s.io/apiserver/pkg/apis/config" apiserveroptions "k8s.io/apiserver/pkg/server/options" cmoptions "k8s.io/kubernetes/cmd/controller-manager/app/options" "k8s.io/kubernetes/pkg/apis/componentconfig" @@ -130,7 +131,7 @@ func TestAddFlags(t *testing.T) { KubeAPIQPS: 50.0, KubeAPIBurst: 100, ControllerStartInterval: metav1.Duration{Duration: 2 * time.Minute}, - LeaderElection: componentconfig.LeaderElectionConfiguration{ + LeaderElection: apiserverconfig.LeaderElectionConfiguration{ ResourceLock: "configmap", LeaderElect: false, LeaseDuration: metav1.Duration{Duration: 30 * time.Second}, diff --git a/cmd/kube-scheduler/app/options/BUILD b/cmd/kube-scheduler/app/options/BUILD index 0a465399768..41622a6efeb 100644 --- a/cmd/kube-scheduler/app/options/BUILD +++ b/cmd/kube-scheduler/app/options/BUILD @@ -19,6 +19,7 @@ go_library( "//pkg/client/leaderelectionconfig:go_default_library", "//pkg/scheduler/factory:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/apis/config:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", @@ -66,6 +67,7 @@ go_test( "//cmd/controller-manager/app/options:go_default_library", "//cmd/kube-scheduler/app/config:go_default_library", "//pkg/apis/componentconfig:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/apis/config:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library", ], ) diff --git a/cmd/kube-scheduler/app/options/options.go b/cmd/kube-scheduler/app/options/options.go index cb98f5e3ecf..08990fda362 100644 --- a/cmd/kube-scheduler/app/options/options.go +++ b/cmd/kube-scheduler/app/options/options.go @@ -27,6 +27,7 @@ import ( "github.com/spf13/pflag" corev1 "k8s.io/api/core/v1" + apimachineryconfig "k8s.io/apimachinery/pkg/apis/config" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/uuid" apiserveroptions "k8s.io/apiserver/pkg/server/options" @@ -262,7 +263,7 @@ func makeLeaderElectionConfig(config componentconfig.KubeSchedulerLeaderElection // createClients creates a kube client and an event client from the given config and masterOverride. // TODO remove masterOverride when CLI flags are removed. -func createClients(config componentconfig.ClientConnectionConfiguration, masterOverride string, timeout time.Duration) (clientset.Interface, clientset.Interface, v1core.EventsGetter, error) { +func createClients(config apimachineryconfig.ClientConnectionConfiguration, masterOverride string, timeout time.Duration) (clientset.Interface, clientset.Interface, v1core.EventsGetter, error) { if len(config.Kubeconfig) == 0 && len(masterOverride) == 0 { glog.Warningf("Neither --kubeconfig nor --master was specified. Using default API client. This might not work.") } diff --git a/cmd/kube-scheduler/app/options/options_test.go b/cmd/kube-scheduler/app/options/options_test.go index e241822bf43..e2a53d8deef 100644 --- a/cmd/kube-scheduler/app/options/options_test.go +++ b/cmd/kube-scheduler/app/options/options_test.go @@ -26,6 +26,7 @@ import ( "strings" "testing" + apimachineryconfig "k8s.io/apimachinery/pkg/apis/config" "k8s.io/kubernetes/pkg/apis/componentconfig" ) @@ -141,7 +142,7 @@ users: name: "kubeconfig flag", options: &Options{ ComponentConfig: componentconfig.KubeSchedulerConfiguration{ - ClientConnection: componentconfig.ClientConnectionConfiguration{ + ClientConnection: apimachineryconfig.ClientConnectionConfiguration{ Kubeconfig: flagKubeconfig}}}, expectedUsername: "flag", }, diff --git a/pkg/apis/componentconfig/BUILD b/pkg/apis/componentconfig/BUILD index 9cecbdd630f..5203a374b80 100644 --- a/pkg/apis/componentconfig/BUILD +++ b/pkg/apis/componentconfig/BUILD @@ -18,10 +18,12 @@ go_library( importpath = "k8s.io/kubernetes/pkg/apis/componentconfig", deps = [ "//staging/src/k8s.io/api/core/v1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/apis/config:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library", + "//staging/src/k8s.io/apiserver/pkg/apis/config:go_default_library", ], ) diff --git a/pkg/apis/componentconfig/types.go b/pkg/apis/componentconfig/types.go index c64523ed16b..526ec867e9b 100644 --- a/pkg/apis/componentconfig/types.go +++ b/pkg/apis/componentconfig/types.go @@ -17,25 +17,11 @@ limitations under the License. package componentconfig import ( + apimachineryconfig "k8s.io/apimachinery/pkg/apis/config" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apiserverconfig "k8s.io/apiserver/pkg/apis/config" ) -// ClientConnectionConfiguration contains details for constructing a client. -type ClientConnectionConfiguration struct { - // kubeconfig is the path to a KubeConfig file. - Kubeconfig string - // acceptContentTypes defines the Accept header sent by clients when connecting to a server, overriding the - // default value of 'application/json'. This field will control all connections to the server used by a particular - // client. - AcceptContentTypes string - // contentType is the content type used when sending data to the server from this client. - ContentType string - // qps controls the number of queries per second allowed for this connection. - QPS float32 - // burst allows extra queries to accumulate when a client is exceeding its rate. - Burst int32 -} - // SchedulerPolicyConfigMapKey defines the key of the element in the // scheduler's policy ConfigMap that contains scheduler's policy config. const SchedulerPolicyConfigMapKey string = "policy.cfg" @@ -79,6 +65,11 @@ type SchedulerAlgorithmSource struct { type KubeSchedulerConfiguration struct { metav1.TypeMeta + // DebuggingConfiguration holds profiling- and debugging-related fields + // TODO: DebuggingConfiguration is inlined because it's been like that earlier. + // We might consider making it a "real" sub-struct. + apiserverconfig.DebuggingConfiguration + // schedulerName is name of the scheduler, used to select which pods // will be processed by this scheduler, based on pod's "spec.SchedulerName". SchedulerName string @@ -94,19 +85,13 @@ type KubeSchedulerConfiguration struct { // ClientConnection specifies the kubeconfig file and client connection // settings for the proxy server to use when communicating with the apiserver. - ClientConnection ClientConnectionConfiguration + ClientConnection apimachineryconfig.ClientConnectionConfiguration // HealthzBindAddress is the IP address and port for the health check server to serve on, // defaulting to 0.0.0.0:10251 HealthzBindAddress string // MetricsBindAddress is the IP address and port for the metrics server to // serve on, defaulting to 0.0.0.0:10251. MetricsBindAddress string - // EnableProfiling enables profiling via web interface on /debug/pprof - // handler. Profiling handlers will be handled by metrics server. - EnableProfiling bool - // EnableContentionProfiling enables lock contention profiling, if - // EnableProfiling is true. - EnableContentionProfiling bool // Indicate the "all topologies" set for empty topologyKey when it's used for PreferredDuringScheduling pod anti-affinity. // DEPRECATED: This is no longer used. @@ -119,7 +104,7 @@ type KubeSchedulerConfiguration struct { // KubeSchedulerLeaderElectionConfiguration expands LeaderElectionConfiguration // to include scheduler specific configuration. type KubeSchedulerLeaderElectionConfiguration struct { - LeaderElectionConfiguration + apiserverconfig.LeaderElectionConfiguration // LockObjectNamespace defines the namespace of the lock object LockObjectNamespace string @@ -127,34 +112,6 @@ type KubeSchedulerLeaderElectionConfiguration struct { LockObjectName string } -// LeaderElectionConfiguration defines the configuration of leader election -// clients for components that can run with leader election enabled. -type LeaderElectionConfiguration struct { - // leaderElect enables a leader election client to gain leadership - // before executing the main loop. Enable this when running replicated - // components for high availability. - LeaderElect bool - // leaseDuration is the duration that non-leader candidates will wait - // after observing a leadership renewal until attempting to acquire - // leadership of a led but unrenewed leader slot. This is effectively the - // maximum duration that a leader can be stopped before it is replaced - // by another candidate. This is only applicable if leader election is - // enabled. - LeaseDuration metav1.Duration - // renewDeadline is the interval between attempts by the acting master to - // renew a leadership slot before it stops leading. This must be less - // than or equal to the lease duration. This is only applicable if leader - // election is enabled. - RenewDeadline metav1.Duration - // retryPeriod is the duration the clients should wait between attempting - // acquisition and renewal of a leadership. This is only applicable if - // leader election is enabled. - RetryPeriod metav1.Duration - // resourceLock indicates the resource object type that will be used to lock - // during leader election cycles. - ResourceLock string -} - type GroupResource struct { // group is the group portion of the GroupResource. Group string @@ -170,7 +127,7 @@ type KubeControllerManagerConfiguration struct { // CloudProviderConfiguration holds configuration for CloudProvider related features. CloudProvider CloudProviderConfiguration // DebuggingConfiguration holds configuration for Debugging related features. - Debugging DebuggingConfiguration + Debugging apiserverconfig.DebuggingConfiguration // GenericComponentConfiguration holds configuration for GenericComponent // related features both in cloud controller manager and kube-controller manager. GenericComponent GenericComponentConfiguration @@ -252,7 +209,7 @@ type CloudControllerManagerConfiguration struct { // CloudProviderConfiguration holds configuration for CloudProvider related features. CloudProvider CloudProviderConfiguration // DebuggingConfiguration holds configuration for Debugging related features. - Debugging DebuggingConfiguration + Debugging apiserverconfig.DebuggingConfiguration // GenericComponentConfiguration holds configuration for GenericComponent // related features both in cloud controller manager and kube-controller manager. GenericComponent GenericComponentConfiguration @@ -273,14 +230,6 @@ type CloudProviderConfiguration struct { CloudConfigFile string } -type DebuggingConfiguration struct { - // enableProfiling enables profiling via web interface host:port/debug/pprof/ - EnableProfiling bool - // EnableContentionProfiling enables lock contention profiling, if - // EnableProfiling is true. - EnableContentionProfiling bool -} - type GenericComponentConfiguration struct { // minResyncPeriod is the resync period in reflectors; will be random between // minResyncPeriod and 2*minResyncPeriod. @@ -294,7 +243,7 @@ type GenericComponentConfiguration struct { // How long to wait between starting controller managers ControllerStartInterval metav1.Duration // leaderElection defines the configuration of leader election client. - LeaderElection LeaderElectionConfiguration + LeaderElection apiserverconfig.LeaderElectionConfiguration } type KubeCloudSharedConfiguration struct { diff --git a/pkg/apis/componentconfig/v1alpha1/BUILD b/pkg/apis/componentconfig/v1alpha1/BUILD index 3b7896df3da..71c192ec911 100644 --- a/pkg/apis/componentconfig/v1alpha1/BUILD +++ b/pkg/apis/componentconfig/v1alpha1/BUILD @@ -23,10 +23,12 @@ go_library( "//pkg/apis/core:go_default_library", "//pkg/kubelet/apis:go_default_library", "//pkg/master/ports:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/apis/config/v1alpha1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/conversion:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//staging/src/k8s.io/apiserver/pkg/apis/config/v1alpha1:go_default_library", "//vendor/k8s.io/utils/pointer:go_default_library", ], ) diff --git a/pkg/apis/componentconfig/v1alpha1/defaults.go b/pkg/apis/componentconfig/v1alpha1/defaults.go index e44b7447e62..089593b1a76 100644 --- a/pkg/apis/componentconfig/v1alpha1/defaults.go +++ b/pkg/apis/componentconfig/v1alpha1/defaults.go @@ -21,8 +21,10 @@ import ( "strconv" "time" + apimachineryconfigv1alpha1 "k8s.io/apimachinery/pkg/apis/config/v1alpha1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kruntime "k8s.io/apimachinery/pkg/runtime" + apiserverconfigv1alpha1 "k8s.io/apiserver/pkg/apis/config/v1alpha1" api "k8s.io/kubernetes/pkg/apis/core" kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" "k8s.io/kubernetes/pkg/master/ports" @@ -163,6 +165,9 @@ func SetDefaults_GenericComponentConfiguration(obj *GenericComponentConfiguratio if obj.ControllerStartInterval == zero { obj.ControllerStartInterval = metav1.Duration{Duration: 0 * time.Second} } + + // Use the default LeaderElectionConfiguration options + apiserverconfigv1alpha1.RecommendedDefaultLeaderElectionConfiguration(&obj.LeaderElection) } func SetDefaults_KubeCloudSharedConfiguration(obj *KubeCloudSharedConfiguration) { @@ -254,12 +259,10 @@ func SetDefaults_KubeSchedulerConfiguration(obj *KubeSchedulerConfiguration) { obj.MetricsBindAddress = net.JoinHostPort("0.0.0.0", strconv.Itoa(ports.SchedulerPort)) } - if len(obj.ClientConnection.ContentType) == 0 { - obj.ClientConnection.ContentType = "application/vnd.kubernetes.protobuf" - } if obj.ClientConnection.QPS == 0.0 { obj.ClientConnection.QPS = 50.0 } + if obj.ClientConnection.Burst == 0 { obj.ClientConnection.Burst = 100 } @@ -274,24 +277,8 @@ func SetDefaults_KubeSchedulerConfiguration(obj *KubeSchedulerConfiguration) { if len(obj.FailureDomains) == 0 { obj.FailureDomains = kubeletapis.DefaultFailureDomains } -} -func SetDefaults_LeaderElectionConfiguration(obj *LeaderElectionConfiguration) { - zero := metav1.Duration{} - if obj.LeaseDuration == zero { - obj.LeaseDuration = metav1.Duration{Duration: 15 * time.Second} - } - if obj.RenewDeadline == zero { - obj.RenewDeadline = metav1.Duration{Duration: 10 * time.Second} - } - if obj.RetryPeriod == zero { - obj.RetryPeriod = metav1.Duration{Duration: 2 * time.Second} - } - if obj.ResourceLock == "" { - // obj.ResourceLock = rl.EndpointsResourceLock - obj.ResourceLock = "endpoints" - } - if obj.LeaderElect == nil { - obj.LeaderElect = utilpointer.BoolPtr(true) - } + // Use the default ClientConnectionConfiguration and LeaderElectionConfiguration options + apimachineryconfigv1alpha1.RecommendedDefaultClientConnectionConfiguration(&obj.ClientConnection) + apiserverconfigv1alpha1.RecommendedDefaultLeaderElectionConfiguration(&obj.LeaderElection.LeaderElectionConfiguration) } diff --git a/pkg/apis/componentconfig/v1alpha1/doc.go b/pkg/apis/componentconfig/v1alpha1/doc.go index e3d63571e58..0cd4bdf9c46 100644 --- a/pkg/apis/componentconfig/v1alpha1/doc.go +++ b/pkg/apis/componentconfig/v1alpha1/doc.go @@ -14,8 +14,15 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Note: The referenced generic ComponentConfig packages with conversions +// between the types (e.g. the external package) needs to be given as an +// input to conversion-gen for it to find the native conversation funcs to +// call. + // +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/componentconfig +// +k8s:conversion-gen=k8s.io/apimachinery/pkg/apis/config/v1alpha1 +// +k8s:conversion-gen=k8s.io/apiserver/pkg/apis/config/v1alpha1 // +k8s:openapi-gen=true // +k8s:defaulter-gen=TypeMeta diff --git a/pkg/apis/componentconfig/v1alpha1/types.go b/pkg/apis/componentconfig/v1alpha1/types.go index 07c0236e02a..c6077a638fb 100644 --- a/pkg/apis/componentconfig/v1alpha1/types.go +++ b/pkg/apis/componentconfig/v1alpha1/types.go @@ -17,26 +17,11 @@ limitations under the License. package v1alpha1 import ( + apimachineryconfigv1alpha1 "k8s.io/apimachinery/pkg/apis/config/v1alpha1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + apiserverconfigv1alpha1 "k8s.io/apiserver/pkg/apis/config/v1alpha1" ) -// ClientConnectionConfiguration contains details for constructing a client. -// TODO: This struct should be referenced from k8s.io/apimachinery/pkg/apis/config instead. -type ClientConnectionConfiguration struct { - // kubeconfig is the path to a KubeConfig file. - Kubeconfig string `json:"kubeconfig"` - // acceptContentTypes defines the Accept header sent by clients when connecting to a server, overriding the - // default value of 'application/json'. This field will control all connections to the server used by a particular - // client. - AcceptContentTypes string `json:"acceptContentTypes"` - // contentType is the content type used when sending data to the server from this client. - ContentType string `json:"contentType"` - // qps controls the number of queries per second allowed for this connection. - QPS float32 `json:"qps"` - // burst allows extra queries to accumulate when a client is exceeding its rate. - Burst int32 `json:"burst"` -} - // SchedulerPolicySource configures a means to obtain a scheduler Policy. One // source field must be specified, and source fields are mutually exclusive. type SchedulerPolicySource struct { @@ -76,6 +61,11 @@ type SchedulerAlgorithmSource struct { type KubeSchedulerConfiguration struct { metav1.TypeMeta `json:",inline"` + // DebuggingConfiguration holds profiling- and debugging-related fields + // TODO: DebuggingConfiguration is inlined because it's been like that earlier. + // We might consider making it a "real" sub-struct. + apiserverconfigv1alpha1.DebuggingConfiguration `json:",inline"` + // SchedulerName is name of the scheduler, used to select which pods // will be processed by this scheduler, based on pod's "spec.SchedulerName". SchedulerName string `json:"schedulerName"` @@ -87,23 +77,18 @@ type KubeSchedulerConfiguration struct { HardPodAffinitySymmetricWeight int32 `json:"hardPodAffinitySymmetricWeight"` // LeaderElection defines the configuration of leader election client. + // TODO: Migrate the kube-scheduler-specific stuff into the generic LeaderElectionConfig? LeaderElection KubeSchedulerLeaderElectionConfiguration `json:"leaderElection"` // ClientConnection specifies the kubeconfig file and client connection // settings for the proxy server to use when communicating with the apiserver. - ClientConnection ClientConnectionConfiguration `json:"clientConnection"` + ClientConnection apimachineryconfigv1alpha1.ClientConnectionConfiguration `json:"clientConnection"` // HealthzBindAddress is the IP address and port for the health check server to serve on, // defaulting to 0.0.0.0:10251 HealthzBindAddress string `json:"healthzBindAddress"` // MetricsBindAddress is the IP address and port for the metrics server to // serve on, defaulting to 0.0.0.0:10251. MetricsBindAddress string `json:"metricsBindAddress"` - // EnableProfiling enables profiling via web interface on /debug/pprof - // handler. Profiling handlers will be handled by metrics server. - EnableProfiling bool `json:"enableProfiling"` - // EnableContentionProfiling enables lock contention profiling, if - // EnableProfiling is true. - EnableContentionProfiling bool `json:"enableContentionProfiling"` // Indicate the "all topologies" set for empty topologyKey when it's used for PreferredDuringScheduling pod anti-affinity. FailureDomains string `json:"failureDomains"` @@ -112,38 +97,10 @@ type KubeSchedulerConfiguration struct { DisablePreemption bool `json:"disablePreemption"` } -// LeaderElectionConfiguration defines the configuration of leader election -// clients for components that can run with leader election enabled. -type LeaderElectionConfiguration struct { - // leaderElect enables a leader election client to gain leadership - // before executing the main loop. Enable this when running replicated - // components for high availability. - LeaderElect *bool `json:"leaderElect"` - // leaseDuration is the duration that non-leader candidates will wait - // after observing a leadership renewal until attempting to acquire - // leadership of a led but unrenewed leader slot. This is effectively the - // maximum duration that a leader can be stopped before it is replaced - // by another candidate. This is only applicable if leader election is - // enabled. - LeaseDuration metav1.Duration `json:"leaseDuration"` - // renewDeadline is the interval between attempts by the acting master to - // renew a leadership slot before it stops leading. This must be less - // than or equal to the lease duration. This is only applicable if leader - // election is enabled. - RenewDeadline metav1.Duration `json:"renewDeadline"` - // retryPeriod is the duration the clients should wait between attempting - // acquisition and renewal of a leadership. This is only applicable if - // leader election is enabled. - RetryPeriod metav1.Duration `json:"retryPeriod"` - // resourceLock indicates the resource object type that will be used to lock - // during leader election cycles. - ResourceLock string `json:"resourceLock"` -} - // KubeSchedulerLeaderElectionConfiguration expands LeaderElectionConfiguration // to include scheduler specific configuration. type KubeSchedulerLeaderElectionConfiguration struct { - LeaderElectionConfiguration `json:",inline"` + apiserverconfigv1alpha1.LeaderElectionConfiguration `json:",inline"` // LockObjectNamespace defines the namespace of the lock object LockObjectNamespace string `json:"lockObjectNamespace"` // LockObjectName defines the lock object name @@ -213,7 +170,7 @@ type KubeControllerManagerConfiguration struct { // CloudProviderConfiguration holds configuration for CloudProvider related features. CloudProvider CloudProviderConfiguration // DebuggingConfiguration holds configuration for Debugging related features. - Debugging DebuggingConfiguration + Debugging apiserverconfigv1alpha1.DebuggingConfiguration // GenericComponentConfiguration holds configuration for GenericComponent // related features both in cloud controller manager and kube-controller manager. GenericComponent GenericComponentConfiguration @@ -295,7 +252,7 @@ type CloudControllerManagerConfiguration struct { // CloudProviderConfiguration holds configuration for CloudProvider related features. CloudProvider CloudProviderConfiguration // DebuggingConfiguration holds configuration for Debugging related features. - Debugging DebuggingConfiguration + Debugging apiserverconfigv1alpha1.DebuggingConfiguration // GenericComponentConfiguration holds configuration for GenericComponent // related features both in cloud controller manager and kube-controller manager. GenericComponent GenericComponentConfiguration @@ -316,14 +273,6 @@ type CloudProviderConfiguration struct { CloudConfigFile string } -type DebuggingConfiguration struct { - // enableProfiling enables profiling via web interface host:port/debug/pprof/ - EnableProfiling bool - // EnableContentionProfiling enables lock contention profiling, if - // EnableProfiling is true. - EnableContentionProfiling bool -} - type GenericComponentConfiguration struct { // minResyncPeriod is the resync period in reflectors; will be random between @@ -338,7 +287,7 @@ type GenericComponentConfiguration struct { // How long to wait between starting controller managers ControllerStartInterval metav1.Duration // leaderElection defines the configuration of leader election client. - LeaderElection LeaderElectionConfiguration + LeaderElection apiserverconfigv1alpha1.LeaderElectionConfiguration } type KubeCloudSharedConfiguration struct { diff --git a/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go b/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go index c0623b2228a..fa6b918215f 100644 --- a/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go +++ b/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go @@ -23,9 +23,11 @@ package v1alpha1 import ( unsafe "unsafe" + apisconfigv1alpha1 "k8s.io/apimachinery/pkg/apis/config/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" + configv1alpha1 "k8s.io/apiserver/pkg/apis/config/v1alpha1" componentconfig "k8s.io/kubernetes/pkg/apis/componentconfig" ) @@ -56,16 +58,6 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*ClientConnectionConfiguration)(nil), (*componentconfig.ClientConnectionConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_ClientConnectionConfiguration_To_componentconfig_ClientConnectionConfiguration(a.(*ClientConnectionConfiguration), b.(*componentconfig.ClientConnectionConfiguration), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*componentconfig.ClientConnectionConfiguration)(nil), (*ClientConnectionConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_componentconfig_ClientConnectionConfiguration_To_v1alpha1_ClientConnectionConfiguration(a.(*componentconfig.ClientConnectionConfiguration), b.(*ClientConnectionConfiguration), scope) - }); err != nil { - return err - } if err := s.AddGeneratedConversionFunc((*CloudControllerManagerConfiguration)(nil), (*componentconfig.CloudControllerManagerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_v1alpha1_CloudControllerManagerConfiguration_To_componentconfig_CloudControllerManagerConfiguration(a.(*CloudControllerManagerConfiguration), b.(*componentconfig.CloudControllerManagerConfiguration), scope) }); err != nil { @@ -96,16 +88,6 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*DebuggingConfiguration)(nil), (*componentconfig.DebuggingConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_DebuggingConfiguration_To_componentconfig_DebuggingConfiguration(a.(*DebuggingConfiguration), b.(*componentconfig.DebuggingConfiguration), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*componentconfig.DebuggingConfiguration)(nil), (*DebuggingConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_componentconfig_DebuggingConfiguration_To_v1alpha1_DebuggingConfiguration(a.(*componentconfig.DebuggingConfiguration), b.(*DebuggingConfiguration), scope) - }); err != nil { - return err - } if err := s.AddGeneratedConversionFunc((*DeploymentControllerConfiguration)(nil), (*componentconfig.DeploymentControllerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_v1alpha1_DeploymentControllerConfiguration_To_componentconfig_DeploymentControllerConfiguration(a.(*DeploymentControllerConfiguration), b.(*componentconfig.DeploymentControllerConfiguration), scope) }); err != nil { @@ -226,16 +208,6 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*LeaderElectionConfiguration)(nil), (*componentconfig.LeaderElectionConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_LeaderElectionConfiguration_To_componentconfig_LeaderElectionConfiguration(a.(*LeaderElectionConfiguration), b.(*componentconfig.LeaderElectionConfiguration), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*componentconfig.LeaderElectionConfiguration)(nil), (*LeaderElectionConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_componentconfig_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(a.(*componentconfig.LeaderElectionConfiguration), b.(*LeaderElectionConfiguration), scope) - }); err != nil { - return err - } if err := s.AddGeneratedConversionFunc((*NamespaceControllerConfiguration)(nil), (*componentconfig.NamespaceControllerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_v1alpha1_NamespaceControllerConfiguration_To_componentconfig_NamespaceControllerConfiguration(a.(*NamespaceControllerConfiguration), b.(*componentconfig.NamespaceControllerConfiguration), scope) }); err != nil { @@ -445,39 +417,11 @@ func Convert_componentconfig_CSRSigningControllerConfiguration_To_v1alpha1_CSRSi return autoConvert_componentconfig_CSRSigningControllerConfiguration_To_v1alpha1_CSRSigningControllerConfiguration(in, out, s) } -func autoConvert_v1alpha1_ClientConnectionConfiguration_To_componentconfig_ClientConnectionConfiguration(in *ClientConnectionConfiguration, out *componentconfig.ClientConnectionConfiguration, s conversion.Scope) error { - out.Kubeconfig = in.Kubeconfig - out.AcceptContentTypes = in.AcceptContentTypes - out.ContentType = in.ContentType - out.QPS = in.QPS - out.Burst = in.Burst - return nil -} - -// Convert_v1alpha1_ClientConnectionConfiguration_To_componentconfig_ClientConnectionConfiguration is an autogenerated conversion function. -func Convert_v1alpha1_ClientConnectionConfiguration_To_componentconfig_ClientConnectionConfiguration(in *ClientConnectionConfiguration, out *componentconfig.ClientConnectionConfiguration, s conversion.Scope) error { - return autoConvert_v1alpha1_ClientConnectionConfiguration_To_componentconfig_ClientConnectionConfiguration(in, out, s) -} - -func autoConvert_componentconfig_ClientConnectionConfiguration_To_v1alpha1_ClientConnectionConfiguration(in *componentconfig.ClientConnectionConfiguration, out *ClientConnectionConfiguration, s conversion.Scope) error { - out.Kubeconfig = in.Kubeconfig - out.AcceptContentTypes = in.AcceptContentTypes - out.ContentType = in.ContentType - out.QPS = in.QPS - out.Burst = in.Burst - return nil -} - -// Convert_componentconfig_ClientConnectionConfiguration_To_v1alpha1_ClientConnectionConfiguration is an autogenerated conversion function. -func Convert_componentconfig_ClientConnectionConfiguration_To_v1alpha1_ClientConnectionConfiguration(in *componentconfig.ClientConnectionConfiguration, out *ClientConnectionConfiguration, s conversion.Scope) error { - return autoConvert_componentconfig_ClientConnectionConfiguration_To_v1alpha1_ClientConnectionConfiguration(in, out, s) -} - func autoConvert_v1alpha1_CloudControllerManagerConfiguration_To_componentconfig_CloudControllerManagerConfiguration(in *CloudControllerManagerConfiguration, out *componentconfig.CloudControllerManagerConfiguration, s conversion.Scope) error { if err := Convert_v1alpha1_CloudProviderConfiguration_To_componentconfig_CloudProviderConfiguration(&in.CloudProvider, &out.CloudProvider, s); err != nil { return err } - if err := Convert_v1alpha1_DebuggingConfiguration_To_componentconfig_DebuggingConfiguration(&in.Debugging, &out.Debugging, s); err != nil { + if err := configv1alpha1.Convert_v1alpha1_DebuggingConfiguration_To_config_DebuggingConfiguration(&in.Debugging, &out.Debugging, s); err != nil { return err } if err := Convert_v1alpha1_GenericComponentConfiguration_To_componentconfig_GenericComponentConfiguration(&in.GenericComponent, &out.GenericComponent, s); err != nil { @@ -502,7 +446,7 @@ func autoConvert_componentconfig_CloudControllerManagerConfiguration_To_v1alpha1 if err := Convert_componentconfig_CloudProviderConfiguration_To_v1alpha1_CloudProviderConfiguration(&in.CloudProvider, &out.CloudProvider, s); err != nil { return err } - if err := Convert_componentconfig_DebuggingConfiguration_To_v1alpha1_DebuggingConfiguration(&in.Debugging, &out.Debugging, s); err != nil { + if err := configv1alpha1.Convert_config_DebuggingConfiguration_To_v1alpha1_DebuggingConfiguration(&in.Debugging, &out.Debugging, s); err != nil { return err } if err := Convert_componentconfig_GenericComponentConfiguration_To_v1alpha1_GenericComponentConfiguration(&in.GenericComponent, &out.GenericComponent, s); err != nil { @@ -565,28 +509,6 @@ func Convert_componentconfig_DaemonSetControllerConfiguration_To_v1alpha1_Daemon return autoConvert_componentconfig_DaemonSetControllerConfiguration_To_v1alpha1_DaemonSetControllerConfiguration(in, out, s) } -func autoConvert_v1alpha1_DebuggingConfiguration_To_componentconfig_DebuggingConfiguration(in *DebuggingConfiguration, out *componentconfig.DebuggingConfiguration, s conversion.Scope) error { - out.EnableProfiling = in.EnableProfiling - out.EnableContentionProfiling = in.EnableContentionProfiling - return nil -} - -// Convert_v1alpha1_DebuggingConfiguration_To_componentconfig_DebuggingConfiguration is an autogenerated conversion function. -func Convert_v1alpha1_DebuggingConfiguration_To_componentconfig_DebuggingConfiguration(in *DebuggingConfiguration, out *componentconfig.DebuggingConfiguration, s conversion.Scope) error { - return autoConvert_v1alpha1_DebuggingConfiguration_To_componentconfig_DebuggingConfiguration(in, out, s) -} - -func autoConvert_componentconfig_DebuggingConfiguration_To_v1alpha1_DebuggingConfiguration(in *componentconfig.DebuggingConfiguration, out *DebuggingConfiguration, s conversion.Scope) error { - out.EnableProfiling = in.EnableProfiling - out.EnableContentionProfiling = in.EnableContentionProfiling - return nil -} - -// Convert_componentconfig_DebuggingConfiguration_To_v1alpha1_DebuggingConfiguration is an autogenerated conversion function. -func Convert_componentconfig_DebuggingConfiguration_To_v1alpha1_DebuggingConfiguration(in *componentconfig.DebuggingConfiguration, out *DebuggingConfiguration, s conversion.Scope) error { - return autoConvert_componentconfig_DebuggingConfiguration_To_v1alpha1_DebuggingConfiguration(in, out, s) -} - func autoConvert_v1alpha1_DeploymentControllerConfiguration_To_componentconfig_DeploymentControllerConfiguration(in *DeploymentControllerConfiguration, out *componentconfig.DeploymentControllerConfiguration, s conversion.Scope) error { out.ConcurrentDeploymentSyncs = in.ConcurrentDeploymentSyncs out.DeploymentControllerSyncPeriod = in.DeploymentControllerSyncPeriod @@ -687,7 +609,7 @@ func autoConvert_v1alpha1_GenericComponentConfiguration_To_componentconfig_Gener out.KubeAPIQPS = in.KubeAPIQPS out.KubeAPIBurst = in.KubeAPIBurst out.ControllerStartInterval = in.ControllerStartInterval - if err := Convert_v1alpha1_LeaderElectionConfiguration_To_componentconfig_LeaderElectionConfiguration(&in.LeaderElection, &out.LeaderElection, s); err != nil { + if err := configv1alpha1.Convert_v1alpha1_LeaderElectionConfiguration_To_config_LeaderElectionConfiguration(&in.LeaderElection, &out.LeaderElection, s); err != nil { return err } return nil @@ -704,7 +626,7 @@ func autoConvert_componentconfig_GenericComponentConfiguration_To_v1alpha1_Gener out.KubeAPIQPS = in.KubeAPIQPS out.KubeAPIBurst = in.KubeAPIBurst out.ControllerStartInterval = in.ControllerStartInterval - if err := Convert_componentconfig_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(&in.LeaderElection, &out.LeaderElection, s); err != nil { + if err := configv1alpha1.Convert_config_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(&in.LeaderElection, &out.LeaderElection, s); err != nil { return err } return nil @@ -839,7 +761,7 @@ func autoConvert_v1alpha1_KubeControllerManagerConfiguration_To_componentconfig_ if err := Convert_v1alpha1_CloudProviderConfiguration_To_componentconfig_CloudProviderConfiguration(&in.CloudProvider, &out.CloudProvider, s); err != nil { return err } - if err := Convert_v1alpha1_DebuggingConfiguration_To_componentconfig_DebuggingConfiguration(&in.Debugging, &out.Debugging, s); err != nil { + if err := configv1alpha1.Convert_v1alpha1_DebuggingConfiguration_To_config_DebuggingConfiguration(&in.Debugging, &out.Debugging, s); err != nil { return err } if err := Convert_v1alpha1_GenericComponentConfiguration_To_componentconfig_GenericComponentConfiguration(&in.GenericComponent, &out.GenericComponent, s); err != nil { @@ -919,7 +841,7 @@ func autoConvert_componentconfig_KubeControllerManagerConfiguration_To_v1alpha1_ if err := Convert_componentconfig_CloudProviderConfiguration_To_v1alpha1_CloudProviderConfiguration(&in.CloudProvider, &out.CloudProvider, s); err != nil { return err } - if err := Convert_componentconfig_DebuggingConfiguration_To_v1alpha1_DebuggingConfiguration(&in.Debugging, &out.Debugging, s); err != nil { + if err := configv1alpha1.Convert_config_DebuggingConfiguration_To_v1alpha1_DebuggingConfiguration(&in.Debugging, &out.Debugging, s); err != nil { return err } if err := Convert_componentconfig_GenericComponentConfiguration_To_v1alpha1_GenericComponentConfiguration(&in.GenericComponent, &out.GenericComponent, s); err != nil { @@ -996,6 +918,9 @@ func Convert_componentconfig_KubeControllerManagerConfiguration_To_v1alpha1_Kube } func autoConvert_v1alpha1_KubeSchedulerConfiguration_To_componentconfig_KubeSchedulerConfiguration(in *KubeSchedulerConfiguration, out *componentconfig.KubeSchedulerConfiguration, s conversion.Scope) error { + if err := configv1alpha1.Convert_v1alpha1_DebuggingConfiguration_To_config_DebuggingConfiguration(&in.DebuggingConfiguration, &out.DebuggingConfiguration, s); err != nil { + return err + } out.SchedulerName = in.SchedulerName if err := Convert_v1alpha1_SchedulerAlgorithmSource_To_componentconfig_SchedulerAlgorithmSource(&in.AlgorithmSource, &out.AlgorithmSource, s); err != nil { return err @@ -1004,13 +929,11 @@ func autoConvert_v1alpha1_KubeSchedulerConfiguration_To_componentconfig_KubeSche if err := Convert_v1alpha1_KubeSchedulerLeaderElectionConfiguration_To_componentconfig_KubeSchedulerLeaderElectionConfiguration(&in.LeaderElection, &out.LeaderElection, s); err != nil { return err } - if err := Convert_v1alpha1_ClientConnectionConfiguration_To_componentconfig_ClientConnectionConfiguration(&in.ClientConnection, &out.ClientConnection, s); err != nil { + if err := apisconfigv1alpha1.Convert_v1alpha1_ClientConnectionConfiguration_To_config_ClientConnectionConfiguration(&in.ClientConnection, &out.ClientConnection, s); err != nil { return err } out.HealthzBindAddress = in.HealthzBindAddress out.MetricsBindAddress = in.MetricsBindAddress - out.EnableProfiling = in.EnableProfiling - out.EnableContentionProfiling = in.EnableContentionProfiling out.FailureDomains = in.FailureDomains out.DisablePreemption = in.DisablePreemption return nil @@ -1022,6 +945,9 @@ func Convert_v1alpha1_KubeSchedulerConfiguration_To_componentconfig_KubeSchedule } func autoConvert_componentconfig_KubeSchedulerConfiguration_To_v1alpha1_KubeSchedulerConfiguration(in *componentconfig.KubeSchedulerConfiguration, out *KubeSchedulerConfiguration, s conversion.Scope) error { + if err := configv1alpha1.Convert_config_DebuggingConfiguration_To_v1alpha1_DebuggingConfiguration(&in.DebuggingConfiguration, &out.DebuggingConfiguration, s); err != nil { + return err + } out.SchedulerName = in.SchedulerName if err := Convert_componentconfig_SchedulerAlgorithmSource_To_v1alpha1_SchedulerAlgorithmSource(&in.AlgorithmSource, &out.AlgorithmSource, s); err != nil { return err @@ -1030,13 +956,11 @@ func autoConvert_componentconfig_KubeSchedulerConfiguration_To_v1alpha1_KubeSche if err := Convert_componentconfig_KubeSchedulerLeaderElectionConfiguration_To_v1alpha1_KubeSchedulerLeaderElectionConfiguration(&in.LeaderElection, &out.LeaderElection, s); err != nil { return err } - if err := Convert_componentconfig_ClientConnectionConfiguration_To_v1alpha1_ClientConnectionConfiguration(&in.ClientConnection, &out.ClientConnection, s); err != nil { + if err := apisconfigv1alpha1.Convert_config_ClientConnectionConfiguration_To_v1alpha1_ClientConnectionConfiguration(&in.ClientConnection, &out.ClientConnection, s); err != nil { return err } out.HealthzBindAddress = in.HealthzBindAddress out.MetricsBindAddress = in.MetricsBindAddress - out.EnableProfiling = in.EnableProfiling - out.EnableContentionProfiling = in.EnableContentionProfiling out.FailureDomains = in.FailureDomains out.DisablePreemption = in.DisablePreemption return nil @@ -1048,7 +972,7 @@ func Convert_componentconfig_KubeSchedulerConfiguration_To_v1alpha1_KubeSchedule } func autoConvert_v1alpha1_KubeSchedulerLeaderElectionConfiguration_To_componentconfig_KubeSchedulerLeaderElectionConfiguration(in *KubeSchedulerLeaderElectionConfiguration, out *componentconfig.KubeSchedulerLeaderElectionConfiguration, s conversion.Scope) error { - if err := Convert_v1alpha1_LeaderElectionConfiguration_To_componentconfig_LeaderElectionConfiguration(&in.LeaderElectionConfiguration, &out.LeaderElectionConfiguration, s); err != nil { + if err := configv1alpha1.Convert_v1alpha1_LeaderElectionConfiguration_To_config_LeaderElectionConfiguration(&in.LeaderElectionConfiguration, &out.LeaderElectionConfiguration, s); err != nil { return err } out.LockObjectNamespace = in.LockObjectNamespace @@ -1062,7 +986,7 @@ func Convert_v1alpha1_KubeSchedulerLeaderElectionConfiguration_To_componentconfi } func autoConvert_componentconfig_KubeSchedulerLeaderElectionConfiguration_To_v1alpha1_KubeSchedulerLeaderElectionConfiguration(in *componentconfig.KubeSchedulerLeaderElectionConfiguration, out *KubeSchedulerLeaderElectionConfiguration, s conversion.Scope) error { - if err := Convert_componentconfig_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(&in.LeaderElectionConfiguration, &out.LeaderElectionConfiguration, s); err != nil { + if err := configv1alpha1.Convert_config_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(&in.LeaderElectionConfiguration, &out.LeaderElectionConfiguration, s); err != nil { return err } out.LockObjectNamespace = in.LockObjectNamespace @@ -1075,38 +999,6 @@ func Convert_componentconfig_KubeSchedulerLeaderElectionConfiguration_To_v1alpha return autoConvert_componentconfig_KubeSchedulerLeaderElectionConfiguration_To_v1alpha1_KubeSchedulerLeaderElectionConfiguration(in, out, s) } -func autoConvert_v1alpha1_LeaderElectionConfiguration_To_componentconfig_LeaderElectionConfiguration(in *LeaderElectionConfiguration, out *componentconfig.LeaderElectionConfiguration, s conversion.Scope) error { - if err := v1.Convert_Pointer_bool_To_bool(&in.LeaderElect, &out.LeaderElect, s); err != nil { - return err - } - out.LeaseDuration = in.LeaseDuration - out.RenewDeadline = in.RenewDeadline - out.RetryPeriod = in.RetryPeriod - out.ResourceLock = in.ResourceLock - return nil -} - -// Convert_v1alpha1_LeaderElectionConfiguration_To_componentconfig_LeaderElectionConfiguration is an autogenerated conversion function. -func Convert_v1alpha1_LeaderElectionConfiguration_To_componentconfig_LeaderElectionConfiguration(in *LeaderElectionConfiguration, out *componentconfig.LeaderElectionConfiguration, s conversion.Scope) error { - return autoConvert_v1alpha1_LeaderElectionConfiguration_To_componentconfig_LeaderElectionConfiguration(in, out, s) -} - -func autoConvert_componentconfig_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(in *componentconfig.LeaderElectionConfiguration, out *LeaderElectionConfiguration, s conversion.Scope) error { - if err := v1.Convert_bool_To_Pointer_bool(&in.LeaderElect, &out.LeaderElect, s); err != nil { - return err - } - out.LeaseDuration = in.LeaseDuration - out.RenewDeadline = in.RenewDeadline - out.RetryPeriod = in.RetryPeriod - out.ResourceLock = in.ResourceLock - return nil -} - -// Convert_componentconfig_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration is an autogenerated conversion function. -func Convert_componentconfig_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(in *componentconfig.LeaderElectionConfiguration, out *LeaderElectionConfiguration, s conversion.Scope) error { - return autoConvert_componentconfig_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(in, out, s) -} - func autoConvert_v1alpha1_NamespaceControllerConfiguration_To_componentconfig_NamespaceControllerConfiguration(in *NamespaceControllerConfiguration, out *componentconfig.NamespaceControllerConfiguration, s conversion.Scope) error { out.NamespaceSyncPeriod = in.NamespaceSyncPeriod out.ConcurrentNamespaceSyncs = in.ConcurrentNamespaceSyncs diff --git a/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go index a1e6fa5779d..df80122dfd3 100644 --- a/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go @@ -58,22 +58,6 @@ func (in *CSRSigningControllerConfiguration) DeepCopy() *CSRSigningControllerCon return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClientConnectionConfiguration) DeepCopyInto(out *ClientConnectionConfiguration) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientConnectionConfiguration. -func (in *ClientConnectionConfiguration) DeepCopy() *ClientConnectionConfiguration { - if in == nil { - return nil - } - out := new(ClientConnectionConfiguration) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CloudControllerManagerConfiguration) DeepCopyInto(out *CloudControllerManagerConfiguration) { *out = *in @@ -137,22 +121,6 @@ func (in *DaemonSetControllerConfiguration) DeepCopy() *DaemonSetControllerConfi return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DebuggingConfiguration) DeepCopyInto(out *DebuggingConfiguration) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DebuggingConfiguration. -func (in *DebuggingConfiguration) DeepCopy() *DebuggingConfiguration { - if in == nil { - return nil - } - out := new(DebuggingConfiguration) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DeploymentControllerConfiguration) DeepCopyInto(out *DeploymentControllerConfiguration) { *out = *in @@ -384,6 +352,7 @@ func (in *KubeControllerManagerConfiguration) DeepCopyObject() runtime.Object { func (in *KubeSchedulerConfiguration) DeepCopyInto(out *KubeSchedulerConfiguration) { *out = *in out.TypeMeta = in.TypeMeta + out.DebuggingConfiguration = in.DebuggingConfiguration in.AlgorithmSource.DeepCopyInto(&out.AlgorithmSource) in.LeaderElection.DeepCopyInto(&out.LeaderElection) out.ClientConnection = in.ClientConnection @@ -425,30 +394,6 @@ func (in *KubeSchedulerLeaderElectionConfiguration) DeepCopy() *KubeSchedulerLea return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LeaderElectionConfiguration) DeepCopyInto(out *LeaderElectionConfiguration) { - *out = *in - if in.LeaderElect != nil { - in, out := &in.LeaderElect, &out.LeaderElect - *out = new(bool) - **out = **in - } - out.LeaseDuration = in.LeaseDuration - out.RenewDeadline = in.RenewDeadline - out.RetryPeriod = in.RetryPeriod - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaderElectionConfiguration. -func (in *LeaderElectionConfiguration) DeepCopy() *LeaderElectionConfiguration { - if in == nil { - return nil - } - out := new(LeaderElectionConfiguration) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NamespaceControllerConfiguration) DeepCopyInto(out *NamespaceControllerConfiguration) { *out = *in diff --git a/pkg/apis/componentconfig/v1alpha1/zz_generated.defaults.go b/pkg/apis/componentconfig/v1alpha1/zz_generated.defaults.go index 75fd9b76226..cabddaab762 100644 --- a/pkg/apis/componentconfig/v1alpha1/zz_generated.defaults.go +++ b/pkg/apis/componentconfig/v1alpha1/zz_generated.defaults.go @@ -41,14 +41,12 @@ func RegisterDefaults(scheme *runtime.Scheme) error { func SetObjectDefaults_CloudControllerManagerConfiguration(in *CloudControllerManagerConfiguration) { SetDefaults_CloudControllerManagerConfiguration(in) SetDefaults_GenericComponentConfiguration(&in.GenericComponent) - SetDefaults_LeaderElectionConfiguration(&in.GenericComponent.LeaderElection) SetDefaults_KubeCloudSharedConfiguration(&in.KubeCloudShared) } func SetObjectDefaults_KubeControllerManagerConfiguration(in *KubeControllerManagerConfiguration) { SetDefaults_KubeControllerManagerConfiguration(in) SetDefaults_GenericComponentConfiguration(&in.GenericComponent) - SetDefaults_LeaderElectionConfiguration(&in.GenericComponent.LeaderElection) SetDefaults_KubeCloudSharedConfiguration(&in.KubeCloudShared) SetDefaults_VolumeConfiguration(&in.PersistentVolumeBinderController.VolumeConfiguration) SetDefaults_PersistentVolumeRecyclerConfiguration(&in.PersistentVolumeBinderController.VolumeConfiguration.PersistentVolumeRecyclerConfiguration) @@ -56,5 +54,4 @@ func SetObjectDefaults_KubeControllerManagerConfiguration(in *KubeControllerMana func SetObjectDefaults_KubeSchedulerConfiguration(in *KubeSchedulerConfiguration) { SetDefaults_KubeSchedulerConfiguration(in) - SetDefaults_LeaderElectionConfiguration(&in.LeaderElection.LeaderElectionConfiguration) } diff --git a/pkg/apis/componentconfig/zz_generated.deepcopy.go b/pkg/apis/componentconfig/zz_generated.deepcopy.go index 60570128678..46f35c4e1dc 100644 --- a/pkg/apis/componentconfig/zz_generated.deepcopy.go +++ b/pkg/apis/componentconfig/zz_generated.deepcopy.go @@ -58,22 +58,6 @@ func (in *CSRSigningControllerConfiguration) DeepCopy() *CSRSigningControllerCon return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClientConnectionConfiguration) DeepCopyInto(out *ClientConnectionConfiguration) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientConnectionConfiguration. -func (in *ClientConnectionConfiguration) DeepCopy() *ClientConnectionConfiguration { - if in == nil { - return nil - } - out := new(ClientConnectionConfiguration) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CloudControllerManagerConfiguration) DeepCopyInto(out *CloudControllerManagerConfiguration) { *out = *in @@ -137,22 +121,6 @@ func (in *DaemonSetControllerConfiguration) DeepCopy() *DaemonSetControllerConfi return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DebuggingConfiguration) DeepCopyInto(out *DebuggingConfiguration) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DebuggingConfiguration. -func (in *DebuggingConfiguration) DeepCopy() *DebuggingConfiguration { - if in == nil { - return nil - } - out := new(DebuggingConfiguration) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DeploymentControllerConfiguration) DeepCopyInto(out *DeploymentControllerConfiguration) { *out = *in @@ -411,6 +379,7 @@ func (in *KubeControllerManagerConfiguration) DeepCopyObject() runtime.Object { func (in *KubeSchedulerConfiguration) DeepCopyInto(out *KubeSchedulerConfiguration) { *out = *in out.TypeMeta = in.TypeMeta + out.DebuggingConfiguration = in.DebuggingConfiguration in.AlgorithmSource.DeepCopyInto(&out.AlgorithmSource) out.LeaderElection = in.LeaderElection out.ClientConnection = in.ClientConnection @@ -452,25 +421,6 @@ func (in *KubeSchedulerLeaderElectionConfiguration) DeepCopy() *KubeSchedulerLea return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LeaderElectionConfiguration) DeepCopyInto(out *LeaderElectionConfiguration) { - *out = *in - out.LeaseDuration = in.LeaseDuration - out.RenewDeadline = in.RenewDeadline - out.RetryPeriod = in.RetryPeriod - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaderElectionConfiguration. -func (in *LeaderElectionConfiguration) DeepCopy() *LeaderElectionConfiguration { - if in == nil { - return nil - } - out := new(LeaderElectionConfiguration) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NamespaceControllerConfiguration) DeepCopyInto(out *NamespaceControllerConfiguration) { *out = *in diff --git a/pkg/client/leaderelectionconfig/BUILD b/pkg/client/leaderelectionconfig/BUILD index 68617620d97..e5e7ec9b6ba 100644 --- a/pkg/client/leaderelectionconfig/BUILD +++ b/pkg/client/leaderelectionconfig/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["config.go"], importpath = "k8s.io/kubernetes/pkg/client/leaderelectionconfig", deps = [ - "//pkg/apis/componentconfig:go_default_library", + "//staging/src/k8s.io/apiserver/pkg/apis/config:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", ], ) diff --git a/pkg/client/leaderelectionconfig/config.go b/pkg/client/leaderelectionconfig/config.go index acbcee8fc51..310f1313795 100644 --- a/pkg/client/leaderelectionconfig/config.go +++ b/pkg/client/leaderelectionconfig/config.go @@ -20,15 +20,15 @@ import ( "time" "github.com/spf13/pflag" - "k8s.io/kubernetes/pkg/apis/componentconfig" + apiserverconfig "k8s.io/apiserver/pkg/apis/config" ) const ( DefaultLeaseDuration = 15 * time.Second ) -// BindFlags binds the common LeaderElectionCLIConfig flags to a flagset -func BindFlags(l *componentconfig.LeaderElectionConfiguration, fs *pflag.FlagSet) { +// BindFlags binds the LeaderElectionConfiguration struct fields to a flagset +func BindFlags(l *apiserverconfig.LeaderElectionConfiguration, fs *pflag.FlagSet) { fs.BoolVar(&l.LeaderElect, "leader-elect", l.LeaderElect, ""+ "Start a leader election client and gain leadership before "+ "executing the main loop. Enable this when running replicated "+