From 38bb53555e8b48ffa70d3dd84c00eb7eac35e77a Mon Sep 17 00:00:00 2001 From: Alay Patel Date: Sun, 11 Oct 2020 02:51:37 -0400 Subject: [PATCH] update violation_exceptions.list and make generated --- api/api-rules/violation_exceptions.list | 2 + cmd/kube-controller-manager/app/options/BUILD | 3 + pkg/controller/apis/config/BUILD | 1 + pkg/controller/apis/config/types.go | 4 + pkg/controller/apis/config/v1alpha1/BUILD | 1 + .../apis/config/v1alpha1/defaults.go | 3 + .../v1alpha1/zz_generated.conversion.go | 7 ++ .../apis/config/zz_generated.deepcopy.go | 1 + pkg/controller/cronjob/BUILD | 18 +++- pkg/controller/cronjob/config/BUILD | 29 ++++++ pkg/controller/cronjob/config/OWNERS | 14 +++ pkg/controller/cronjob/config/doc.go | 19 ++++ pkg/controller/cronjob/config/types.go | 26 ++++++ pkg/controller/cronjob/config/v1alpha1/BUILD | 36 ++++++++ .../cronjob/config/v1alpha1/conversion.go | 40 ++++++++ .../cronjob/config/v1alpha1/defaults.go | 36 ++++++++ pkg/controller/cronjob/config/v1alpha1/doc.go | 21 +++++ .../cronjob/config/v1alpha1/register.go | 31 +++++++ .../v1alpha1/zz_generated.conversion.go | 91 +++++++++++++++++++ .../config/v1alpha1/zz_generated.deepcopy.go | 21 +++++ .../cronjob/config/zz_generated.deepcopy.go | 37 ++++++++ .../config/v1alpha1/types.go | 12 +++ .../config/v1alpha1/zz_generated.deepcopy.go | 17 ++++ 23 files changed, 469 insertions(+), 1 deletion(-) create mode 100644 pkg/controller/cronjob/config/BUILD create mode 100644 pkg/controller/cronjob/config/OWNERS create mode 100644 pkg/controller/cronjob/config/doc.go create mode 100644 pkg/controller/cronjob/config/types.go create mode 100644 pkg/controller/cronjob/config/v1alpha1/BUILD create mode 100644 pkg/controller/cronjob/config/v1alpha1/conversion.go create mode 100644 pkg/controller/cronjob/config/v1alpha1/defaults.go create mode 100644 pkg/controller/cronjob/config/v1alpha1/doc.go create mode 100644 pkg/controller/cronjob/config/v1alpha1/register.go create mode 100644 pkg/controller/cronjob/config/v1alpha1/zz_generated.conversion.go create mode 100644 pkg/controller/cronjob/config/v1alpha1/zz_generated.deepcopy.go create mode 100644 pkg/controller/cronjob/config/zz_generated.deepcopy.go diff --git a/api/api-rules/violation_exceptions.list b/api/api-rules/violation_exceptions.list index 2a66aff049d..3e07896b676 100644 --- a/api/api-rules/violation_exceptions.list +++ b/api/api-rules/violation_exceptions.list @@ -509,6 +509,7 @@ API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,C API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,CSRSigningControllerConfiguration,KubeletClientSignerConfiguration API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,CSRSigningControllerConfiguration,KubeletServingSignerConfiguration API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,CSRSigningControllerConfiguration,LegacyUnknownSignerConfiguration +API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,CronJobControllerConfiguration,ConcurrentCronJobSyncs API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,DaemonSetControllerConfiguration,ConcurrentDaemonSetSyncs API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,DeploymentControllerConfiguration,ConcurrentDeploymentSyncs API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,DeploymentControllerConfiguration,DeploymentControllerSyncPeriod @@ -539,6 +540,7 @@ API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,H API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,JobControllerConfiguration,ConcurrentJobSyncs API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,AttachDetachController API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,CSRSigningController +API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,CronJobController API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,DaemonSetController API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,DeploymentController API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,DeprecatedController diff --git a/cmd/kube-controller-manager/app/options/BUILD b/cmd/kube-controller-manager/app/options/BUILD index 4f3de028891..afac61aced8 100644 --- a/cmd/kube-controller-manager/app/options/BUILD +++ b/cmd/kube-controller-manager/app/options/BUILD @@ -10,6 +10,7 @@ go_library( name = "go_default_library", srcs = [ "attachdetachcontroller.go", + "cronjobcontroller.go", "csrsigningcontroller.go", "daemonsetcontroller.go", "deploymentcontroller.go", @@ -40,6 +41,7 @@ go_library( "//pkg/controller/apis/config:go_default_library", "//pkg/controller/apis/config/scheme:go_default_library", "//pkg/controller/certificates/signer/config:go_default_library", + "//pkg/controller/cronjob/config:go_default_library", "//pkg/controller/daemon/config:go_default_library", "//pkg/controller/deployment/config:go_default_library", "//pkg/controller/endpoint/config:go_default_library", @@ -105,6 +107,7 @@ go_test( "//cmd/kube-controller-manager/app/config:go_default_library", "//pkg/controller/apis/config:go_default_library", "//pkg/controller/certificates/signer/config:go_default_library", + "//pkg/controller/cronjob/config:go_default_library", "//pkg/controller/daemon/config:go_default_library", "//pkg/controller/deployment/config:go_default_library", "//pkg/controller/endpoint/config:go_default_library", diff --git a/pkg/controller/apis/config/BUILD b/pkg/controller/apis/config/BUILD index e8cd0c7f5c1..604be157d27 100644 --- a/pkg/controller/apis/config/BUILD +++ b/pkg/controller/apis/config/BUILD @@ -12,6 +12,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/controller/certificates/signer/config:go_default_library", + "//pkg/controller/cronjob/config:go_default_library", "//pkg/controller/daemon/config:go_default_library", "//pkg/controller/deployment/config:go_default_library", "//pkg/controller/endpoint/config:go_default_library", diff --git a/pkg/controller/apis/config/types.go b/pkg/controller/apis/config/types.go index 62df064dff4..4fb28455fd6 100644 --- a/pkg/controller/apis/config/types.go +++ b/pkg/controller/apis/config/types.go @@ -22,6 +22,7 @@ import ( serviceconfig "k8s.io/cloud-provider/service/config" cmconfig "k8s.io/controller-manager/config" csrsigningconfig "k8s.io/kubernetes/pkg/controller/certificates/signer/config" + cronjobconfig "k8s.io/kubernetes/pkg/controller/cronjob/config" daemonconfig "k8s.io/kubernetes/pkg/controller/daemon/config" deploymentconfig "k8s.io/kubernetes/pkg/controller/deployment/config" endpointconfig "k8s.io/kubernetes/pkg/controller/endpoint/config" @@ -90,6 +91,9 @@ type KubeControllerManagerConfiguration struct { HPAController poautosclerconfig.HPAControllerConfiguration // JobControllerConfiguration holds configuration for JobController related features. JobController jobconfig.JobControllerConfiguration + // CronJobControllerConfiguration holds configuration for CronJobController + // related features. + CronJobController cronjobconfig.CronJobControllerConfiguration // NamespaceControllerConfiguration holds configuration for NamespaceController // related features. NamespaceController namespaceconfig.NamespaceControllerConfiguration diff --git a/pkg/controller/apis/config/v1alpha1/BUILD b/pkg/controller/apis/config/v1alpha1/BUILD index 68724a6aa6d..ef6ac3939da 100644 --- a/pkg/controller/apis/config/v1alpha1/BUILD +++ b/pkg/controller/apis/config/v1alpha1/BUILD @@ -15,6 +15,7 @@ go_library( deps = [ "//pkg/controller/apis/config:go_default_library", "//pkg/controller/certificates/signer/config/v1alpha1:go_default_library", + "//pkg/controller/cronjob/config/v1alpha1:go_default_library", "//pkg/controller/daemon/config/v1alpha1:go_default_library", "//pkg/controller/deployment/config/v1alpha1:go_default_library", "//pkg/controller/endpoint/config/v1alpha1:go_default_library", diff --git a/pkg/controller/apis/config/v1alpha1/defaults.go b/pkg/controller/apis/config/v1alpha1/defaults.go index 1eb852e73a7..e9731e02a6f 100644 --- a/pkg/controller/apis/config/v1alpha1/defaults.go +++ b/pkg/controller/apis/config/v1alpha1/defaults.go @@ -22,6 +22,7 @@ import ( cmconfigv1alpha1 "k8s.io/controller-manager/config/v1alpha1" kubectrlmgrconfigv1alpha1 "k8s.io/kube-controller-manager/config/v1alpha1" csrsigningconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/certificates/signer/config/v1alpha1" + cronjobconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/cronjob/config/v1alpha1" daemonconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/daemon/config/v1alpha1" deploymentconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/deployment/config/v1alpha1" endpointconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/endpoint/config/v1alpha1" @@ -84,6 +85,8 @@ func SetDefaults_KubeControllerManagerConfiguration(obj *kubectrlmgrconfigv1alph garbagecollectorconfigv1alpha1.RecommendedDefaultGarbageCollectorControllerConfiguration(&obj.GarbageCollectorController) // Use the default RecommendedDefaultJobControllerConfiguration options jobconfigv1alpha1.RecommendedDefaultJobControllerConfiguration(&obj.JobController) + // Use the default RecommendedDefaultCronJobControllerConfiguration options + cronjobconfigv1alpha1.RecommendedDefaultCronJobControllerConfiguration(&obj.CronJobController) // Use the default RecommendedDefaultNamespaceControllerConfiguration options namespaceconfigv1alpha1.RecommendedDefaultNamespaceControllerConfiguration(&obj.NamespaceController) // Use the default RecommendedDefaultNodeIPAMControllerConfiguration options diff --git a/pkg/controller/apis/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/apis/config/v1alpha1/zz_generated.conversion.go index 4a8effefa69..56367cad177 100644 --- a/pkg/controller/apis/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/apis/config/v1alpha1/zz_generated.conversion.go @@ -30,6 +30,7 @@ import ( v1alpha1 "k8s.io/kube-controller-manager/config/v1alpha1" config "k8s.io/kubernetes/pkg/controller/apis/config" signerconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/certificates/signer/config/v1alpha1" + cronjobconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/cronjob/config/v1alpha1" daemonconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/daemon/config/v1alpha1" deploymentconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/deployment/config/v1alpha1" endpointconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/endpoint/config/v1alpha1" @@ -181,6 +182,9 @@ func autoConvert_v1alpha1_KubeControllerManagerConfiguration_To_config_KubeContr if err := jobconfigv1alpha1.Convert_v1alpha1_JobControllerConfiguration_To_config_JobControllerConfiguration(&in.JobController, &out.JobController, s); err != nil { return err } + if err := cronjobconfigv1alpha1.Convert_v1alpha1_CronJobControllerConfiguration_To_config_CronJobControllerConfiguration(&in.CronJobController, &out.CronJobController, s); err != nil { + return err + } if err := namespaceconfigv1alpha1.Convert_v1alpha1_NamespaceControllerConfiguration_To_config_NamespaceControllerConfiguration(&in.NamespaceController, &out.NamespaceController, s); err != nil { return err } @@ -265,6 +269,9 @@ func autoConvert_config_KubeControllerManagerConfiguration_To_v1alpha1_KubeContr if err := jobconfigv1alpha1.Convert_config_JobControllerConfiguration_To_v1alpha1_JobControllerConfiguration(&in.JobController, &out.JobController, s); err != nil { return err } + if err := cronjobconfigv1alpha1.Convert_config_CronJobControllerConfiguration_To_v1alpha1_CronJobControllerConfiguration(&in.CronJobController, &out.CronJobController, s); err != nil { + return err + } if err := namespaceconfigv1alpha1.Convert_config_NamespaceControllerConfiguration_To_v1alpha1_NamespaceControllerConfiguration(&in.NamespaceController, &out.NamespaceController, s); err != nil { return err } diff --git a/pkg/controller/apis/config/zz_generated.deepcopy.go b/pkg/controller/apis/config/zz_generated.deepcopy.go index e40ada2fb80..013ebc36021 100644 --- a/pkg/controller/apis/config/zz_generated.deepcopy.go +++ b/pkg/controller/apis/config/zz_generated.deepcopy.go @@ -58,6 +58,7 @@ func (in *KubeControllerManagerConfiguration) DeepCopyInto(out *KubeControllerMa in.GarbageCollectorController.DeepCopyInto(&out.GarbageCollectorController) out.HPAController = in.HPAController out.JobController = in.JobController + out.CronJobController = in.CronJobController out.NamespaceController = in.NamespaceController out.NodeIPAMController = in.NodeIPAMController out.NodeLifecycleController = in.NodeLifecycleController diff --git a/pkg/controller/cronjob/BUILD b/pkg/controller/cronjob/BUILD index e5f3e37bc11..632fcf0bb09 100644 --- a/pkg/controller/cronjob/BUILD +++ b/pkg/controller/cronjob/BUILD @@ -10,12 +10,14 @@ go_library( name = "go_default_library", srcs = [ "cronjob_controller.go", + "cronjob_controllerv2.go", "doc.go", "injection.go", "utils.go", ], importpath = "k8s.io/kubernetes/pkg/controller/cronjob", deps = [ + "//pkg/controller:go_default_library", "//staging/src/k8s.io/api/batch/v1:go_default_library", "//staging/src/k8s.io/api/batch/v1beta1:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", @@ -26,12 +28,18 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//staging/src/k8s.io/client-go/informers/batch/v1:go_default_library", + "//staging/src/k8s.io/client-go/informers/batch/v1beta1:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/scheme:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", + "//staging/src/k8s.io/client-go/listers/batch/v1:go_default_library", + "//staging/src/k8s.io/client-go/listers/batch/v1beta1:go_default_library", + "//staging/src/k8s.io/client-go/tools/cache:go_default_library", "//staging/src/k8s.io/client-go/tools/pager:go_default_library", "//staging/src/k8s.io/client-go/tools/record:go_default_library", "//staging/src/k8s.io/client-go/tools/reference:go_default_library", + "//staging/src/k8s.io/client-go/util/workqueue:go_default_library", "//staging/src/k8s.io/component-base/metrics/prometheus/ratelimiter:go_default_library", "//vendor/github.com/robfig/cron:go_default_library", "//vendor/k8s.io/klog/v2:go_default_library", @@ -42,6 +50,7 @@ go_test( name = "go_default_test", srcs = [ "cronjob_controller_test.go", + "cronjob_controllerv2_test.go", "utils_test.go", ], embed = [":go_default_library"], @@ -52,9 +61,13 @@ go_test( "//staging/src/k8s.io/api/batch/v1beta1:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//staging/src/k8s.io/client-go/listers/batch/v1:go_default_library", "//staging/src/k8s.io/client-go/tools/record:go_default_library", + "//staging/src/k8s.io/client-go/util/workqueue:go_default_library", + "//vendor/github.com/robfig/cron:go_default_library", "//vendor/k8s.io/utils/pointer:go_default_library", ], ) @@ -68,6 +81,9 @@ filegroup( filegroup( name = "all-srcs", - srcs = [":package-srcs"], + srcs = [ + ":package-srcs", + "//pkg/controller/cronjob/config:all-srcs", + ], tags = ["automanaged"], ) diff --git a/pkg/controller/cronjob/config/BUILD b/pkg/controller/cronjob/config/BUILD new file mode 100644 index 00000000000..39558cfd452 --- /dev/null +++ b/pkg/controller/cronjob/config/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "types.go", + "zz_generated.deepcopy.go", + ], + importpath = "k8s.io/kubernetes/pkg/controller/cronjob/config", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//pkg/controller/cronjob/config/v1alpha1:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/pkg/controller/cronjob/config/OWNERS b/pkg/controller/cronjob/config/OWNERS new file mode 100644 index 00000000000..e3149dc3c06 --- /dev/null +++ b/pkg/controller/cronjob/config/OWNERS @@ -0,0 +1,14 @@ +approvers: +- api-approvers +- deads2k +- luxas +- mtaufen +- sttts +- stewart-yu +reviewers: +- api-reviewers +- deads2k +- luxas +- mtaufen +- sttts +- stewart-yu diff --git a/pkg/controller/cronjob/config/doc.go b/pkg/controller/cronjob/config/doc.go new file mode 100644 index 00000000000..f5d5ba18735 --- /dev/null +++ b/pkg/controller/cronjob/config/doc.go @@ -0,0 +1,19 @@ +/* +Copyright 2020 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/cronjob/config" diff --git a/pkg/controller/cronjob/config/types.go b/pkg/controller/cronjob/config/types.go new file mode 100644 index 00000000000..3db0b535c99 --- /dev/null +++ b/pkg/controller/cronjob/config/types.go @@ -0,0 +1,26 @@ +/* +Copyright 2020 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 + +// CronJobControllerConfiguration contains elements describing the +// CronJobControllerV2. +type CronJobControllerConfiguration struct { + // ConcurrentCronJobSyncs is the number of cron job objects that are + // allowed to sync concurrently. Larger number = more responsive jobs, + // but more CPU (and network) load. + ConcurrentCronJobSyncs int32 +} diff --git a/pkg/controller/cronjob/config/v1alpha1/BUILD b/pkg/controller/cronjob/config/v1alpha1/BUILD new file mode 100644 index 00000000000..58d019105fb --- /dev/null +++ b/pkg/controller/cronjob/config/v1alpha1/BUILD @@ -0,0 +1,36 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "conversion.go", + "defaults.go", + "doc.go", + "register.go", + "zz_generated.conversion.go", + "zz_generated.deepcopy.go", + ], + importpath = "k8s.io/kubernetes/pkg/controller/cronjob/config/v1alpha1", + visibility = ["//visibility:public"], + deps = [ + "//pkg/controller/cronjob/config:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/conversion:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//staging/src/k8s.io/kube-controller-manager/config/v1alpha1:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/pkg/controller/cronjob/config/v1alpha1/conversion.go b/pkg/controller/cronjob/config/v1alpha1/conversion.go new file mode 100644 index 00000000000..a032a0df8e6 --- /dev/null +++ b/pkg/controller/cronjob/config/v1alpha1/conversion.go @@ -0,0 +1,40 @@ +/* +Copyright 2020 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/cronjob/config" +) + +// Important! The public back-and-forth conversion functions for the types in this package +// with CronJobControllerConfiguration 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_CronJobControllerConfiguration_To_config_CronJobControllerConfiguration is an autogenerated conversion function. +func Convert_v1alpha1_CronJobControllerConfiguration_To_config_CronJobControllerConfiguration(in *v1alpha1.CronJobControllerConfiguration, out *config.CronJobControllerConfiguration, s conversion.Scope) error { + return autoConvert_v1alpha1_CronJobControllerConfiguration_To_config_CronJobControllerConfiguration(in, out, s) +} + +// Convert_config_CronJobControllerConfiguration_To_v1alpha1_CronJobControllerConfiguration is an autogenerated conversion function. +func Convert_config_CronJobControllerConfiguration_To_v1alpha1_CronJobControllerConfiguration(in *config.CronJobControllerConfiguration, out *v1alpha1.CronJobControllerConfiguration, s conversion.Scope) error { + return autoConvert_config_CronJobControllerConfiguration_To_v1alpha1_CronJobControllerConfiguration(in, out, s) +} diff --git a/pkg/controller/cronjob/config/v1alpha1/defaults.go b/pkg/controller/cronjob/config/v1alpha1/defaults.go new file mode 100644 index 00000000000..6ce1aa29402 --- /dev/null +++ b/pkg/controller/cronjob/config/v1alpha1/defaults.go @@ -0,0 +1,36 @@ +/* +Copyright 2020 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1alpha1 + +import ( + kubectrlmgrconfigv1alpha1 "k8s.io/kube-controller-manager/config/v1alpha1" +) + +// RecommendedDefaultCronJobControllerConfiguration defaults a pointer to a +// CronJobControllerConfiguration struct. This will set the recommended default +// values, but they may be subject to change between API versions. This function +// is intentionally not registered in the scheme as a "normal" `SetDefaults_Foo` +// function to allow consumers of this type to set whatever defaults for their +// embedded configs. Forcing consumers to use these defaults would be problematic +// as defaulting in the scheme is done as part of the conversion, and there would +// be no easy way to opt-out. Instead, if you want to use this defaulting method +// run it in your wrapper struct of this type in its `SetDefaults_` method. +func RecommendedDefaultCronJobControllerConfiguration(obj *kubectrlmgrconfigv1alpha1.CronJobControllerConfiguration) { + if obj.ConcurrentCronJobSyncs == 0 { + obj.ConcurrentCronJobSyncs = 5 + } +} diff --git a/pkg/controller/cronjob/config/v1alpha1/doc.go b/pkg/controller/cronjob/config/v1alpha1/doc.go new file mode 100644 index 00000000000..7a66b80104e --- /dev/null +++ b/pkg/controller/cronjob/config/v1alpha1/doc.go @@ -0,0 +1,21 @@ +/* +Copyright 2020 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// +k8s:deepcopy-gen=package +// +k8s:conversion-gen=k8s.io/kubernetes/pkg/controller/cronjob/config +// +k8s:conversion-gen-external-types=k8s.io/kube-controller-manager/config/v1alpha1 + +package v1alpha1 // import "k8s.io/kubernetes/pkg/controller/cronjob/config/v1alpha1" diff --git a/pkg/controller/cronjob/config/v1alpha1/register.go b/pkg/controller/cronjob/config/v1alpha1/register.go new file mode 100644 index 00000000000..47e07078220 --- /dev/null +++ b/pkg/controller/cronjob/config/v1alpha1/register.go @@ -0,0 +1,31 @@ +/* +Copyright 2020 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime" +) + +var ( + // SchemeBuilder is the scheme builder with scheme init functions to run for this API package + SchemeBuilder runtime.SchemeBuilder + // localSchemeBuilder extends the SchemeBuilder instance with the external types. In this package, + // defaulting and conversion init funcs are registered as well. + localSchemeBuilder = &SchemeBuilder + // AddToScheme is a global function that registers this API group & version to a scheme + AddToScheme = localSchemeBuilder.AddToScheme +) diff --git a/pkg/controller/cronjob/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/cronjob/config/v1alpha1/zz_generated.conversion.go new file mode 100644 index 00000000000..1fb123d5408 --- /dev/null +++ b/pkg/controller/cronjob/config/v1alpha1/zz_generated.conversion.go @@ -0,0 +1,91 @@ +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by conversion-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + v1alpha1 "k8s.io/kube-controller-manager/config/v1alpha1" + config "k8s.io/kubernetes/pkg/controller/cronjob/config" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(s *runtime.Scheme) error { + if err := s.AddGeneratedConversionFunc((*v1alpha1.GroupResource)(nil), (*v1.GroupResource)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_GroupResource_To_v1_GroupResource(a.(*v1alpha1.GroupResource), b.(*v1.GroupResource), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1.GroupResource)(nil), (*v1alpha1.GroupResource)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1_GroupResource_To_v1alpha1_GroupResource(a.(*v1.GroupResource), b.(*v1alpha1.GroupResource), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*config.CronJobControllerConfiguration)(nil), (*v1alpha1.CronJobControllerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_config_CronJobControllerConfiguration_To_v1alpha1_CronJobControllerConfiguration(a.(*config.CronJobControllerConfiguration), b.(*v1alpha1.CronJobControllerConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*v1alpha1.CronJobControllerConfiguration)(nil), (*config.CronJobControllerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_CronJobControllerConfiguration_To_config_CronJobControllerConfiguration(a.(*v1alpha1.CronJobControllerConfiguration), b.(*config.CronJobControllerConfiguration), scope) + }); err != nil { + return err + } + return nil +} + +func autoConvert_v1alpha1_CronJobControllerConfiguration_To_config_CronJobControllerConfiguration(in *v1alpha1.CronJobControllerConfiguration, out *config.CronJobControllerConfiguration, s conversion.Scope) error { + out.ConcurrentCronJobSyncs = in.ConcurrentCronJobSyncs + return nil +} + +func autoConvert_config_CronJobControllerConfiguration_To_v1alpha1_CronJobControllerConfiguration(in *config.CronJobControllerConfiguration, out *v1alpha1.CronJobControllerConfiguration, s conversion.Scope) error { + out.ConcurrentCronJobSyncs = in.ConcurrentCronJobSyncs + return nil +} + +func autoConvert_v1alpha1_GroupResource_To_v1_GroupResource(in *v1alpha1.GroupResource, out *v1.GroupResource, s conversion.Scope) error { + out.Group = in.Group + out.Resource = in.Resource + return nil +} + +// Convert_v1alpha1_GroupResource_To_v1_GroupResource is an autogenerated conversion function. +func Convert_v1alpha1_GroupResource_To_v1_GroupResource(in *v1alpha1.GroupResource, out *v1.GroupResource, s conversion.Scope) error { + return autoConvert_v1alpha1_GroupResource_To_v1_GroupResource(in, out, s) +} + +func autoConvert_v1_GroupResource_To_v1alpha1_GroupResource(in *v1.GroupResource, out *v1alpha1.GroupResource, s conversion.Scope) error { + out.Group = in.Group + out.Resource = in.Resource + return nil +} + +// Convert_v1_GroupResource_To_v1alpha1_GroupResource is an autogenerated conversion function. +func Convert_v1_GroupResource_To_v1alpha1_GroupResource(in *v1.GroupResource, out *v1alpha1.GroupResource, s conversion.Scope) error { + return autoConvert_v1_GroupResource_To_v1alpha1_GroupResource(in, out, s) +} diff --git a/pkg/controller/cronjob/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/cronjob/config/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 00000000000..0ec19467c40 --- /dev/null +++ b/pkg/controller/cronjob/config/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,21 @@ +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package v1alpha1 diff --git a/pkg/controller/cronjob/config/zz_generated.deepcopy.go b/pkg/controller/cronjob/config/zz_generated.deepcopy.go new file mode 100644 index 00000000000..2d08f74c145 --- /dev/null +++ b/pkg/controller/cronjob/config/zz_generated.deepcopy.go @@ -0,0 +1,37 @@ +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package config + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CronJobControllerConfiguration) DeepCopyInto(out *CronJobControllerConfiguration) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobControllerConfiguration. +func (in *CronJobControllerConfiguration) DeepCopy() *CronJobControllerConfiguration { + if in == nil { + return nil + } + out := new(CronJobControllerConfiguration) + in.DeepCopyInto(out) + return out +} diff --git a/staging/src/k8s.io/kube-controller-manager/config/v1alpha1/types.go b/staging/src/k8s.io/kube-controller-manager/config/v1alpha1/types.go index ce3c2dbe030..568339a1bdd 100644 --- a/staging/src/k8s.io/kube-controller-manager/config/v1alpha1/types.go +++ b/staging/src/k8s.io/kube-controller-manager/config/v1alpha1/types.go @@ -126,6 +126,10 @@ type KubeControllerManagerConfiguration struct { HPAController HPAControllerConfiguration // JobControllerConfiguration holds configuration for JobController related features. JobController JobControllerConfiguration + // CronJobControllerConfiguration holds configuration for CronJobController related features. + CronJobController CronJobControllerConfiguration + // NamespaceControllerConfiguration holds configuration for NamespaceController + // related features. // NamespaceControllerConfiguration holds configuration for NamespaceController // related features. NamespaceController NamespaceControllerConfiguration @@ -346,6 +350,14 @@ type JobControllerConfiguration struct { ConcurrentJobSyncs int32 } +// CronJobControllerConfiguration contains elements describing CrongJob2Controller. +type CronJobControllerConfiguration struct { + // concurrentCronJobSyncs is the number of job objects that are + // allowed to sync concurrently. Larger number = more responsive jobs, + // but more CPU (and network) load. + ConcurrentCronJobSyncs int32 +} + // NamespaceControllerConfiguration contains elements describing NamespaceController. type NamespaceControllerConfiguration struct { // namespaceSyncPeriod is the period for syncing namespace life-cycle diff --git a/staging/src/k8s.io/kube-controller-manager/config/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/kube-controller-manager/config/v1alpha1/zz_generated.deepcopy.go index 96e948fdeb2..a6081021e3a 100644 --- a/staging/src/k8s.io/kube-controller-manager/config/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/kube-controller-manager/config/v1alpha1/zz_generated.deepcopy.go @@ -78,6 +78,22 @@ 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 *CronJobControllerConfiguration) DeepCopyInto(out *CronJobControllerConfiguration) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobControllerConfiguration. +func (in *CronJobControllerConfiguration) DeepCopy() *CronJobControllerConfiguration { + if in == nil { + return nil + } + out := new(CronJobControllerConfiguration) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DaemonSetControllerConfiguration) DeepCopyInto(out *DaemonSetControllerConfiguration) { *out = *in @@ -281,6 +297,7 @@ func (in *KubeControllerManagerConfiguration) DeepCopyInto(out *KubeControllerMa in.GarbageCollectorController.DeepCopyInto(&out.GarbageCollectorController) in.HPAController.DeepCopyInto(&out.HPAController) out.JobController = in.JobController + out.CronJobController = in.CronJobController out.NamespaceController = in.NamespaceController out.NodeIPAMController = in.NodeIPAMController in.NodeLifecycleController.DeepCopyInto(&out.NodeLifecycleController)