diff --git a/cmd/kubeadm/app/componentconfigs/kubelet.go b/cmd/kubeadm/app/componentconfigs/kubelet.go index 35d6078c317..5a62f9ac933 100644 --- a/cmd/kubeadm/app/componentconfigs/kubelet.go +++ b/cmd/kubeadm/app/componentconfigs/kubelet.go @@ -209,11 +209,11 @@ func (kc *kubeletConfig) Default(cfg *kubeadmapi.ClusterConfiguration, _ *kubead klog.Warningf("cannot determine if systemd-resolved is active: %v", err) } if ok { - if kc.config.ResolverConfig == "" { - kc.config.ResolverConfig = kubeletSystemdResolverConfig + if kc.config.ResolverConfig == nil { + kc.config.ResolverConfig = utilpointer.String(kubeletSystemdResolverConfig) } else { - if kc.config.ResolverConfig != kubeletSystemdResolverConfig { - warnDefaultComponentConfigValue(kind, "resolvConf", kubeletSystemdResolverConfig, kc.config.ResolverConfig) + if kc.config.ResolverConfig != utilpointer.String(kubeletSystemdResolverConfig) { + warnDefaultComponentConfigValue(kind, "resolvConf", kubeletSystemdResolverConfig, *kc.config.ResolverConfig) } } } diff --git a/cmd/kubeadm/app/componentconfigs/kubelet_test.go b/cmd/kubeadm/app/componentconfigs/kubelet_test.go index 27fa8fc35be..bed457ff97c 100644 --- a/cmd/kubeadm/app/componentconfigs/kubelet_test.go +++ b/cmd/kubeadm/app/componentconfigs/kubelet_test.go @@ -50,10 +50,10 @@ func testKubeletConfigMap(contents string) *v1.ConfigMap { } func TestKubeletDefault(t *testing.T) { - var resolverConfig string + var resolverConfig *string if isSystemdResolvedActive, _ := isServiceActive("systemd-resolved"); isSystemdResolvedActive { // If systemd-resolved is active, we need to set the default resolver config - resolverConfig = kubeletSystemdResolverConfig + resolverConfig = utilpointer.String(kubeletSystemdResolverConfig) } tests := []struct { diff --git a/pkg/kubelet/apis/config/v1beta1/defaults.go b/pkg/kubelet/apis/config/v1beta1/defaults.go index 0644a0a3400..a098665d7d2 100644 --- a/pkg/kubelet/apis/config/v1beta1/defaults.go +++ b/pkg/kubelet/apis/config/v1beta1/defaults.go @@ -181,8 +181,8 @@ func SetDefaults_KubeletConfiguration(obj *kubeletconfigv1beta1.KubeletConfigura temp := int64(-1) obj.PodPidsLimit = &temp } - if obj.ResolverConfig == "" { - obj.ResolverConfig = kubetypes.ResolvConfDefault + if obj.ResolverConfig == nil { + obj.ResolverConfig = utilpointer.String(kubetypes.ResolvConfDefault) } if obj.CPUCFSQuota == nil { obj.CPUCFSQuota = utilpointer.BoolPtr(true) diff --git a/pkg/kubelet/apis/config/v1beta1/zz_generated.conversion.go b/pkg/kubelet/apis/config/v1beta1/zz_generated.conversion.go index 913a8af98fb..45e8364e542 100644 --- a/pkg/kubelet/apis/config/v1beta1/zz_generated.conversion.go +++ b/pkg/kubelet/apis/config/v1beta1/zz_generated.conversion.go @@ -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 { 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 if err := v1.Convert_Pointer_bool_To_bool(&in.CPUCFSQuota, &out.CPUCFSQuota, s); err != nil { 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 { 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 if err := v1.Convert_bool_To_Pointer_bool(&in.CPUCFSQuota, &out.CPUCFSQuota, s); err != nil { return err diff --git a/staging/src/k8s.io/kubelet/config/v1beta1/types.go b/staging/src/k8s.io/kubelet/config/v1beta1/types.go index afbea34951a..2062b2d2bf7 100644 --- a/staging/src/k8s.io/kubelet/config/v1beta1/types.go +++ b/staging/src/k8s.io/kubelet/config/v1beta1/types.go @@ -599,9 +599,10 @@ type KubeletConfiguration struct { // dynamically updating this field, consider that // changes will only take effect on Pods created after the update. Draining // 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" // +optional - ResolverConfig string `json:"resolvConf,omitempty"` + ResolverConfig *string `json:"resolvConf,omitempty"` // 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. // Default: false diff --git a/staging/src/k8s.io/kubelet/config/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/kubelet/config/v1beta1/zz_generated.deepcopy.go index c9b574f5b99..9bd95cbe570 100644 --- a/staging/src/k8s.io/kubelet/config/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/kubelet/config/v1beta1/zz_generated.deepcopy.go @@ -189,6 +189,11 @@ func (in *KubeletConfiguration) DeepCopyInto(out *KubeletConfiguration) { *out = new(int64) **out = **in } + if in.ResolverConfig != nil { + in, out := &in.ResolverConfig, &out.ResolverConfig + *out = new(string) + **out = **in + } if in.CPUCFSQuota != nil { in, out := &in.CPUCFSQuota, &out.CPUCFSQuota *out = new(bool)