kubelet: Move RotateCertificates to the KubeletConfiguration struct
This commit is contained in:
parent
10b8665a1c
commit
2590e127f9
@ -54,7 +54,6 @@ const defaultRootDir = "/var/lib/kubelet"
|
|||||||
type KubeletFlags struct {
|
type KubeletFlags struct {
|
||||||
KubeConfig string
|
KubeConfig string
|
||||||
BootstrapKubeconfig string
|
BootstrapKubeconfig string
|
||||||
RotateCertificates bool
|
|
||||||
|
|
||||||
// Insert a probability of random errors during calls to the master.
|
// Insert a probability of random errors during calls to the master.
|
||||||
ChaosChance float64
|
ChaosChance float64
|
||||||
@ -232,7 +231,6 @@ func NewKubeletFlags() *KubeletFlags {
|
|||||||
RegisterSchedulable: true,
|
RegisterSchedulable: true,
|
||||||
ExperimentalKernelMemcgNotification: false,
|
ExperimentalKernelMemcgNotification: false,
|
||||||
RemoteRuntimeEndpoint: remoteRuntimeEndpoint,
|
RemoteRuntimeEndpoint: remoteRuntimeEndpoint,
|
||||||
RotateCertificates: false,
|
|
||||||
// TODO(#54161:v1.11.0): Remove --enable-custom-metrics flag, it is deprecated.
|
// TODO(#54161:v1.11.0): Remove --enable-custom-metrics flag, it is deprecated.
|
||||||
EnableCustomMetrics: false,
|
EnableCustomMetrics: false,
|
||||||
NodeLabels: make(map[string]string),
|
NodeLabels: make(map[string]string),
|
||||||
@ -352,7 +350,6 @@ func (f *KubeletFlags) AddFlags(mainfs *pflag.FlagSet) {
|
|||||||
"If the file specified by --kubeconfig does not exist, the bootstrap kubeconfig is used to request a client certificate from the API server. "+
|
"If the file specified by --kubeconfig does not exist, the bootstrap kubeconfig is used to request a client certificate from the API server. "+
|
||||||
"On success, a kubeconfig file referencing the generated client certificate and key is written to the path specified by --kubeconfig. "+
|
"On success, a kubeconfig file referencing the generated client certificate and key is written to the path specified by --kubeconfig. "+
|
||||||
"The client certificate and key file will be stored in the directory pointed by --cert-dir.")
|
"The client certificate and key file will be stored in the directory pointed by --cert-dir.")
|
||||||
fs.BoolVar(&f.RotateCertificates, "rotate-certificates", f.RotateCertificates, "<Warning: Beta feature> Auto rotate the kubelet client certificates by requesting new certificates from the kube-apiserver when the certificate expiration approaches.")
|
|
||||||
|
|
||||||
fs.BoolVar(&f.ReallyCrashForTesting, "really-crash-for-testing", f.ReallyCrashForTesting, "If true, when panics occur crash. Intended for testing.")
|
fs.BoolVar(&f.ReallyCrashForTesting, "really-crash-for-testing", f.ReallyCrashForTesting, "If true, when panics occur crash. Intended for testing.")
|
||||||
fs.Float64Var(&f.ChaosChance, "chaos-chance", f.ChaosChance, "If > 0.0, introduce random client errors and latency. Intended for testing.")
|
fs.Float64Var(&f.ChaosChance, "chaos-chance", f.ChaosChance, "If > 0.0, introduce random client errors and latency. Intended for testing.")
|
||||||
@ -497,6 +494,7 @@ func AddKubeletConfigFlags(mainfs *pflag.FlagSet, c *kubeletconfig.KubeletConfig
|
|||||||
fs.StringVar(&c.TLSMinVersion, "tls-min-version", c.TLSMinVersion,
|
fs.StringVar(&c.TLSMinVersion, "tls-min-version", c.TLSMinVersion,
|
||||||
"Minimum TLS version supported. "+
|
"Minimum TLS version supported. "+
|
||||||
"Value must match version names from https://golang.org/pkg/crypto/tls/#pkg-constants.")
|
"Value must match version names from https://golang.org/pkg/crypto/tls/#pkg-constants.")
|
||||||
|
fs.BoolVar(&c.RotateCertificates, "rotate-certificates", c.RotateCertificates, "<Warning: Beta feature> Auto rotate the kubelet client certificates by requesting new certificates from the kube-apiserver when the certificate expiration approaches.")
|
||||||
|
|
||||||
fs.Int32Var(&c.RegistryPullQPS, "registry-qps", c.RegistryPullQPS, "If > 0, limit registry pull QPS to this value. If 0, unlimited.")
|
fs.Int32Var(&c.RegistryPullQPS, "registry-qps", c.RegistryPullQPS, "If > 0, limit registry pull QPS to this value. If 0, unlimited.")
|
||||||
fs.Int32Var(&c.RegistryBurst, "registry-burst", c.RegistryBurst, "Maximum size of a bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry-qps. Only used if --registry-qps > 0")
|
fs.Int32Var(&c.RegistryBurst, "registry-burst", c.RegistryBurst, "Maximum size of a bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry-qps. Only used if --registry-qps > 0")
|
||||||
|
@ -188,6 +188,7 @@ var (
|
|||||||
"KubeReserved[*]",
|
"KubeReserved[*]",
|
||||||
"KubeletCgroups",
|
"KubeletCgroups",
|
||||||
"MakeIPTablesUtilChains",
|
"MakeIPTablesUtilChains",
|
||||||
|
"RotateCertificates",
|
||||||
"ServerTLSBootstrap",
|
"ServerTLSBootstrap",
|
||||||
"StaticPodURL",
|
"StaticPodURL",
|
||||||
"StaticPodURLHeader[*][*]",
|
"StaticPodURLHeader[*][*]",
|
||||||
|
@ -82,6 +82,11 @@ type KubeletConfiguration struct {
|
|||||||
// TLSMinVersion is the minimum TLS version supported.
|
// TLSMinVersion is the minimum TLS version supported.
|
||||||
// Values are from tls package constants (https://golang.org/pkg/crypto/tls/#pkg-constants).
|
// Values are from tls package constants (https://golang.org/pkg/crypto/tls/#pkg-constants).
|
||||||
TLSMinVersion string
|
TLSMinVersion string
|
||||||
|
// rotateCertificates enables client certificate rotation. The Kubelet will request a
|
||||||
|
// new certificate from the certificates.k8s.io API. This requires an approver to approve the
|
||||||
|
// certificate signing requests. The RotateKubeletClientCertificate feature
|
||||||
|
// must be enabled.
|
||||||
|
RotateCertificates bool
|
||||||
// serverTLSBootstrap enables server certificate bootstrap. Instead of self
|
// serverTLSBootstrap enables server certificate bootstrap. Instead of self
|
||||||
// signing a serving certificate, the Kubelet will request a certificate from
|
// signing a serving certificate, the Kubelet will request a certificate from
|
||||||
// the certificates.k8s.io API. This requires an approver to approve the
|
// the certificates.k8s.io API. This requires an approver to approve the
|
||||||
|
@ -108,12 +108,20 @@ type KubeletConfiguration struct {
|
|||||||
// Default: ""
|
// Default: ""
|
||||||
// +optional
|
// +optional
|
||||||
TLSMinVersion string `json:"tlsMinVersion,omitempty"`
|
TLSMinVersion string `json:"tlsMinVersion,omitempty"`
|
||||||
|
// rotateCertificates enables client certificate rotation. The Kubelet will request a
|
||||||
|
// new certificate from the certificates.k8s.io API. This requires an approver to approve the
|
||||||
|
// certificate signing requests. The RotateKubeletClientCertificate feature
|
||||||
|
// must be enabled.
|
||||||
|
// Default: false
|
||||||
|
// +optional
|
||||||
|
RotateCertificates bool `json:"rotateCertificates,omitempty"`
|
||||||
// serverTLSBootstrap enables server certificate bootstrap. Instead of self
|
// serverTLSBootstrap enables server certificate bootstrap. Instead of self
|
||||||
// signing a serving certificate, the Kubelet will request a certificate from
|
// signing a serving certificate, the Kubelet will request a certificate from
|
||||||
// the certificates.k8s.io API. This requires an approver to approve the
|
// the certificates.k8s.io API. This requires an approver to approve the
|
||||||
// certificate signing requests. The RotateKubeletServerCertificate feature
|
// certificate signing requests. The RotateKubeletServerCertificate feature
|
||||||
// must be enabled.
|
// must be enabled.
|
||||||
// Default: false
|
// Default: false
|
||||||
|
// +optional
|
||||||
ServerTLSBootstrap bool `json:"serverTLSBootstrap,omitempty"`
|
ServerTLSBootstrap bool `json:"serverTLSBootstrap,omitempty"`
|
||||||
// authentication specifies how requests to the Kubelet's server are authenticated
|
// authentication specifies how requests to the Kubelet's server are authenticated
|
||||||
// Defaults:
|
// Defaults:
|
||||||
|
@ -93,6 +93,9 @@ func ValidateKubeletConfiguration(kc *kubeletconfig.KubeletConfiguration) error
|
|||||||
if kc.RegistryPullQPS < 0 {
|
if kc.RegistryPullQPS < 0 {
|
||||||
allErrors = append(allErrors, fmt.Errorf("invalid configuration: RegistryPullQPS (--registry-qps) %v must not be a negative number", kc.RegistryPullQPS))
|
allErrors = append(allErrors, fmt.Errorf("invalid configuration: RegistryPullQPS (--registry-qps) %v must not be a negative number", kc.RegistryPullQPS))
|
||||||
}
|
}
|
||||||
|
if kc.RotateCertificates && !localFeatureGate.Enabled(features.RotateKubeletClientCertificate) {
|
||||||
|
allErrors = append(allErrors, fmt.Errorf("invalid configuration: RotateCertificates %v requires feature gate RotateKubeletClientCertificate", kc.RotateCertificates))
|
||||||
|
}
|
||||||
if kc.ServerTLSBootstrap && !localFeatureGate.Enabled(features.RotateKubeletServerCertificate) {
|
if kc.ServerTLSBootstrap && !localFeatureGate.Enabled(features.RotateKubeletServerCertificate) {
|
||||||
allErrors = append(allErrors, fmt.Errorf("invalid configuration: ServerTLSBootstrap %v requires feature gate RotateKubeletServerCertificate", kc.ServerTLSBootstrap))
|
allErrors = append(allErrors, fmt.Errorf("invalid configuration: ServerTLSBootstrap %v requires feature gate RotateKubeletServerCertificate", kc.ServerTLSBootstrap))
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user