diff --git a/cmd/kubeadm/app/images/images.go b/cmd/kubeadm/app/images/images.go index c98ddedcced..416f2054381 100644 --- a/cmd/kubeadm/app/images/images.go +++ b/cmd/kubeadm/app/images/images.go @@ -80,10 +80,14 @@ func GetAllImages(cfg *kubeadmapi.InitConfiguration) []string { imgs = append(imgs, GetEtcdImage(cfg)) } - dnsImage := GetGenericArchImage(cfg.ImageRepository, "k8s-dns-kube-dns", constants.KubeDNSVersion) + // Append the appropriate DNS images if features.Enabled(cfg.FeatureGates, features.CoreDNS) { - dnsImage = fmt.Sprintf("%s/%s:%s", cfg.ImageRepository, constants.CoreDNS, constants.CoreDNSVersion) + imgs = append(imgs, GetGenericImage(cfg.ImageRepository, constants.CoreDNS, constants.CoreDNSVersion)) + } else { + imgs = append(imgs, GetGenericArchImage(cfg.ImageRepository, "k8s-dns-kube-dns", constants.KubeDNSVersion)) + imgs = append(imgs, GetGenericArchImage(cfg.ImageRepository, "k8s-dns-sidecar", constants.KubeDNSVersion)) + imgs = append(imgs, GetGenericArchImage(cfg.ImageRepository, "k8s-dns-dnsmasq-nanny", constants.KubeDNSVersion)) } - imgs = append(imgs, dnsImage) + return imgs } diff --git a/cmd/kubeadm/app/images/images_test.go b/cmd/kubeadm/app/images/images_test.go index 3fa82714659..b0fe41e866a 100644 --- a/cmd/kubeadm/app/images/images_test.go +++ b/cmd/kubeadm/app/images/images_test.go @@ -211,6 +211,42 @@ func TestGetAllImages(t *testing.T) { }, expect: constants.Etcd, }, + { + name: "CoreDNS image is returned", + cfg: &kubeadmapi.InitConfiguration{ + FeatureGates: map[string]bool{ + "CoreDNS": true, + }, + }, + expect: constants.CoreDNS, + }, + { + name: "main kube-dns image is returned", + cfg: &kubeadmapi.InitConfiguration{ + FeatureGates: map[string]bool{ + "CoreDNS": false, + }, + }, + expect: "k8s-dns-kube-dns", + }, + { + name: "kube-dns sidecar image is returned", + cfg: &kubeadmapi.InitConfiguration{ + FeatureGates: map[string]bool{ + "CoreDNS": false, + }, + }, + expect: "k8s-dns-sidecar", + }, + { + name: "kube-dns dnsmasq-nanny image is returned", + cfg: &kubeadmapi.InitConfiguration{ + FeatureGates: map[string]bool{ + "CoreDNS": false, + }, + }, + expect: "k8s-dns-dnsmasq-nanny", + }, } for _, tc := range testcases { t.Run(tc.name, func(t *testing.T) {