mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-01-05 07:27:21 +00:00
Add a separate flags struct for Kubelet flags
Kubelet flags are not necessarily appropriate for the KubeletConfiguration object. For example, this PR also removes HostnameOverride and NodeIP from KubeletConfiguration. This is a preleminary step to enabling Nodes to share configurations, as part of the dynamic Kubelet configuration feature (#29459). Fields that must be unique for each node inhibit sharing, because their values, by definition, cannot be shared.
This commit is contained in:
@@ -120,6 +120,12 @@ const (
|
||||
HairpinNone = "none"
|
||||
)
|
||||
|
||||
// A configuration field should go in KubeletFlags instead of KubeletConfiguration if any of these are true:
|
||||
// - its value will never, or cannot safely be changed during the lifetime of a node
|
||||
// - its value cannot be safely shared between nodes at the same time (e.g. a hostname)
|
||||
// KubeletConfiguration is intended to be shared between nodes
|
||||
// In general, please try to avoid adding flags or configuration fields,
|
||||
// we already have a confusingly large amount of them.
|
||||
// TODO: curate the ordering and structure of this config object
|
||||
type KubeletConfiguration struct {
|
||||
metav1.TypeMeta
|
||||
@@ -167,9 +173,6 @@ type KubeletConfiguration struct {
|
||||
Authentication KubeletAuthentication
|
||||
// authorization specifies how requests to the Kubelet's server are authorized
|
||||
Authorization KubeletAuthorization
|
||||
// hostnameOverride is the hostname used to identify the kubelet instead
|
||||
// of the actual hostname.
|
||||
HostnameOverride string
|
||||
// podInfraContainerImage is the image whose network/ipc namespaces
|
||||
// containers in each pod will use.
|
||||
PodInfraContainerImage string
|
||||
@@ -405,10 +408,6 @@ type KubeletConfiguration struct {
|
||||
// wait before transitioning out of out-of-disk node condition status.
|
||||
// +optional
|
||||
OutOfDiskTransitionFrequency metav1.Duration
|
||||
// nodeIP is IP address of the node. If set, kubelet will use this IP
|
||||
// address for the node.
|
||||
// +optional
|
||||
NodeIP string
|
||||
// nodeLabels to add when registering the node in the cluster.
|
||||
NodeLabels map[string]string
|
||||
// nonMasqueradeCIDR configures masquerading: traffic to IPs outside this range will use IP masquerade.
|
||||
|
||||
@@ -175,6 +175,12 @@ type LeaderElectionConfiguration struct {
|
||||
RetryPeriod metav1.Duration `json:"retryPeriod"`
|
||||
}
|
||||
|
||||
// A configuration field should go in KubeletFlags instead of KubeletConfiguration if any of these are true:
|
||||
// - its value will never, or cannot safely be changed during the lifetime of a node
|
||||
// - its value cannot be safely shared between nodes at the same time (e.g. a hostname)
|
||||
// KubeletConfiguration is intended to be shared between nodes
|
||||
// In general, please try to avoid adding flags or configuration fields,
|
||||
// we already have a confusingly large amount of them.
|
||||
type KubeletConfiguration struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
|
||||
@@ -221,9 +227,6 @@ type KubeletConfiguration struct {
|
||||
Authentication KubeletAuthentication `json:"authentication"`
|
||||
// authorization specifies how requests to the Kubelet's server are authorized
|
||||
Authorization KubeletAuthorization `json:"authorization"`
|
||||
// hostnameOverride is the hostname used to identify the kubelet instead
|
||||
// of the actual hostname.
|
||||
HostnameOverride string `json:"hostnameOverride"`
|
||||
// podInfraContainerImage is the image whose network/ipc namespaces
|
||||
// containers in each pod will use.
|
||||
PodInfraContainerImage string `json:"podInfraContainerImage"`
|
||||
@@ -449,9 +452,6 @@ type KubeletConfiguration struct {
|
||||
// outOfDiskTransitionFrequency is duration for which the kubelet has to
|
||||
// wait before transitioning out of out-of-disk node condition status.
|
||||
OutOfDiskTransitionFrequency metav1.Duration `json:"outOfDiskTransitionFrequency"`
|
||||
// nodeIP is IP address of the node. If set, kubelet will use this IP
|
||||
// address for the node.
|
||||
NodeIP string `json:"nodeIP"`
|
||||
// nodeLabels to add when registering the node in the cluster.
|
||||
NodeLabels map[string]string `json:"nodeLabels"`
|
||||
// nonMasqueradeCIDR configures masquerading: traffic to IPs outside this range will use IP masquerade.
|
||||
|
||||
@@ -271,7 +271,6 @@ func autoConvert_v1alpha1_KubeletConfiguration_To_componentconfig_KubeletConfigu
|
||||
if err := Convert_v1alpha1_KubeletAuthorization_To_componentconfig_KubeletAuthorization(&in.Authorization, &out.Authorization, s); err != nil {
|
||||
return err
|
||||
}
|
||||
out.HostnameOverride = in.HostnameOverride
|
||||
out.PodInfraContainerImage = in.PodInfraContainerImage
|
||||
out.DockerEndpoint = in.DockerEndpoint
|
||||
out.RootDirectory = in.RootDirectory
|
||||
@@ -377,7 +376,6 @@ func autoConvert_v1alpha1_KubeletConfiguration_To_componentconfig_KubeletConfigu
|
||||
return err
|
||||
}
|
||||
out.OutOfDiskTransitionFrequency = in.OutOfDiskTransitionFrequency
|
||||
out.NodeIP = in.NodeIP
|
||||
out.NodeLabels = *(*map[string]string)(unsafe.Pointer(&in.NodeLabels))
|
||||
out.NonMasqueradeCIDR = in.NonMasqueradeCIDR
|
||||
out.EnableCustomMetrics = in.EnableCustomMetrics
|
||||
@@ -450,7 +448,6 @@ func autoConvert_componentconfig_KubeletConfiguration_To_v1alpha1_KubeletConfigu
|
||||
if err := Convert_componentconfig_KubeletAuthorization_To_v1alpha1_KubeletAuthorization(&in.Authorization, &out.Authorization, s); err != nil {
|
||||
return err
|
||||
}
|
||||
out.HostnameOverride = in.HostnameOverride
|
||||
out.PodInfraContainerImage = in.PodInfraContainerImage
|
||||
out.DockerEndpoint = in.DockerEndpoint
|
||||
out.RootDirectory = in.RootDirectory
|
||||
@@ -576,7 +573,6 @@ func autoConvert_componentconfig_KubeletConfiguration_To_v1alpha1_KubeletConfigu
|
||||
return err
|
||||
}
|
||||
out.OutOfDiskTransitionFrequency = in.OutOfDiskTransitionFrequency
|
||||
out.NodeIP = in.NodeIP
|
||||
out.NodeLabels = *(*map[string]string)(unsafe.Pointer(&in.NodeLabels))
|
||||
out.NonMasqueradeCIDR = in.NonMasqueradeCIDR
|
||||
out.EnableCustomMetrics = in.EnableCustomMetrics
|
||||
|
||||
Reference in New Issue
Block a user