Merge pull request #104624 from Haleygo/support-null-resolvConf-in-configFile
When resolvConf is "" in kubelet configuration, pod will be created with wrong dns policy
This commit is contained in:
commit
fa2657b8b2
@ -209,11 +209,11 @@ func (kc *kubeletConfig) Default(cfg *kubeadmapi.ClusterConfiguration, _ *kubead
|
|||||||
klog.Warningf("cannot determine if systemd-resolved is active: %v", err)
|
klog.Warningf("cannot determine if systemd-resolved is active: %v", err)
|
||||||
}
|
}
|
||||||
if ok {
|
if ok {
|
||||||
if kc.config.ResolverConfig == "" {
|
if kc.config.ResolverConfig == nil {
|
||||||
kc.config.ResolverConfig = kubeletSystemdResolverConfig
|
kc.config.ResolverConfig = utilpointer.String(kubeletSystemdResolverConfig)
|
||||||
} else {
|
} else {
|
||||||
if kc.config.ResolverConfig != kubeletSystemdResolverConfig {
|
if kc.config.ResolverConfig != utilpointer.String(kubeletSystemdResolverConfig) {
|
||||||
warnDefaultComponentConfigValue(kind, "resolvConf", kubeletSystemdResolverConfig, kc.config.ResolverConfig)
|
warnDefaultComponentConfigValue(kind, "resolvConf", kubeletSystemdResolverConfig, *kc.config.ResolverConfig)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -50,10 +50,10 @@ func testKubeletConfigMap(contents string) *v1.ConfigMap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestKubeletDefault(t *testing.T) {
|
func TestKubeletDefault(t *testing.T) {
|
||||||
var resolverConfig string
|
var resolverConfig *string
|
||||||
if isSystemdResolvedActive, _ := isServiceActive("systemd-resolved"); isSystemdResolvedActive {
|
if isSystemdResolvedActive, _ := isServiceActive("systemd-resolved"); isSystemdResolvedActive {
|
||||||
// If systemd-resolved is active, we need to set the default resolver config
|
// If systemd-resolved is active, we need to set the default resolver config
|
||||||
resolverConfig = kubeletSystemdResolverConfig
|
resolverConfig = utilpointer.String(kubeletSystemdResolverConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
|
@ -181,8 +181,8 @@ func SetDefaults_KubeletConfiguration(obj *kubeletconfigv1beta1.KubeletConfigura
|
|||||||
temp := int64(-1)
|
temp := int64(-1)
|
||||||
obj.PodPidsLimit = &temp
|
obj.PodPidsLimit = &temp
|
||||||
}
|
}
|
||||||
if obj.ResolverConfig == "" {
|
if obj.ResolverConfig == nil {
|
||||||
obj.ResolverConfig = kubetypes.ResolvConfDefault
|
obj.ResolverConfig = utilpointer.String(kubetypes.ResolvConfDefault)
|
||||||
}
|
}
|
||||||
if obj.CPUCFSQuota == nil {
|
if obj.CPUCFSQuota == nil {
|
||||||
obj.CPUCFSQuota = utilpointer.BoolPtr(true)
|
obj.CPUCFSQuota = utilpointer.BoolPtr(true)
|
||||||
|
@ -308,7 +308,9 @@ func autoConvert_v1beta1_KubeletConfiguration_To_config_KubeletConfiguration(in
|
|||||||
if err := v1.Convert_Pointer_int64_To_int64(&in.PodPidsLimit, &out.PodPidsLimit, s); err != nil {
|
if err := v1.Convert_Pointer_int64_To_int64(&in.PodPidsLimit, &out.PodPidsLimit, s); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
out.ResolverConfig = in.ResolverConfig
|
if err := v1.Convert_Pointer_string_To_string(&in.ResolverConfig, &out.ResolverConfig, s); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
out.RunOnce = in.RunOnce
|
out.RunOnce = in.RunOnce
|
||||||
if err := v1.Convert_Pointer_bool_To_bool(&in.CPUCFSQuota, &out.CPUCFSQuota, s); err != nil {
|
if err := v1.Convert_Pointer_bool_To_bool(&in.CPUCFSQuota, &out.CPUCFSQuota, s); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -479,7 +481,9 @@ func autoConvert_config_KubeletConfiguration_To_v1beta1_KubeletConfiguration(in
|
|||||||
if err := v1.Convert_int64_To_Pointer_int64(&in.PodPidsLimit, &out.PodPidsLimit, s); err != nil {
|
if err := v1.Convert_int64_To_Pointer_int64(&in.PodPidsLimit, &out.PodPidsLimit, s); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
out.ResolverConfig = in.ResolverConfig
|
if err := v1.Convert_string_To_Pointer_string(&in.ResolverConfig, &out.ResolverConfig, s); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
out.RunOnce = in.RunOnce
|
out.RunOnce = in.RunOnce
|
||||||
if err := v1.Convert_bool_To_Pointer_bool(&in.CPUCFSQuota, &out.CPUCFSQuota, s); err != nil {
|
if err := v1.Convert_bool_To_Pointer_bool(&in.CPUCFSQuota, &out.CPUCFSQuota, s); err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -599,9 +599,10 @@ type KubeletConfiguration struct {
|
|||||||
// dynamically updating this field, consider that
|
// dynamically updating this field, consider that
|
||||||
// changes will only take effect on Pods created after the update. Draining
|
// changes will only take effect on Pods created after the update. Draining
|
||||||
// the node is recommended before changing this field.
|
// the node is recommended before changing this field.
|
||||||
|
// If set to the empty string, will override the default and effectively disable DNS lookups.
|
||||||
// Default: "/etc/resolv.conf"
|
// Default: "/etc/resolv.conf"
|
||||||
// +optional
|
// +optional
|
||||||
ResolverConfig string `json:"resolvConf,omitempty"`
|
ResolverConfig *string `json:"resolvConf,omitempty"`
|
||||||
// runOnce causes the Kubelet to check the API server once for pods,
|
// runOnce causes the Kubelet to check the API server once for pods,
|
||||||
// run those in addition to the pods specified by static pod files, and exit.
|
// run those in addition to the pods specified by static pod files, and exit.
|
||||||
// Default: false
|
// Default: false
|
||||||
|
@ -189,6 +189,11 @@ func (in *KubeletConfiguration) DeepCopyInto(out *KubeletConfiguration) {
|
|||||||
*out = new(int64)
|
*out = new(int64)
|
||||||
**out = **in
|
**out = **in
|
||||||
}
|
}
|
||||||
|
if in.ResolverConfig != nil {
|
||||||
|
in, out := &in.ResolverConfig, &out.ResolverConfig
|
||||||
|
*out = new(string)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
if in.CPUCFSQuota != nil {
|
if in.CPUCFSQuota != nil {
|
||||||
in, out := &in.CPUCFSQuota, &out.CPUCFSQuota
|
in, out := &in.CPUCFSQuota, &out.CPUCFSQuota
|
||||||
*out = new(bool)
|
*out = new(bool)
|
||||||
|
Loading…
Reference in New Issue
Block a user