├── code-of-conduct.md ├── .github └── PULL_REQUEST_TEMPLATE.md ├── OWNERS ├── config ├── OWNERS └── v1alpha1 │ ├── doc.go │ ├── register.go │ ├── zz_generated.model_name.go │ ├── zz_generated.deepcopy.go │ └── types.go ├── SECURITY_CONTACTS ├── doc.go ├── CONTRIBUTING.md ├── go.mod ├── README.md ├── go.sum └── LICENSE /code-of-conduct.md: -------------------------------------------------------------------------------- 1 | # Kubernetes Community Code of Conduct 2 | 3 | Please refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md) 4 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Sorry, we do not accept changes directly against this repository. Please see 2 | CONTRIBUTING.md for information on where and how to contribute instead. 3 | -------------------------------------------------------------------------------- /OWNERS: -------------------------------------------------------------------------------- 1 | # See the OWNERS docs at https://go.k8s.io/owners 2 | 3 | approvers: 4 | - deads2k 5 | - luxas 6 | - mtaufen 7 | - sttts 8 | reviewers: 9 | - deads2k 10 | - luxas 11 | - mtaufen 12 | - sttts 13 | - cheftako 14 | emeritus_approvers: 15 | - stewart-yu 16 | -------------------------------------------------------------------------------- /config/OWNERS: -------------------------------------------------------------------------------- 1 | # See the OWNERS docs at https://go.k8s.io/owners 2 | 3 | # Disable inheritance as this is an api owners file 4 | options: 5 | no_parent_owners: true 6 | approvers: 7 | - api-approvers 8 | reviewers: 9 | - api-reviewers 10 | - deads2k 11 | - luxas 12 | - mtaufen 13 | - sttts 14 | labels: 15 | - kind/api-change 16 | -------------------------------------------------------------------------------- /SECURITY_CONTACTS: -------------------------------------------------------------------------------- 1 | # Defined below are the security contacts for this repo. 2 | # 3 | # They are the contact point for the Product Security Committee to reach out 4 | # to for triaging and handling of incoming issues. 5 | # 6 | # The below names agree to abide by the 7 | # [Embargo Policy](https://git.k8s.io/security/private-distributors-list.md#embargo-policy) 8 | # and will be removed and replaced if they violate that agreement. 9 | # 10 | # DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE 11 | # INSTRUCTIONS AT https://kubernetes.io/security/ 12 | 13 | cjcullen 14 | joelsmith 15 | liggitt 16 | luxas 17 | sttts 18 | tallclair 19 | -------------------------------------------------------------------------------- /doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2021 The Kubernetes Authors. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | package kubecontrollermanager 18 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing guidelines 2 | 3 | Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes. 4 | 5 | This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/kube-controller-manager](https://git.k8s.io/kubernetes/staging/src/k8s.io/kube-controller-manager) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot). 6 | 7 | Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information 8 | -------------------------------------------------------------------------------- /config/v1alpha1/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2018 The Kubernetes Authors. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | // +k8s:deepcopy-gen=package 18 | // +k8s:openapi-gen=true 19 | // +k8s:openapi-model-package=io.k8s.kube-controller-manager.config.v1alpha1 20 | 21 | // +groupName=kubecontrollermanager.config.k8s.io 22 | 23 | package v1alpha1 24 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | // This is a generated file. Do not edit directly. 2 | 3 | module k8s.io/kube-controller-manager 4 | 5 | go 1.25.0 6 | 7 | godebug default=go1.25 8 | 9 | require ( 10 | k8s.io/apimachinery v0.0.0-20251221022210-2a337e1bb217 11 | k8s.io/cloud-provider v0.0.0-20251221031552-ed695a8ebe8f 12 | k8s.io/controller-manager v0.0.0-20251221031409-1f51a23a35bf 13 | ) 14 | 15 | require ( 16 | github.com/fxamacker/cbor/v2 v2.9.0 // indirect 17 | github.com/go-logr/logr v1.4.3 // indirect 18 | github.com/json-iterator/go v1.1.12 // indirect 19 | github.com/kr/pretty v0.3.1 // indirect 20 | github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect 21 | github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect 22 | github.com/x448/float16 v0.8.4 // indirect 23 | go.yaml.in/yaml/v2 v2.4.3 // indirect 24 | golang.org/x/net v0.47.0 // indirect 25 | golang.org/x/text v0.31.0 // indirect 26 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect 27 | gopkg.in/inf.v0 v0.9.1 // indirect 28 | k8s.io/component-base v0.0.0-20251221024012-26c758a07d12 // indirect 29 | k8s.io/klog/v2 v2.130.1 // indirect 30 | k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect 31 | k8s.io/utils v0.0.0-20251219084037-98d557b7f1e7 // indirect 32 | sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect 33 | sigs.k8s.io/randfill v1.0.0 // indirect 34 | sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect 35 | ) 36 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | > ⚠️ **This is an automatically published [staged repository](https://git.k8s.io/kubernetes/staging#external-repository-staging-area) for Kubernetes**. 2 | > Contributions, including issues and pull requests, should be made to the main Kubernetes repository: [https://github.com/kubernetes/kubernetes](https://github.com/kubernetes/kubernetes). 3 | > This repository is read-only for importing, and not used for direct contributions. 4 | > See [CONTRIBUTING.md](./CONTRIBUTING.md) for more details. 5 | 6 | # Kube-controller-manager 7 | 8 | ## Purpose 9 | 10 | This library contains code to expose kube-controller-manager API. 11 | 12 | 13 | ## Compatibility 14 | 15 | There are *NO compatibility guarantees* for this repository, yet. It is in direct support of Kubernetes, so branches 16 | will track Kubernetes and be compatible with that repo. As we more cleanly separate the layers, we will review the 17 | compatibility guarantee. We have a goal to make this easier to use in the future. 18 | 19 | 20 | ## Where does it come from? 21 | 22 | `kube-controller-manager` is synced from https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/kube-controller-manager. 23 | Code changes are made in that location, merged into `k8s.io/kubernetes` and later synced here. 24 | 25 | 26 | ## Things you should *NOT* do 27 | 28 | 1. Directly modify any files under `pkg` in this repo. Those are driven from `k8s.io/kubernetes/staging/src/k8s.io/kube-controller-manager`. 29 | 2. Expect compatibility. This repo is changing quickly in direct support of 30 | Kubernetes and the kube-controller-manager API. 31 | 32 | -------------------------------------------------------------------------------- /config/v1alpha1/register.go: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2018 The Kubernetes Authors. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | package v1alpha1 18 | 19 | import ( 20 | "k8s.io/apimachinery/pkg/runtime" 21 | "k8s.io/apimachinery/pkg/runtime/schema" 22 | ) 23 | 24 | // GroupName is the group name used in this package 25 | const GroupName = "kubecontrollermanager.config.k8s.io" 26 | 27 | // SchemeGroupVersion is group version used to register these objects 28 | var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} 29 | 30 | var ( 31 | // SchemeBuilder is the scheme builder with scheme init functions to run for this API package 32 | SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) 33 | // AddToScheme is a global function that registers this API group & version to a scheme 34 | AddToScheme = SchemeBuilder.AddToScheme 35 | ) 36 | 37 | // addKnownTypes registers known types to the given scheme 38 | func addKnownTypes(scheme *runtime.Scheme) error { 39 | scheme.AddKnownTypes(SchemeGroupVersion, 40 | &KubeControllerManagerConfiguration{}, 41 | ) 42 | return nil 43 | } 44 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= 2 | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 3 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 4 | github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= 5 | github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 6 | github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= 7 | github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= 8 | github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= 9 | github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= 10 | github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= 11 | github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= 12 | github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= 13 | github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= 14 | github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= 15 | github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= 16 | github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= 17 | github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= 18 | github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= 19 | github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= 20 | github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= 21 | github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= 22 | github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= 23 | github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= 24 | github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= 25 | github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= 26 | github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8= 27 | github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= 28 | github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= 29 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 30 | github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= 31 | github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 32 | github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= 33 | github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= 34 | github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= 35 | github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= 36 | github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= 37 | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 38 | github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= 39 | github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= 40 | github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= 41 | github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= 42 | github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= 43 | go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= 44 | go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= 45 | golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= 46 | golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= 47 | golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= 48 | golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= 49 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 50 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= 51 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= 52 | gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= 53 | gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= 54 | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= 55 | gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 56 | k8s.io/api v0.0.0-20251221022517-273786d760b8 h1:N79zusupHJpdH2pj6i0KgAV0Vl1yW4Pjf7j65X6MQsw= 57 | k8s.io/api v0.0.0-20251221022517-273786d760b8/go.mod h1:eDNsQ+QLVDk3rCDjzIxcOJDvchm9cM/4xs2ZIWjAW80= 58 | k8s.io/apimachinery v0.0.0-20251221022210-2a337e1bb217 h1:jlon/XvIJ04U8RINeKTGQo4spQw9yFPeeXHWnMHhCWs= 59 | k8s.io/apimachinery v0.0.0-20251221022210-2a337e1bb217/go.mod h1:hVKyk5rzKPzVNqOfNze3e2edChtIAn+NMFPDVD5nyEU= 60 | k8s.io/cloud-provider v0.0.0-20251221031552-ed695a8ebe8f h1:8TvPh0EuWc/drPiIyXF+8pITLP+I+jU2atC0Hz6XaG0= 61 | k8s.io/cloud-provider v0.0.0-20251221031552-ed695a8ebe8f/go.mod h1:xEgFyPNfQdpZSJwUcMXZNKYOuvFrvE6S+GNRasakyMo= 62 | k8s.io/component-base v0.0.0-20251221024012-26c758a07d12 h1:0CWml/OyutmOH4ERaRcf/2Msnf1JUiQy+K/TNYm9c3o= 63 | k8s.io/component-base v0.0.0-20251221024012-26c758a07d12/go.mod h1:N6fKUHnQDUQgNkhVlxHDLqNIjc8LkGIK9U0c0vDcYnE= 64 | k8s.io/controller-manager v0.0.0-20251221031409-1f51a23a35bf h1:/p/Pfu8U7dAy1VNNrhqdvkpPZXTYuLQ/RqKS8G6T7Bk= 65 | k8s.io/controller-manager v0.0.0-20251221031409-1f51a23a35bf/go.mod h1:0mAqugww0QhapkwIHpHyrGP5Z6kaKzwpDVIMDkLuEp0= 66 | k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= 67 | k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= 68 | k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE= 69 | k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ= 70 | k8s.io/utils v0.0.0-20251219084037-98d557b7f1e7 h1:H6xtwB5tC+KFSHoEhA1o7DnOtHDEo+n9OBSHjlajVKc= 71 | k8s.io/utils v0.0.0-20251219084037-98d557b7f1e7/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk= 72 | sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg= 73 | sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= 74 | sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= 75 | sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= 76 | sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= 77 | sigs.k8s.io/structured-merge-diff/v6 v6.3.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= 78 | sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= 79 | sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= 80 | -------------------------------------------------------------------------------- /config/v1alpha1/zz_generated.model_name.go: -------------------------------------------------------------------------------- 1 | //go:build !ignore_autogenerated 2 | // +build !ignore_autogenerated 3 | 4 | /* 5 | Copyright The Kubernetes Authors. 6 | 7 | Licensed under the Apache License, Version 2.0 (the "License"); 8 | you may not use this file except in compliance with the License. 9 | You may obtain a copy of the License at 10 | 11 | http://www.apache.org/licenses/LICENSE-2.0 12 | 13 | Unless required by applicable law or agreed to in writing, software 14 | distributed under the License is distributed on an "AS IS" BASIS, 15 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | See the License for the specific language governing permissions and 17 | limitations under the License. 18 | */ 19 | 20 | // Code generated by openapi-gen. DO NOT EDIT. 21 | 22 | package v1alpha1 23 | 24 | // OpenAPIModelName returns the OpenAPI model name for this type. 25 | func (in AttachDetachControllerConfiguration) OpenAPIModelName() string { 26 | return "io.k8s.kube-controller-manager.config.v1alpha1.AttachDetachControllerConfiguration" 27 | } 28 | 29 | // OpenAPIModelName returns the OpenAPI model name for this type. 30 | func (in CSRSigningConfiguration) OpenAPIModelName() string { 31 | return "io.k8s.kube-controller-manager.config.v1alpha1.CSRSigningConfiguration" 32 | } 33 | 34 | // OpenAPIModelName returns the OpenAPI model name for this type. 35 | func (in CSRSigningControllerConfiguration) OpenAPIModelName() string { 36 | return "io.k8s.kube-controller-manager.config.v1alpha1.CSRSigningControllerConfiguration" 37 | } 38 | 39 | // OpenAPIModelName returns the OpenAPI model name for this type. 40 | func (in CronJobControllerConfiguration) OpenAPIModelName() string { 41 | return "io.k8s.kube-controller-manager.config.v1alpha1.CronJobControllerConfiguration" 42 | } 43 | 44 | // OpenAPIModelName returns the OpenAPI model name for this type. 45 | func (in DaemonSetControllerConfiguration) OpenAPIModelName() string { 46 | return "io.k8s.kube-controller-manager.config.v1alpha1.DaemonSetControllerConfiguration" 47 | } 48 | 49 | // OpenAPIModelName returns the OpenAPI model name for this type. 50 | func (in DeploymentControllerConfiguration) OpenAPIModelName() string { 51 | return "io.k8s.kube-controller-manager.config.v1alpha1.DeploymentControllerConfiguration" 52 | } 53 | 54 | // OpenAPIModelName returns the OpenAPI model name for this type. 55 | func (in DeprecatedControllerConfiguration) OpenAPIModelName() string { 56 | return "io.k8s.kube-controller-manager.config.v1alpha1.DeprecatedControllerConfiguration" 57 | } 58 | 59 | // OpenAPIModelName returns the OpenAPI model name for this type. 60 | func (in DeviceTaintEvictionControllerConfiguration) OpenAPIModelName() string { 61 | return "io.k8s.kube-controller-manager.config.v1alpha1.DeviceTaintEvictionControllerConfiguration" 62 | } 63 | 64 | // OpenAPIModelName returns the OpenAPI model name for this type. 65 | func (in EndpointControllerConfiguration) OpenAPIModelName() string { 66 | return "io.k8s.kube-controller-manager.config.v1alpha1.EndpointControllerConfiguration" 67 | } 68 | 69 | // OpenAPIModelName returns the OpenAPI model name for this type. 70 | func (in EndpointSliceControllerConfiguration) OpenAPIModelName() string { 71 | return "io.k8s.kube-controller-manager.config.v1alpha1.EndpointSliceControllerConfiguration" 72 | } 73 | 74 | // OpenAPIModelName returns the OpenAPI model name for this type. 75 | func (in EndpointSliceMirroringControllerConfiguration) OpenAPIModelName() string { 76 | return "io.k8s.kube-controller-manager.config.v1alpha1.EndpointSliceMirroringControllerConfiguration" 77 | } 78 | 79 | // OpenAPIModelName returns the OpenAPI model name for this type. 80 | func (in EphemeralVolumeControllerConfiguration) OpenAPIModelName() string { 81 | return "io.k8s.kube-controller-manager.config.v1alpha1.EphemeralVolumeControllerConfiguration" 82 | } 83 | 84 | // OpenAPIModelName returns the OpenAPI model name for this type. 85 | func (in GarbageCollectorControllerConfiguration) OpenAPIModelName() string { 86 | return "io.k8s.kube-controller-manager.config.v1alpha1.GarbageCollectorControllerConfiguration" 87 | } 88 | 89 | // OpenAPIModelName returns the OpenAPI model name for this type. 90 | func (in GroupResource) OpenAPIModelName() string { 91 | return "io.k8s.kube-controller-manager.config.v1alpha1.GroupResource" 92 | } 93 | 94 | // OpenAPIModelName returns the OpenAPI model name for this type. 95 | func (in HPAControllerConfiguration) OpenAPIModelName() string { 96 | return "io.k8s.kube-controller-manager.config.v1alpha1.HPAControllerConfiguration" 97 | } 98 | 99 | // OpenAPIModelName returns the OpenAPI model name for this type. 100 | func (in JobControllerConfiguration) OpenAPIModelName() string { 101 | return "io.k8s.kube-controller-manager.config.v1alpha1.JobControllerConfiguration" 102 | } 103 | 104 | // OpenAPIModelName returns the OpenAPI model name for this type. 105 | func (in KubeControllerManagerConfiguration) OpenAPIModelName() string { 106 | return "io.k8s.kube-controller-manager.config.v1alpha1.KubeControllerManagerConfiguration" 107 | } 108 | 109 | // OpenAPIModelName returns the OpenAPI model name for this type. 110 | func (in LegacySATokenCleanerConfiguration) OpenAPIModelName() string { 111 | return "io.k8s.kube-controller-manager.config.v1alpha1.LegacySATokenCleanerConfiguration" 112 | } 113 | 114 | // OpenAPIModelName returns the OpenAPI model name for this type. 115 | func (in NamespaceControllerConfiguration) OpenAPIModelName() string { 116 | return "io.k8s.kube-controller-manager.config.v1alpha1.NamespaceControllerConfiguration" 117 | } 118 | 119 | // OpenAPIModelName returns the OpenAPI model name for this type. 120 | func (in NodeIPAMControllerConfiguration) OpenAPIModelName() string { 121 | return "io.k8s.kube-controller-manager.config.v1alpha1.NodeIPAMControllerConfiguration" 122 | } 123 | 124 | // OpenAPIModelName returns the OpenAPI model name for this type. 125 | func (in NodeLifecycleControllerConfiguration) OpenAPIModelName() string { 126 | return "io.k8s.kube-controller-manager.config.v1alpha1.NodeLifecycleControllerConfiguration" 127 | } 128 | 129 | // OpenAPIModelName returns the OpenAPI model name for this type. 130 | func (in PersistentVolumeBinderControllerConfiguration) OpenAPIModelName() string { 131 | return "io.k8s.kube-controller-manager.config.v1alpha1.PersistentVolumeBinderControllerConfiguration" 132 | } 133 | 134 | // OpenAPIModelName returns the OpenAPI model name for this type. 135 | func (in PersistentVolumeRecyclerConfiguration) OpenAPIModelName() string { 136 | return "io.k8s.kube-controller-manager.config.v1alpha1.PersistentVolumeRecyclerConfiguration" 137 | } 138 | 139 | // OpenAPIModelName returns the OpenAPI model name for this type. 140 | func (in PodGCControllerConfiguration) OpenAPIModelName() string { 141 | return "io.k8s.kube-controller-manager.config.v1alpha1.PodGCControllerConfiguration" 142 | } 143 | 144 | // OpenAPIModelName returns the OpenAPI model name for this type. 145 | func (in ReplicaSetControllerConfiguration) OpenAPIModelName() string { 146 | return "io.k8s.kube-controller-manager.config.v1alpha1.ReplicaSetControllerConfiguration" 147 | } 148 | 149 | // OpenAPIModelName returns the OpenAPI model name for this type. 150 | func (in ReplicationControllerConfiguration) OpenAPIModelName() string { 151 | return "io.k8s.kube-controller-manager.config.v1alpha1.ReplicationControllerConfiguration" 152 | } 153 | 154 | // OpenAPIModelName returns the OpenAPI model name for this type. 155 | func (in ResourceQuotaControllerConfiguration) OpenAPIModelName() string { 156 | return "io.k8s.kube-controller-manager.config.v1alpha1.ResourceQuotaControllerConfiguration" 157 | } 158 | 159 | // OpenAPIModelName returns the OpenAPI model name for this type. 160 | func (in SAControllerConfiguration) OpenAPIModelName() string { 161 | return "io.k8s.kube-controller-manager.config.v1alpha1.SAControllerConfiguration" 162 | } 163 | 164 | // OpenAPIModelName returns the OpenAPI model name for this type. 165 | func (in StatefulSetControllerConfiguration) OpenAPIModelName() string { 166 | return "io.k8s.kube-controller-manager.config.v1alpha1.StatefulSetControllerConfiguration" 167 | } 168 | 169 | // OpenAPIModelName returns the OpenAPI model name for this type. 170 | func (in TTLAfterFinishedControllerConfiguration) OpenAPIModelName() string { 171 | return "io.k8s.kube-controller-manager.config.v1alpha1.TTLAfterFinishedControllerConfiguration" 172 | } 173 | 174 | // OpenAPIModelName returns the OpenAPI model name for this type. 175 | func (in ValidatingAdmissionPolicyStatusControllerConfiguration) OpenAPIModelName() string { 176 | return "io.k8s.kube-controller-manager.config.v1alpha1.ValidatingAdmissionPolicyStatusControllerConfiguration" 177 | } 178 | 179 | // OpenAPIModelName returns the OpenAPI model name for this type. 180 | func (in VolumeConfiguration) OpenAPIModelName() string { 181 | return "io.k8s.kube-controller-manager.config.v1alpha1.VolumeConfiguration" 182 | } 183 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | APPENDIX: How to apply the Apache License to your work. 180 | 181 | To apply the Apache License to your work, attach the following 182 | boilerplate notice, with the fields enclosed by brackets "[]" 183 | replaced with your own identifying information. (Don't include 184 | the brackets!) The text should be enclosed in the appropriate 185 | comment syntax for the file format. We also recommend that a 186 | file or class name and description of purpose be included on the 187 | same "printed page" as the copyright notice for easier 188 | identification within third-party archives. 189 | 190 | Copyright [yyyy] [name of copyright owner] 191 | 192 | Licensed under the Apache License, Version 2.0 (the "License"); 193 | you may not use this file except in compliance with the License. 194 | You may obtain a copy of the License at 195 | 196 | http://www.apache.org/licenses/LICENSE-2.0 197 | 198 | Unless required by applicable law or agreed to in writing, software 199 | distributed under the License is distributed on an "AS IS" BASIS, 200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 201 | See the License for the specific language governing permissions and 202 | limitations under the License. 203 | -------------------------------------------------------------------------------- /config/v1alpha1/zz_generated.deepcopy.go: -------------------------------------------------------------------------------- 1 | //go:build !ignore_autogenerated 2 | // +build !ignore_autogenerated 3 | 4 | /* 5 | Copyright The Kubernetes Authors. 6 | 7 | Licensed under the Apache License, Version 2.0 (the "License"); 8 | you may not use this file except in compliance with the License. 9 | You may obtain a copy of the License at 10 | 11 | http://www.apache.org/licenses/LICENSE-2.0 12 | 13 | Unless required by applicable law or agreed to in writing, software 14 | distributed under the License is distributed on an "AS IS" BASIS, 15 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | See the License for the specific language governing permissions and 17 | limitations under the License. 18 | */ 19 | 20 | // Code generated by deepcopy-gen. DO NOT EDIT. 21 | 22 | package v1alpha1 23 | 24 | import ( 25 | runtime "k8s.io/apimachinery/pkg/runtime" 26 | ) 27 | 28 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 29 | func (in *AttachDetachControllerConfiguration) DeepCopyInto(out *AttachDetachControllerConfiguration) { 30 | *out = *in 31 | out.ReconcilerSyncLoopPeriod = in.ReconcilerSyncLoopPeriod 32 | return 33 | } 34 | 35 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AttachDetachControllerConfiguration. 36 | func (in *AttachDetachControllerConfiguration) DeepCopy() *AttachDetachControllerConfiguration { 37 | if in == nil { 38 | return nil 39 | } 40 | out := new(AttachDetachControllerConfiguration) 41 | in.DeepCopyInto(out) 42 | return out 43 | } 44 | 45 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 46 | func (in *CSRSigningConfiguration) DeepCopyInto(out *CSRSigningConfiguration) { 47 | *out = *in 48 | return 49 | } 50 | 51 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSRSigningConfiguration. 52 | func (in *CSRSigningConfiguration) DeepCopy() *CSRSigningConfiguration { 53 | if in == nil { 54 | return nil 55 | } 56 | out := new(CSRSigningConfiguration) 57 | in.DeepCopyInto(out) 58 | return out 59 | } 60 | 61 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 62 | func (in *CSRSigningControllerConfiguration) DeepCopyInto(out *CSRSigningControllerConfiguration) { 63 | *out = *in 64 | out.KubeletServingSignerConfiguration = in.KubeletServingSignerConfiguration 65 | out.KubeletClientSignerConfiguration = in.KubeletClientSignerConfiguration 66 | out.KubeAPIServerClientSignerConfiguration = in.KubeAPIServerClientSignerConfiguration 67 | out.LegacyUnknownSignerConfiguration = in.LegacyUnknownSignerConfiguration 68 | out.ClusterSigningDuration = in.ClusterSigningDuration 69 | return 70 | } 71 | 72 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSRSigningControllerConfiguration. 73 | func (in *CSRSigningControllerConfiguration) DeepCopy() *CSRSigningControllerConfiguration { 74 | if in == nil { 75 | return nil 76 | } 77 | out := new(CSRSigningControllerConfiguration) 78 | in.DeepCopyInto(out) 79 | return out 80 | } 81 | 82 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 83 | func (in *CronJobControllerConfiguration) DeepCopyInto(out *CronJobControllerConfiguration) { 84 | *out = *in 85 | return 86 | } 87 | 88 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobControllerConfiguration. 89 | func (in *CronJobControllerConfiguration) DeepCopy() *CronJobControllerConfiguration { 90 | if in == nil { 91 | return nil 92 | } 93 | out := new(CronJobControllerConfiguration) 94 | in.DeepCopyInto(out) 95 | return out 96 | } 97 | 98 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 99 | func (in *DaemonSetControllerConfiguration) DeepCopyInto(out *DaemonSetControllerConfiguration) { 100 | *out = *in 101 | return 102 | } 103 | 104 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetControllerConfiguration. 105 | func (in *DaemonSetControllerConfiguration) DeepCopy() *DaemonSetControllerConfiguration { 106 | if in == nil { 107 | return nil 108 | } 109 | out := new(DaemonSetControllerConfiguration) 110 | in.DeepCopyInto(out) 111 | return out 112 | } 113 | 114 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 115 | func (in *DeploymentControllerConfiguration) DeepCopyInto(out *DeploymentControllerConfiguration) { 116 | *out = *in 117 | return 118 | } 119 | 120 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentControllerConfiguration. 121 | func (in *DeploymentControllerConfiguration) DeepCopy() *DeploymentControllerConfiguration { 122 | if in == nil { 123 | return nil 124 | } 125 | out := new(DeploymentControllerConfiguration) 126 | in.DeepCopyInto(out) 127 | return out 128 | } 129 | 130 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 131 | func (in *DeprecatedControllerConfiguration) DeepCopyInto(out *DeprecatedControllerConfiguration) { 132 | *out = *in 133 | return 134 | } 135 | 136 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeprecatedControllerConfiguration. 137 | func (in *DeprecatedControllerConfiguration) DeepCopy() *DeprecatedControllerConfiguration { 138 | if in == nil { 139 | return nil 140 | } 141 | out := new(DeprecatedControllerConfiguration) 142 | in.DeepCopyInto(out) 143 | return out 144 | } 145 | 146 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 147 | func (in *DeviceTaintEvictionControllerConfiguration) DeepCopyInto(out *DeviceTaintEvictionControllerConfiguration) { 148 | *out = *in 149 | return 150 | } 151 | 152 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceTaintEvictionControllerConfiguration. 153 | func (in *DeviceTaintEvictionControllerConfiguration) DeepCopy() *DeviceTaintEvictionControllerConfiguration { 154 | if in == nil { 155 | return nil 156 | } 157 | out := new(DeviceTaintEvictionControllerConfiguration) 158 | in.DeepCopyInto(out) 159 | return out 160 | } 161 | 162 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 163 | func (in *EndpointControllerConfiguration) DeepCopyInto(out *EndpointControllerConfiguration) { 164 | *out = *in 165 | out.EndpointUpdatesBatchPeriod = in.EndpointUpdatesBatchPeriod 166 | return 167 | } 168 | 169 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointControllerConfiguration. 170 | func (in *EndpointControllerConfiguration) DeepCopy() *EndpointControllerConfiguration { 171 | if in == nil { 172 | return nil 173 | } 174 | out := new(EndpointControllerConfiguration) 175 | in.DeepCopyInto(out) 176 | return out 177 | } 178 | 179 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 180 | func (in *EndpointSliceControllerConfiguration) DeepCopyInto(out *EndpointSliceControllerConfiguration) { 181 | *out = *in 182 | out.EndpointUpdatesBatchPeriod = in.EndpointUpdatesBatchPeriod 183 | return 184 | } 185 | 186 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSliceControllerConfiguration. 187 | func (in *EndpointSliceControllerConfiguration) DeepCopy() *EndpointSliceControllerConfiguration { 188 | if in == nil { 189 | return nil 190 | } 191 | out := new(EndpointSliceControllerConfiguration) 192 | in.DeepCopyInto(out) 193 | return out 194 | } 195 | 196 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 197 | func (in *EndpointSliceMirroringControllerConfiguration) DeepCopyInto(out *EndpointSliceMirroringControllerConfiguration) { 198 | *out = *in 199 | out.MirroringEndpointUpdatesBatchPeriod = in.MirroringEndpointUpdatesBatchPeriod 200 | return 201 | } 202 | 203 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSliceMirroringControllerConfiguration. 204 | func (in *EndpointSliceMirroringControllerConfiguration) DeepCopy() *EndpointSliceMirroringControllerConfiguration { 205 | if in == nil { 206 | return nil 207 | } 208 | out := new(EndpointSliceMirroringControllerConfiguration) 209 | in.DeepCopyInto(out) 210 | return out 211 | } 212 | 213 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 214 | func (in *EphemeralVolumeControllerConfiguration) DeepCopyInto(out *EphemeralVolumeControllerConfiguration) { 215 | *out = *in 216 | return 217 | } 218 | 219 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EphemeralVolumeControllerConfiguration. 220 | func (in *EphemeralVolumeControllerConfiguration) DeepCopy() *EphemeralVolumeControllerConfiguration { 221 | if in == nil { 222 | return nil 223 | } 224 | out := new(EphemeralVolumeControllerConfiguration) 225 | in.DeepCopyInto(out) 226 | return out 227 | } 228 | 229 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 230 | func (in *GarbageCollectorControllerConfiguration) DeepCopyInto(out *GarbageCollectorControllerConfiguration) { 231 | *out = *in 232 | if in.EnableGarbageCollector != nil { 233 | in, out := &in.EnableGarbageCollector, &out.EnableGarbageCollector 234 | *out = new(bool) 235 | **out = **in 236 | } 237 | if in.GCIgnoredResources != nil { 238 | in, out := &in.GCIgnoredResources, &out.GCIgnoredResources 239 | *out = make([]GroupResource, len(*in)) 240 | copy(*out, *in) 241 | } 242 | return 243 | } 244 | 245 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GarbageCollectorControllerConfiguration. 246 | func (in *GarbageCollectorControllerConfiguration) DeepCopy() *GarbageCollectorControllerConfiguration { 247 | if in == nil { 248 | return nil 249 | } 250 | out := new(GarbageCollectorControllerConfiguration) 251 | in.DeepCopyInto(out) 252 | return out 253 | } 254 | 255 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 256 | func (in *GroupResource) DeepCopyInto(out *GroupResource) { 257 | *out = *in 258 | return 259 | } 260 | 261 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupResource. 262 | func (in *GroupResource) DeepCopy() *GroupResource { 263 | if in == nil { 264 | return nil 265 | } 266 | out := new(GroupResource) 267 | in.DeepCopyInto(out) 268 | return out 269 | } 270 | 271 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 272 | func (in *HPAControllerConfiguration) DeepCopyInto(out *HPAControllerConfiguration) { 273 | *out = *in 274 | out.HorizontalPodAutoscalerSyncPeriod = in.HorizontalPodAutoscalerSyncPeriod 275 | out.HorizontalPodAutoscalerDownscaleStabilizationWindow = in.HorizontalPodAutoscalerDownscaleStabilizationWindow 276 | out.HorizontalPodAutoscalerCPUInitializationPeriod = in.HorizontalPodAutoscalerCPUInitializationPeriod 277 | out.HorizontalPodAutoscalerInitialReadinessDelay = in.HorizontalPodAutoscalerInitialReadinessDelay 278 | return 279 | } 280 | 281 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HPAControllerConfiguration. 282 | func (in *HPAControllerConfiguration) DeepCopy() *HPAControllerConfiguration { 283 | if in == nil { 284 | return nil 285 | } 286 | out := new(HPAControllerConfiguration) 287 | in.DeepCopyInto(out) 288 | return out 289 | } 290 | 291 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 292 | func (in *JobControllerConfiguration) DeepCopyInto(out *JobControllerConfiguration) { 293 | *out = *in 294 | return 295 | } 296 | 297 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobControllerConfiguration. 298 | func (in *JobControllerConfiguration) DeepCopy() *JobControllerConfiguration { 299 | if in == nil { 300 | return nil 301 | } 302 | out := new(JobControllerConfiguration) 303 | in.DeepCopyInto(out) 304 | return out 305 | } 306 | 307 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 308 | func (in *KubeControllerManagerConfiguration) DeepCopyInto(out *KubeControllerManagerConfiguration) { 309 | *out = *in 310 | out.TypeMeta = in.TypeMeta 311 | in.Generic.DeepCopyInto(&out.Generic) 312 | in.KubeCloudShared.DeepCopyInto(&out.KubeCloudShared) 313 | out.AttachDetachController = in.AttachDetachController 314 | out.CSRSigningController = in.CSRSigningController 315 | out.DaemonSetController = in.DaemonSetController 316 | out.DeploymentController = in.DeploymentController 317 | out.StatefulSetController = in.StatefulSetController 318 | out.DeprecatedController = in.DeprecatedController 319 | out.EndpointController = in.EndpointController 320 | out.EndpointSliceController = in.EndpointSliceController 321 | out.EndpointSliceMirroringController = in.EndpointSliceMirroringController 322 | out.EphemeralVolumeController = in.EphemeralVolumeController 323 | in.GarbageCollectorController.DeepCopyInto(&out.GarbageCollectorController) 324 | out.HPAController = in.HPAController 325 | out.JobController = in.JobController 326 | out.CronJobController = in.CronJobController 327 | out.LegacySATokenCleaner = in.LegacySATokenCleaner 328 | out.NamespaceController = in.NamespaceController 329 | out.NodeIPAMController = in.NodeIPAMController 330 | out.NodeLifecycleController = in.NodeLifecycleController 331 | in.PersistentVolumeBinderController.DeepCopyInto(&out.PersistentVolumeBinderController) 332 | out.PodGCController = in.PodGCController 333 | out.ReplicaSetController = in.ReplicaSetController 334 | out.ReplicationController = in.ReplicationController 335 | out.ResourceQuotaController = in.ResourceQuotaController 336 | out.SAController = in.SAController 337 | out.ServiceController = in.ServiceController 338 | out.TTLAfterFinishedController = in.TTLAfterFinishedController 339 | out.ValidatingAdmissionPolicyStatusController = in.ValidatingAdmissionPolicyStatusController 340 | out.DeviceTaintEvictionController = in.DeviceTaintEvictionController 341 | return 342 | } 343 | 344 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeControllerManagerConfiguration. 345 | func (in *KubeControllerManagerConfiguration) DeepCopy() *KubeControllerManagerConfiguration { 346 | if in == nil { 347 | return nil 348 | } 349 | out := new(KubeControllerManagerConfiguration) 350 | in.DeepCopyInto(out) 351 | return out 352 | } 353 | 354 | // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. 355 | func (in *KubeControllerManagerConfiguration) DeepCopyObject() runtime.Object { 356 | if c := in.DeepCopy(); c != nil { 357 | return c 358 | } 359 | return nil 360 | } 361 | 362 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 363 | func (in *LegacySATokenCleanerConfiguration) DeepCopyInto(out *LegacySATokenCleanerConfiguration) { 364 | *out = *in 365 | out.CleanUpPeriod = in.CleanUpPeriod 366 | return 367 | } 368 | 369 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LegacySATokenCleanerConfiguration. 370 | func (in *LegacySATokenCleanerConfiguration) DeepCopy() *LegacySATokenCleanerConfiguration { 371 | if in == nil { 372 | return nil 373 | } 374 | out := new(LegacySATokenCleanerConfiguration) 375 | in.DeepCopyInto(out) 376 | return out 377 | } 378 | 379 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 380 | func (in *NamespaceControllerConfiguration) DeepCopyInto(out *NamespaceControllerConfiguration) { 381 | *out = *in 382 | out.NamespaceSyncPeriod = in.NamespaceSyncPeriod 383 | return 384 | } 385 | 386 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceControllerConfiguration. 387 | func (in *NamespaceControllerConfiguration) DeepCopy() *NamespaceControllerConfiguration { 388 | if in == nil { 389 | return nil 390 | } 391 | out := new(NamespaceControllerConfiguration) 392 | in.DeepCopyInto(out) 393 | return out 394 | } 395 | 396 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 397 | func (in *NodeIPAMControllerConfiguration) DeepCopyInto(out *NodeIPAMControllerConfiguration) { 398 | *out = *in 399 | return 400 | } 401 | 402 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeIPAMControllerConfiguration. 403 | func (in *NodeIPAMControllerConfiguration) DeepCopy() *NodeIPAMControllerConfiguration { 404 | if in == nil { 405 | return nil 406 | } 407 | out := new(NodeIPAMControllerConfiguration) 408 | in.DeepCopyInto(out) 409 | return out 410 | } 411 | 412 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 413 | func (in *NodeLifecycleControllerConfiguration) DeepCopyInto(out *NodeLifecycleControllerConfiguration) { 414 | *out = *in 415 | out.NodeStartupGracePeriod = in.NodeStartupGracePeriod 416 | out.NodeMonitorGracePeriod = in.NodeMonitorGracePeriod 417 | out.PodEvictionTimeout = in.PodEvictionTimeout 418 | return 419 | } 420 | 421 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeLifecycleControllerConfiguration. 422 | func (in *NodeLifecycleControllerConfiguration) DeepCopy() *NodeLifecycleControllerConfiguration { 423 | if in == nil { 424 | return nil 425 | } 426 | out := new(NodeLifecycleControllerConfiguration) 427 | in.DeepCopyInto(out) 428 | return out 429 | } 430 | 431 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 432 | func (in *PersistentVolumeBinderControllerConfiguration) DeepCopyInto(out *PersistentVolumeBinderControllerConfiguration) { 433 | *out = *in 434 | out.PVClaimBinderSyncPeriod = in.PVClaimBinderSyncPeriod 435 | in.VolumeConfiguration.DeepCopyInto(&out.VolumeConfiguration) 436 | return 437 | } 438 | 439 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeBinderControllerConfiguration. 440 | func (in *PersistentVolumeBinderControllerConfiguration) DeepCopy() *PersistentVolumeBinderControllerConfiguration { 441 | if in == nil { 442 | return nil 443 | } 444 | out := new(PersistentVolumeBinderControllerConfiguration) 445 | in.DeepCopyInto(out) 446 | return out 447 | } 448 | 449 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 450 | func (in *PersistentVolumeRecyclerConfiguration) DeepCopyInto(out *PersistentVolumeRecyclerConfiguration) { 451 | *out = *in 452 | return 453 | } 454 | 455 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeRecyclerConfiguration. 456 | func (in *PersistentVolumeRecyclerConfiguration) DeepCopy() *PersistentVolumeRecyclerConfiguration { 457 | if in == nil { 458 | return nil 459 | } 460 | out := new(PersistentVolumeRecyclerConfiguration) 461 | in.DeepCopyInto(out) 462 | return out 463 | } 464 | 465 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 466 | func (in *PodGCControllerConfiguration) DeepCopyInto(out *PodGCControllerConfiguration) { 467 | *out = *in 468 | return 469 | } 470 | 471 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodGCControllerConfiguration. 472 | func (in *PodGCControllerConfiguration) DeepCopy() *PodGCControllerConfiguration { 473 | if in == nil { 474 | return nil 475 | } 476 | out := new(PodGCControllerConfiguration) 477 | in.DeepCopyInto(out) 478 | return out 479 | } 480 | 481 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 482 | func (in *ReplicaSetControllerConfiguration) DeepCopyInto(out *ReplicaSetControllerConfiguration) { 483 | *out = *in 484 | return 485 | } 486 | 487 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetControllerConfiguration. 488 | func (in *ReplicaSetControllerConfiguration) DeepCopy() *ReplicaSetControllerConfiguration { 489 | if in == nil { 490 | return nil 491 | } 492 | out := new(ReplicaSetControllerConfiguration) 493 | in.DeepCopyInto(out) 494 | return out 495 | } 496 | 497 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 498 | func (in *ReplicationControllerConfiguration) DeepCopyInto(out *ReplicationControllerConfiguration) { 499 | *out = *in 500 | return 501 | } 502 | 503 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationControllerConfiguration. 504 | func (in *ReplicationControllerConfiguration) DeepCopy() *ReplicationControllerConfiguration { 505 | if in == nil { 506 | return nil 507 | } 508 | out := new(ReplicationControllerConfiguration) 509 | in.DeepCopyInto(out) 510 | return out 511 | } 512 | 513 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 514 | func (in *ResourceQuotaControllerConfiguration) DeepCopyInto(out *ResourceQuotaControllerConfiguration) { 515 | *out = *in 516 | out.ResourceQuotaSyncPeriod = in.ResourceQuotaSyncPeriod 517 | return 518 | } 519 | 520 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotaControllerConfiguration. 521 | func (in *ResourceQuotaControllerConfiguration) DeepCopy() *ResourceQuotaControllerConfiguration { 522 | if in == nil { 523 | return nil 524 | } 525 | out := new(ResourceQuotaControllerConfiguration) 526 | in.DeepCopyInto(out) 527 | return out 528 | } 529 | 530 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 531 | func (in *SAControllerConfiguration) DeepCopyInto(out *SAControllerConfiguration) { 532 | *out = *in 533 | return 534 | } 535 | 536 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SAControllerConfiguration. 537 | func (in *SAControllerConfiguration) DeepCopy() *SAControllerConfiguration { 538 | if in == nil { 539 | return nil 540 | } 541 | out := new(SAControllerConfiguration) 542 | in.DeepCopyInto(out) 543 | return out 544 | } 545 | 546 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 547 | func (in *StatefulSetControllerConfiguration) DeepCopyInto(out *StatefulSetControllerConfiguration) { 548 | *out = *in 549 | return 550 | } 551 | 552 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetControllerConfiguration. 553 | func (in *StatefulSetControllerConfiguration) DeepCopy() *StatefulSetControllerConfiguration { 554 | if in == nil { 555 | return nil 556 | } 557 | out := new(StatefulSetControllerConfiguration) 558 | in.DeepCopyInto(out) 559 | return out 560 | } 561 | 562 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 563 | func (in *TTLAfterFinishedControllerConfiguration) DeepCopyInto(out *TTLAfterFinishedControllerConfiguration) { 564 | *out = *in 565 | return 566 | } 567 | 568 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TTLAfterFinishedControllerConfiguration. 569 | func (in *TTLAfterFinishedControllerConfiguration) DeepCopy() *TTLAfterFinishedControllerConfiguration { 570 | if in == nil { 571 | return nil 572 | } 573 | out := new(TTLAfterFinishedControllerConfiguration) 574 | in.DeepCopyInto(out) 575 | return out 576 | } 577 | 578 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 579 | func (in *ValidatingAdmissionPolicyStatusControllerConfiguration) DeepCopyInto(out *ValidatingAdmissionPolicyStatusControllerConfiguration) { 580 | *out = *in 581 | return 582 | } 583 | 584 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyStatusControllerConfiguration. 585 | func (in *ValidatingAdmissionPolicyStatusControllerConfiguration) DeepCopy() *ValidatingAdmissionPolicyStatusControllerConfiguration { 586 | if in == nil { 587 | return nil 588 | } 589 | out := new(ValidatingAdmissionPolicyStatusControllerConfiguration) 590 | in.DeepCopyInto(out) 591 | return out 592 | } 593 | 594 | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. 595 | func (in *VolumeConfiguration) DeepCopyInto(out *VolumeConfiguration) { 596 | *out = *in 597 | if in.EnableHostPathProvisioning != nil { 598 | in, out := &in.EnableHostPathProvisioning, &out.EnableHostPathProvisioning 599 | *out = new(bool) 600 | **out = **in 601 | } 602 | if in.EnableDynamicProvisioning != nil { 603 | in, out := &in.EnableDynamicProvisioning, &out.EnableDynamicProvisioning 604 | *out = new(bool) 605 | **out = **in 606 | } 607 | out.PersistentVolumeRecyclerConfiguration = in.PersistentVolumeRecyclerConfiguration 608 | return 609 | } 610 | 611 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeConfiguration. 612 | func (in *VolumeConfiguration) DeepCopy() *VolumeConfiguration { 613 | if in == nil { 614 | return nil 615 | } 616 | out := new(VolumeConfiguration) 617 | in.DeepCopyInto(out) 618 | return out 619 | } 620 | -------------------------------------------------------------------------------- /config/v1alpha1/types.go: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2018 The Kubernetes Authors. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | package v1alpha1 18 | 19 | import ( 20 | metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 21 | cpconfigv1alpha1 "k8s.io/cloud-provider/config/v1alpha1" 22 | serviceconfigv1alpha1 "k8s.io/cloud-provider/controllers/service/config/v1alpha1" 23 | cmconfigv1alpha1 "k8s.io/controller-manager/config/v1alpha1" 24 | ) 25 | 26 | // PersistentVolumeRecyclerConfiguration contains elements describing persistent volume plugins. 27 | type PersistentVolumeRecyclerConfiguration struct { 28 | // maximumRetry is number of retries the PV recycler will execute on failure to recycle 29 | // PV. 30 | MaximumRetry int32 31 | // minimumTimeoutNFS is the minimum ActiveDeadlineSeconds to use for an NFS Recycler 32 | // pod. 33 | MinimumTimeoutNFS int32 34 | // podTemplateFilePathNFS is the file path to a pod definition used as a template for 35 | // NFS persistent volume recycling 36 | PodTemplateFilePathNFS string 37 | // incrementTimeoutNFS is the increment of time added per Gi to ActiveDeadlineSeconds 38 | // for an NFS scrubber pod. 39 | IncrementTimeoutNFS int32 40 | // podTemplateFilePathHostPath is the file path to a pod definition used as a template for 41 | // HostPath persistent volume recycling. This is for development and testing only and 42 | // will not work in a multi-node cluster. 43 | PodTemplateFilePathHostPath string 44 | // minimumTimeoutHostPath is the minimum ActiveDeadlineSeconds to use for a HostPath 45 | // Recycler pod. This is for development and testing only and will not work in a multi-node 46 | // cluster. 47 | MinimumTimeoutHostPath int32 48 | // incrementTimeoutHostPath is the increment of time added per Gi to ActiveDeadlineSeconds 49 | // for a HostPath scrubber pod. This is for development and testing only and will not work 50 | // in a multi-node cluster. 51 | IncrementTimeoutHostPath int32 52 | } 53 | 54 | // VolumeConfiguration contains *all* enumerated flags meant to configure all volume 55 | // plugins. From this config, the controller-manager binary will create many instances of 56 | // volume.VolumeConfig, each containing only the configuration needed for that plugin which 57 | // are then passed to the appropriate plugin. The ControllerManager binary is the only part 58 | // of the code which knows what plugins are supported and which flags correspond to each plugin. 59 | type VolumeConfiguration struct { 60 | // enableHostPathProvisioning enables HostPath PV provisioning when running without a 61 | // cloud provider. This allows testing and development of provisioning features. HostPath 62 | // provisioning is not supported in any way, won't work in a multi-node cluster, and 63 | // should not be used for anything other than testing or development. 64 | EnableHostPathProvisioning *bool 65 | // enableDynamicProvisioning enables the provisioning of volumes when running within an environment 66 | // that supports dynamic provisioning. Defaults to true. 67 | EnableDynamicProvisioning *bool 68 | // persistentVolumeRecyclerConfiguration holds configuration for persistent volume plugins. 69 | PersistentVolumeRecyclerConfiguration PersistentVolumeRecyclerConfiguration 70 | // volumePluginDir is the full path of the directory in which the flex 71 | // volume plugin should search for additional third party volume plugins 72 | FlexVolumePluginDir string 73 | } 74 | 75 | // GroupResource describes an group resource. 76 | type GroupResource struct { 77 | // group is the group portion of the GroupResource. 78 | Group string 79 | // resource is the resource portion of the GroupResource. 80 | Resource string 81 | } 82 | 83 | // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object 84 | 85 | // KubeControllerManagerConfiguration contains elements describing kube-controller manager. 86 | type KubeControllerManagerConfiguration struct { 87 | metav1.TypeMeta `json:",inline"` 88 | 89 | // Generic holds configuration for a generic controller-manager 90 | Generic cmconfigv1alpha1.GenericControllerManagerConfiguration 91 | // KubeCloudSharedConfiguration holds configuration for shared related features 92 | // both in cloud controller manager and kube-controller manager. 93 | KubeCloudShared cpconfigv1alpha1.KubeCloudSharedConfiguration 94 | 95 | // AttachDetachControllerConfiguration holds configuration for 96 | // AttachDetachController related features. 97 | AttachDetachController AttachDetachControllerConfiguration 98 | // CSRSigningControllerConfiguration holds configuration for 99 | // CSRSigningController related features. 100 | CSRSigningController CSRSigningControllerConfiguration 101 | // DaemonSetControllerConfiguration holds configuration for DaemonSetController 102 | // related features. 103 | DaemonSetController DaemonSetControllerConfiguration 104 | // DeploymentControllerConfiguration holds configuration for 105 | // DeploymentController related features. 106 | DeploymentController DeploymentControllerConfiguration 107 | // StatefulSetControllerConfiguration holds configuration for 108 | // StatefulSetController related features. 109 | StatefulSetController StatefulSetControllerConfiguration 110 | // DeprecatedControllerConfiguration holds configuration for some deprecated 111 | // features. 112 | DeprecatedController DeprecatedControllerConfiguration 113 | // EndpointControllerConfiguration holds configuration for EndpointController 114 | // related features. 115 | EndpointController EndpointControllerConfiguration 116 | // EndpointSliceControllerConfiguration holds configuration for 117 | // EndpointSliceController related features. 118 | EndpointSliceController EndpointSliceControllerConfiguration 119 | // EndpointSliceMirroringControllerConfiguration holds configuration for 120 | // EndpointSliceMirroringController related features. 121 | EndpointSliceMirroringController EndpointSliceMirroringControllerConfiguration 122 | // EphemeralVolumeControllerConfiguration holds configuration for EphemeralVolumeController 123 | // related features. 124 | EphemeralVolumeController EphemeralVolumeControllerConfiguration 125 | // GarbageCollectorControllerConfiguration holds configuration for 126 | // GarbageCollectorController related features. 127 | GarbageCollectorController GarbageCollectorControllerConfiguration 128 | // HPAControllerConfiguration holds configuration for HPAController related features. 129 | HPAController HPAControllerConfiguration 130 | // JobControllerConfiguration holds configuration for JobController related features. 131 | JobController JobControllerConfiguration 132 | // CronJobControllerConfiguration holds configuration for CronJobController related features. 133 | CronJobController CronJobControllerConfiguration 134 | // LegacySATokenCleanerConfiguration holds configuration for LegacySATokenCleaner related features. 135 | LegacySATokenCleaner LegacySATokenCleanerConfiguration 136 | // NamespaceControllerConfiguration holds configuration for NamespaceController 137 | // related features. 138 | NamespaceController NamespaceControllerConfiguration 139 | // NodeIPAMControllerConfiguration holds configuration for NodeIPAMController 140 | // related features. 141 | NodeIPAMController NodeIPAMControllerConfiguration 142 | // NodeLifecycleControllerConfiguration holds configuration for 143 | // NodeLifecycleController related features. 144 | NodeLifecycleController NodeLifecycleControllerConfiguration 145 | // PersistentVolumeBinderControllerConfiguration holds configuration for 146 | // PersistentVolumeBinderController related features. 147 | PersistentVolumeBinderController PersistentVolumeBinderControllerConfiguration 148 | // PodGCControllerConfiguration holds configuration for PodGCController 149 | // related features. 150 | PodGCController PodGCControllerConfiguration 151 | // ReplicaSetControllerConfiguration holds configuration for ReplicaSet related features. 152 | ReplicaSetController ReplicaSetControllerConfiguration 153 | // ReplicationControllerConfiguration holds configuration for 154 | // ReplicationController related features. 155 | ReplicationController ReplicationControllerConfiguration 156 | // ResourceQuotaControllerConfiguration holds configuration for 157 | // ResourceQuotaController related features. 158 | ResourceQuotaController ResourceQuotaControllerConfiguration 159 | // SAControllerConfiguration holds configuration for ServiceAccountController 160 | // related features. 161 | SAController SAControllerConfiguration 162 | // ServiceControllerConfiguration holds configuration for ServiceController 163 | // related features. 164 | ServiceController serviceconfigv1alpha1.ServiceControllerConfiguration 165 | // TTLAfterFinishedControllerConfiguration holds configuration for 166 | // TTLAfterFinishedController related features. 167 | TTLAfterFinishedController TTLAfterFinishedControllerConfiguration 168 | // ValidatingAdmissionPolicyStatusControllerConfiguration holds configuration for 169 | // ValidatingAdmissionPolicyStatusController related features. 170 | ValidatingAdmissionPolicyStatusController ValidatingAdmissionPolicyStatusControllerConfiguration 171 | // DeviceTaintEvictionControllerConfiguration contains elements configuring the device taint eviction controller. 172 | DeviceTaintEvictionController DeviceTaintEvictionControllerConfiguration 173 | } 174 | 175 | // AttachDetachControllerConfiguration contains elements describing AttachDetachController. 176 | type AttachDetachControllerConfiguration struct { 177 | // Reconciler runs a periodic loop to reconcile the desired state of the with 178 | // the actual state of the world by triggering attach detach operations. 179 | // This flag enables or disables reconcile. Is false by default, and thus enabled. 180 | DisableAttachDetachReconcilerSync bool 181 | // ReconcilerSyncLoopPeriod is the amount of time the reconciler sync states loop 182 | // wait between successive executions. Is set to 60 sec by default. 183 | ReconcilerSyncLoopPeriod metav1.Duration 184 | // DisableForceDetachOnTimeout disables force detach when the maximum unmount 185 | // time is exceeded. Is false by default, and thus force detach on unmount is 186 | // enabled. 187 | DisableForceDetachOnTimeout bool `json:"disableForceDetachOnTimeout"` 188 | } 189 | 190 | // CSRSigningControllerConfiguration contains elements describing CSRSigningController. 191 | type CSRSigningControllerConfiguration struct { 192 | // clusterSigningCertFile is the filename containing a PEM-encoded 193 | // X509 CA certificate used to issue cluster-scoped certificates 194 | ClusterSigningCertFile string 195 | // clusterSigningCertFile is the filename containing a PEM-encoded 196 | // RSA or ECDSA private key used to issue cluster-scoped certificates 197 | ClusterSigningKeyFile string 198 | 199 | // kubeletServingSignerConfiguration holds the certificate and key used to issue certificates for the kubernetes.io/kubelet-serving signer 200 | KubeletServingSignerConfiguration CSRSigningConfiguration 201 | // kubeletClientSignerConfiguration holds the certificate and key used to issue certificates for the kubernetes.io/kube-apiserver-client-kubelet 202 | KubeletClientSignerConfiguration CSRSigningConfiguration 203 | // kubeAPIServerClientSignerConfiguration holds the certificate and key used to issue certificates for the kubernetes.io/kube-apiserver-client 204 | KubeAPIServerClientSignerConfiguration CSRSigningConfiguration 205 | // legacyUnknownSignerConfiguration holds the certificate and key used to issue certificates for the kubernetes.io/legacy-unknown 206 | LegacyUnknownSignerConfiguration CSRSigningConfiguration 207 | 208 | // clusterSigningDuration is the max length of duration signed certificates will be given. 209 | // Individual CSRs may request shorter certs by setting spec.expirationSeconds. 210 | ClusterSigningDuration metav1.Duration 211 | } 212 | 213 | // CSRSigningConfiguration holds information about a particular CSR signer 214 | type CSRSigningConfiguration struct { 215 | // certFile is the filename containing a PEM-encoded 216 | // X509 CA certificate used to issue certificates 217 | CertFile string 218 | // keyFile is the filename containing a PEM-encoded 219 | // RSA or ECDSA private key used to issue certificates 220 | KeyFile string 221 | } 222 | 223 | // DaemonSetControllerConfiguration contains elements describing DaemonSetController. 224 | type DaemonSetControllerConfiguration struct { 225 | // concurrentDaemonSetSyncs is the number of daemonset objects that are 226 | // allowed to sync concurrently. Larger number = more responsive daemonset, 227 | // but more CPU (and network) load. 228 | ConcurrentDaemonSetSyncs int32 229 | } 230 | 231 | // DeploymentControllerConfiguration contains elements describing DeploymentController. 232 | type DeploymentControllerConfiguration struct { 233 | // concurrentDeploymentSyncs is the number of deployment objects that are 234 | // allowed to sync concurrently. Larger number = more responsive deployments, 235 | // but more CPU (and network) load. 236 | ConcurrentDeploymentSyncs int32 237 | } 238 | 239 | // StatefulSetControllerConfiguration contains elements describing StatefulSetController. 240 | type StatefulSetControllerConfiguration struct { 241 | // concurrentStatefulSetSyncs is the number of statefulset objects that are 242 | // allowed to sync concurrently. Larger number = more responsive statefulsets, 243 | // but more CPU (and network) load. 244 | ConcurrentStatefulSetSyncs int32 245 | } 246 | 247 | // DeprecatedControllerConfiguration contains elements be deprecated. 248 | type DeprecatedControllerConfiguration struct { 249 | } 250 | 251 | // EndpointControllerConfiguration contains elements describing EndpointController. 252 | type EndpointControllerConfiguration struct { 253 | // concurrentEndpointSyncs is the number of endpoint syncing operations 254 | // that will be done concurrently. Larger number = faster endpoint updating, 255 | // but more CPU (and network) load. 256 | ConcurrentEndpointSyncs int32 257 | 258 | // EndpointUpdatesBatchPeriod describes the length of endpoint updates batching period. 259 | // Processing of pod changes will be delayed by this duration to join them with potential 260 | // upcoming updates and reduce the overall number of endpoints updates. 261 | EndpointUpdatesBatchPeriod metav1.Duration 262 | } 263 | 264 | // EndpointSliceControllerConfiguration contains elements describing 265 | // EndpointSliceController. 266 | type EndpointSliceControllerConfiguration struct { 267 | // concurrentServiceEndpointSyncs is the number of service endpoint syncing 268 | // operations that will be done concurrently. Larger number = faster 269 | // endpoint slice updating, but more CPU (and network) load. 270 | ConcurrentServiceEndpointSyncs int32 271 | 272 | // maxEndpointsPerSlice is the maximum number of endpoints that will be 273 | // added to an EndpointSlice. More endpoints per slice will result in fewer 274 | // and larger endpoint slices, but larger resources. 275 | MaxEndpointsPerSlice int32 276 | 277 | // EndpointUpdatesBatchPeriod describes the length of endpoint updates batching period. 278 | // Processing of pod changes will be delayed by this duration to join them with potential 279 | // upcoming updates and reduce the overall number of endpoints updates. 280 | EndpointUpdatesBatchPeriod metav1.Duration 281 | } 282 | 283 | // EndpointSliceMirroringControllerConfiguration contains elements describing 284 | // EndpointSliceMirroringController. 285 | type EndpointSliceMirroringControllerConfiguration struct { 286 | // mirroringConcurrentServiceEndpointSyncs is the number of service endpoint 287 | // syncing operations that will be done concurrently. Larger number = faster 288 | // endpoint slice updating, but more CPU (and network) load. 289 | MirroringConcurrentServiceEndpointSyncs int32 290 | 291 | // mirroringMaxEndpointsPerSubset is the maximum number of endpoints that 292 | // will be mirrored to an EndpointSlice for an EndpointSubset. 293 | MirroringMaxEndpointsPerSubset int32 294 | 295 | // mirroringEndpointUpdatesBatchPeriod can be used to batch EndpointSlice 296 | // updates. All updates triggered by EndpointSlice changes will be delayed 297 | // by up to 'mirroringEndpointUpdatesBatchPeriod'. If other addresses in the 298 | // same Endpoints resource change in that period, they will be batched to a 299 | // single EndpointSlice update. Default 0 value means that each Endpoints 300 | // update triggers an EndpointSlice update. 301 | MirroringEndpointUpdatesBatchPeriod metav1.Duration 302 | } 303 | 304 | // EphemeralVolumeControllerConfiguration contains elements describing EphemeralVolumeController. 305 | type EphemeralVolumeControllerConfiguration struct { 306 | // ConcurrentEphemeralVolumeSyncseSyncs is the number of ephemeral volume syncing operations 307 | // that will be done concurrently. Larger number = faster ephemeral volume updating, 308 | // but more CPU (and network) load. 309 | ConcurrentEphemeralVolumeSyncs int32 310 | } 311 | 312 | // GarbageCollectorControllerConfiguration contains elements describing GarbageCollectorController. 313 | type GarbageCollectorControllerConfiguration struct { 314 | // enables the generic garbage collector. MUST be synced with the 315 | // corresponding flag of the kube-apiserver. WARNING: the generic garbage 316 | // collector is an alpha feature. 317 | EnableGarbageCollector *bool 318 | // concurrentGCSyncs is the number of garbage collector workers that are 319 | // allowed to sync concurrently. 320 | ConcurrentGCSyncs int32 321 | // gcIgnoredResources is the list of GroupResources that garbage collection should ignore. 322 | GCIgnoredResources []GroupResource 323 | } 324 | 325 | // HPAControllerConfiguration contains elements describing HPAController. 326 | type HPAControllerConfiguration struct { 327 | // ConcurrentHorizontalPodAutoscalerSyncs is the number of HPA objects that are allowed to sync concurrently. 328 | // Larger number = more responsive HPA processing, but more CPU (and network) load. 329 | ConcurrentHorizontalPodAutoscalerSyncs int32 330 | // HorizontalPodAutoscalerSyncPeriod is the period for syncing the number of 331 | // pods in horizontal pod autoscaler. 332 | HorizontalPodAutoscalerSyncPeriod metav1.Duration 333 | // HorizontalPodAutoscalerDowncaleStabilizationWindow is a period for which autoscaler will look 334 | // backwards and not scale down below any recommendation it made during that period. 335 | HorizontalPodAutoscalerDownscaleStabilizationWindow metav1.Duration 336 | // HorizontalPodAutoscalerTolerance is the tolerance for when 337 | // resource usage suggests upscaling/downscaling 338 | HorizontalPodAutoscalerTolerance float64 339 | // HorizontalPodAutoscalerCPUInitializationPeriod is the period after pod start when CPU samples 340 | // might be skipped. 341 | HorizontalPodAutoscalerCPUInitializationPeriod metav1.Duration 342 | // HorizontalPodAutoscalerInitialReadinessDelay is period after pod start during which readiness 343 | // changes are treated as readiness being set for the first time. The only effect of this is that 344 | // HPA will disregard CPU samples from unready pods that had last readiness change during that 345 | // period. 346 | HorizontalPodAutoscalerInitialReadinessDelay metav1.Duration 347 | } 348 | 349 | // JobControllerConfiguration contains elements describing JobController. 350 | type JobControllerConfiguration struct { 351 | // concurrentJobSyncs is the number of job objects that are 352 | // allowed to sync concurrently. Larger number = more responsive jobs, 353 | // but more CPU (and network) load. 354 | ConcurrentJobSyncs int32 355 | } 356 | 357 | // CronJobControllerConfiguration contains elements describing CrongJob2Controller. 358 | type CronJobControllerConfiguration struct { 359 | // concurrentCronJobSyncs is the number of job objects that are 360 | // allowed to sync concurrently. Larger number = more responsive jobs, 361 | // but more CPU (and network) load. 362 | ConcurrentCronJobSyncs int32 363 | } 364 | 365 | // LegacySATokenCleanerConfiguration contains elements describing LegacySATokenCleaner 366 | type LegacySATokenCleanerConfiguration struct { 367 | // CleanUpPeriod is the period of time since the last usage of an 368 | // auto-generated service account token before it can be deleted. 369 | CleanUpPeriod metav1.Duration 370 | } 371 | 372 | // NamespaceControllerConfiguration contains elements describing NamespaceController. 373 | type NamespaceControllerConfiguration struct { 374 | // namespaceSyncPeriod is the period for syncing namespace life-cycle 375 | // updates. 376 | NamespaceSyncPeriod metav1.Duration 377 | // concurrentNamespaceSyncs is the number of namespace objects that are 378 | // allowed to sync concurrently. 379 | ConcurrentNamespaceSyncs int32 380 | } 381 | 382 | // NodeIPAMControllerConfiguration contains elements describing NodeIpamController. 383 | type NodeIPAMControllerConfiguration struct { 384 | // serviceCIDR is CIDR Range for Services in cluster. 385 | ServiceCIDR string 386 | // secondaryServiceCIDR is CIDR Range for Services in cluster. This is used in dual stack clusters. SecondaryServiceCIDR must be of different IP family than ServiceCIDR 387 | SecondaryServiceCIDR string 388 | // NodeCIDRMaskSize is the mask size for node cidr in cluster. 389 | NodeCIDRMaskSize int32 390 | // NodeCIDRMaskSizeIPv4 is the mask size for node cidr in dual-stack cluster. 391 | NodeCIDRMaskSizeIPv4 int32 392 | // NodeCIDRMaskSizeIPv6 is the mask size for node cidr in dual-stack cluster. 393 | NodeCIDRMaskSizeIPv6 int32 394 | } 395 | 396 | // NodeLifecycleControllerConfiguration contains elements describing NodeLifecycleController. 397 | type NodeLifecycleControllerConfiguration struct { 398 | // nodeEvictionRate is the number of nodes per second on which pods are deleted in case of node failure when a zone is healthy 399 | NodeEvictionRate float32 400 | // secondaryNodeEvictionRate is the number of nodes per second on which pods are deleted in case of node failure when a zone is unhealthy 401 | SecondaryNodeEvictionRate float32 402 | // nodeStartupGracePeriod is the amount of time which we allow starting a node to 403 | // be unresponsive before marking it unhealthy. 404 | NodeStartupGracePeriod metav1.Duration 405 | // nodeMontiorGracePeriod is the amount of time which we allow a running node to be 406 | // unresponsive before marking it unhealthy. Must be N times more than kubelet's 407 | // nodeStatusUpdateFrequency, where N means number of retries allowed for kubelet 408 | // to post node status. This value should also be greater than the sum of 409 | // HTTP2_PING_TIMEOUT_SECONDS and HTTP2_READ_IDLE_TIMEOUT_SECONDS. 410 | NodeMonitorGracePeriod metav1.Duration 411 | // podEvictionTimeout is the grace period for deleting pods on failed nodes. 412 | PodEvictionTimeout metav1.Duration 413 | // secondaryNodeEvictionRate is implicitly overridden to 0 for clusters smaller than or equal to largeClusterSizeThreshold 414 | LargeClusterSizeThreshold int32 415 | // Zone is treated as unhealthy in nodeEvictionRate and secondaryNodeEvictionRate when at least 416 | // unhealthyZoneThreshold (no less than 3) of Nodes in the zone are NotReady 417 | UnhealthyZoneThreshold float32 418 | } 419 | 420 | // PersistentVolumeBinderControllerConfiguration contains elements describing 421 | // PersistentVolumeBinderController. 422 | type PersistentVolumeBinderControllerConfiguration struct { 423 | // pvClaimBinderSyncPeriod is the period for syncing persistent volumes 424 | // and persistent volume claims. 425 | PVClaimBinderSyncPeriod metav1.Duration 426 | // volumeConfiguration holds configuration for volume related features. 427 | VolumeConfiguration VolumeConfiguration 428 | } 429 | 430 | // PodGCControllerConfiguration contains elements describing PodGCController. 431 | type PodGCControllerConfiguration struct { 432 | // terminatedPodGCThreshold is the number of terminated pods that can exist 433 | // before the terminated pod garbage collector starts deleting terminated pods. 434 | // If <= 0, the terminated pod garbage collector is disabled. 435 | TerminatedPodGCThreshold int32 436 | } 437 | 438 | // ReplicaSetControllerConfiguration contains elements describing ReplicaSetController. 439 | type ReplicaSetControllerConfiguration struct { 440 | // concurrentRSSyncs is the number of replica sets that are allowed to sync 441 | // concurrently. Larger number = more responsive replica management, but more 442 | // CPU (and network) load. 443 | ConcurrentRSSyncs int32 444 | } 445 | 446 | // ReplicationControllerConfiguration contains elements describing ReplicationController. 447 | type ReplicationControllerConfiguration struct { 448 | // concurrentRCSyncs is the number of replication controllers that are 449 | // allowed to sync concurrently. Larger number = more responsive replica 450 | // management, but more CPU (and network) load. 451 | ConcurrentRCSyncs int32 452 | } 453 | 454 | // ResourceQuotaControllerConfiguration contains elements describing ResourceQuotaController. 455 | type ResourceQuotaControllerConfiguration struct { 456 | // resourceQuotaSyncPeriod is the period for syncing quota usage status 457 | // in the system. 458 | ResourceQuotaSyncPeriod metav1.Duration 459 | // concurrentResourceQuotaSyncs is the number of resource quotas that are 460 | // allowed to sync concurrently. Larger number = more responsive quota 461 | // management, but more CPU (and network) load. 462 | ConcurrentResourceQuotaSyncs int32 463 | } 464 | 465 | // SAControllerConfiguration contains elements describing ServiceAccountController. 466 | type SAControllerConfiguration struct { 467 | // serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key 468 | // used to sign service account tokens. 469 | ServiceAccountKeyFile string 470 | // concurrentSATokenSyncs is the number of service account token syncing operations 471 | // that will be done concurrently. 472 | ConcurrentSATokenSyncs int32 473 | // rootCAFile is the root certificate authority will be included in service 474 | // account's token secret. This must be a valid PEM-encoded CA bundle. 475 | RootCAFile string 476 | } 477 | 478 | // TTLAfterFinishedControllerConfiguration contains elements describing TTLAfterFinishedController. 479 | type TTLAfterFinishedControllerConfiguration struct { 480 | // concurrentTTLSyncs is the number of TTL-after-finished collector workers that are 481 | // allowed to sync concurrently. 482 | ConcurrentTTLSyncs int32 483 | } 484 | 485 | // ValidatingAdmissionPolicyStatusControllerConfiguration contains elements describing ValidatingAdmissionPolicyStatusController. 486 | type ValidatingAdmissionPolicyStatusControllerConfiguration struct { 487 | // ConcurrentPolicySyncs is the number of policy objects that are 488 | // allowed to sync concurrently. Larger number = quicker type checking, 489 | // but more CPU (and network) load. 490 | // The default value is 5. 491 | ConcurrentPolicySyncs int32 492 | } 493 | 494 | // DeviceTaintEvictionControllerConfiguration contains elements configuring the device taint eviction controller. 495 | type DeviceTaintEvictionControllerConfiguration struct { 496 | // ConcurrentSyncs is the number of operations (deleting a pod, updating a ResourcClaim status, etc.) 497 | // that will be done concurrently. Larger number = processing, but more CPU (and network) load. 498 | // 499 | // The default is 10. 500 | ConcurrentSyncs int32 501 | } 502 | --------------------------------------------------------------------------------