From fb7ba523410b9539744a43f471ef4519dc2ed8de Mon Sep 17 00:00:00 2001 From: "Rostislav M. Georgiev" Date: Mon, 23 Jul 2018 15:11:35 +0300 Subject: [PATCH] kubeadm: Pull sidecar and dnsmasq-nanny images when using kube-dns It appears that sidecar and dnsmasq-nanny images are now required for kube-dns deployment to work correctly. Thus the following default kube-dns images are used now: - k8s.gcr.io/k8s-dns-kube-dns-amd64:1.14.10 - k8s.gcr.io/k8s-dns-sidecar-amd64:1.14.10 - k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64:1.14.10 Signed-off-by: Rostislav M. Georgiev --- cmd/kubeadm/app/images/images.go | 10 +++++--- cmd/kubeadm/app/images/images_test.go | 36 +++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/cmd/kubeadm/app/images/images.go b/cmd/kubeadm/app/images/images.go index c98ddedcced4b..416f205438135 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 3fa8271465965..b0fe41e866a30 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) {