Unverified Commit 5774bf15 authored by Kubernetes Submit Queue's avatar Kubernetes Submit Queue Committed by GitHub

Merge pull request #66960 from rosti/drop-arch-suffixes

Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. kubeadm: Drop arch suffixes **What this PR does / why we need it**: This change removes arch suffixes from control plane images (etcd, kube-apiserver, kube-scheduler, kube-proxy, etc.). These are not needed, as almost all control plane images have a fat manifest now. It also adds a missing unit test for `GetGenericImage` We have arch suffixes only for kube-dns images now. Sample output of `kubeadm config images pull` with this change: ``` $ ./_output/bin/kubeadm config images pull [config/images] Pulled k8s.gcr.io/kube-apiserver:v1.11.1 [config/images] Pulled k8s.gcr.io/kube-controller-manager:v1.11.1 [config/images] Pulled k8s.gcr.io/kube-scheduler:v1.11.1 [config/images] Pulled k8s.gcr.io/kube-proxy:v1.11.1 [config/images] Pulled k8s.gcr.io/pause:3.1 [config/images] Pulled k8s.gcr.io/etcd:3.2.18 [config/images] Pulled k8s.gcr.io/coredns:1.1.3 $ ./_output/bin/kubeadm config images pull --feature-gates=CoreDNS=false [config/images] Pulled k8s.gcr.io/kube-apiserver:v1.11.1 [config/images] Pulled k8s.gcr.io/kube-controller-manager:v1.11.1 [config/images] Pulled k8s.gcr.io/kube-scheduler:v1.11.1 [config/images] Pulled k8s.gcr.io/kube-proxy:v1.11.1 [config/images] Pulled k8s.gcr.io/pause:3.1 [config/images] Pulled k8s.gcr.io/etcd:3.2.18 [config/images] Pulled k8s.gcr.io/k8s-dns-kube-dns-amd64:1.14.10 [config/images] Pulled k8s.gcr.io/k8s-dns-sidecar-amd64:1.14.10 [config/images] Pulled k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64:1.14.10 ``` **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: Refs kubernetes/kubeadm#1030 kubernetes/kubeadm#51 **Special notes for your reviewer**: /cc @kubernetes/sig-cluster-lifecycle-pr-reviews /area kubeadm /kind feature /assign @luxas /assign @timothysc /assign @dims /assign @neolit123 **Release note**: ```release-note kubeadm: Control plane images (etcd, kube-apiserver, kube-proxy, etc.) don't use arch suffixes. Arch suffixes are kept for kube-dns only. ```
parents d46d6715 8c59c6d2
...@@ -43,7 +43,7 @@ func GetKubeControlPlaneImage(image string, cfg *kubeadmapi.ClusterConfiguration ...@@ -43,7 +43,7 @@ func GetKubeControlPlaneImage(image string, cfg *kubeadmapi.ClusterConfiguration
} }
repoPrefix := cfg.GetControlPlaneImageRepository() repoPrefix := cfg.GetControlPlaneImageRepository()
kubernetesImageTag := kubeadmutil.KubernetesVersionToImageTag(cfg.KubernetesVersion) kubernetesImageTag := kubeadmutil.KubernetesVersionToImageTag(cfg.KubernetesVersion)
return GetGenericArchImage(repoPrefix, image, kubernetesImageTag) return GetGenericImage(repoPrefix, image, kubernetesImageTag)
} }
// GetEtcdImage generates and returns the image for etcd or returns cfg.Etcd.Local.Image if specified // GetEtcdImage generates and returns the image for etcd or returns cfg.Etcd.Local.Image if specified
...@@ -56,7 +56,7 @@ func GetEtcdImage(cfg *kubeadmapi.ClusterConfiguration) string { ...@@ -56,7 +56,7 @@ func GetEtcdImage(cfg *kubeadmapi.ClusterConfiguration) string {
if err == nil { if err == nil {
etcdImageTag = etcdImageVersion.String() etcdImageTag = etcdImageVersion.String()
} }
return GetGenericArchImage(cfg.ImageRepository, constants.Etcd, etcdImageTag) return GetGenericImage(cfg.ImageRepository, constants.Etcd, etcdImageTag)
} }
// GetAllImages returns a list of container images kubeadm expects to use on a control plane node // GetAllImages returns a list of container images kubeadm expects to use on a control plane node
......
...@@ -32,6 +32,19 @@ const ( ...@@ -32,6 +32,19 @@ const (
gcrPrefix = "k8s.gcr.io" gcrPrefix = "k8s.gcr.io"
) )
func TestGetGenericImage(t *testing.T) {
const (
prefix = "foo"
image = "bar"
tag = "baz"
)
expected := fmt.Sprintf("%s/%s:%s", prefix, image, tag)
actual := GetGenericImage(prefix, image, tag)
if actual != expected {
t.Errorf("failed GetGenericImage:\n\texpected: %s\n\t actual: %s", expected, actual)
}
}
func TestGetGenericArchImage(t *testing.T) { func TestGetGenericArchImage(t *testing.T) {
const ( const (
prefix = "foo" prefix = "foo"
...@@ -59,7 +72,7 @@ func TestGetKubeControlPlaneImage(t *testing.T) { ...@@ -59,7 +72,7 @@ func TestGetKubeControlPlaneImage(t *testing.T) {
}, },
{ {
image: constants.KubeAPIServer, image: constants.KubeAPIServer,
expected: GetGenericArchImage(gcrPrefix, "kube-apiserver", expected), expected: GetGenericImage(gcrPrefix, "kube-apiserver", expected),
cfg: &kubeadmapi.ClusterConfiguration{ cfg: &kubeadmapi.ClusterConfiguration{
ImageRepository: gcrPrefix, ImageRepository: gcrPrefix,
KubernetesVersion: testversion, KubernetesVersion: testversion,
...@@ -67,7 +80,7 @@ func TestGetKubeControlPlaneImage(t *testing.T) { ...@@ -67,7 +80,7 @@ func TestGetKubeControlPlaneImage(t *testing.T) {
}, },
{ {
image: constants.KubeControllerManager, image: constants.KubeControllerManager,
expected: GetGenericArchImage(gcrPrefix, "kube-controller-manager", expected), expected: GetGenericImage(gcrPrefix, "kube-controller-manager", expected),
cfg: &kubeadmapi.ClusterConfiguration{ cfg: &kubeadmapi.ClusterConfiguration{
ImageRepository: gcrPrefix, ImageRepository: gcrPrefix,
KubernetesVersion: testversion, KubernetesVersion: testversion,
...@@ -75,7 +88,7 @@ func TestGetKubeControlPlaneImage(t *testing.T) { ...@@ -75,7 +88,7 @@ func TestGetKubeControlPlaneImage(t *testing.T) {
}, },
{ {
image: constants.KubeScheduler, image: constants.KubeScheduler,
expected: GetGenericArchImage(gcrPrefix, "kube-scheduler", expected), expected: GetGenericImage(gcrPrefix, "kube-scheduler", expected),
cfg: &kubeadmapi.ClusterConfiguration{ cfg: &kubeadmapi.ClusterConfiguration{
ImageRepository: gcrPrefix, ImageRepository: gcrPrefix,
KubernetesVersion: testversion, KubernetesVersion: testversion,
...@@ -110,7 +123,7 @@ func TestGetEtcdImage(t *testing.T) { ...@@ -110,7 +123,7 @@ func TestGetEtcdImage(t *testing.T) {
}, },
}, },
{ {
expected: GetGenericArchImage(gcrPrefix, "etcd", constants.DefaultEtcdVersion), expected: GetGenericImage(gcrPrefix, "etcd", constants.DefaultEtcdVersion),
cfg: &kubeadmapi.ClusterConfiguration{ cfg: &kubeadmapi.ClusterConfiguration{
ImageRepository: gcrPrefix, ImageRepository: gcrPrefix,
KubernetesVersion: testversion, KubernetesVersion: testversion,
......
...@@ -108,7 +108,5 @@ spec: ...@@ -108,7 +108,5 @@ spec:
- key: CriticalAddonsOnly - key: CriticalAddonsOnly
operator: Exists operator: Exists
- operator: Exists - operator: Exists
nodeSelector:
beta.kubernetes.io/arch: {{ .Arch }}
` `
) )
...@@ -19,7 +19,6 @@ package proxy ...@@ -19,7 +19,6 @@ package proxy
import ( import (
"bytes" "bytes"
"fmt" "fmt"
"runtime"
apps "k8s.io/api/apps/v1" apps "k8s.io/api/apps/v1"
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
...@@ -75,9 +74,8 @@ func EnsureProxyAddon(cfg *kubeadmapi.InitConfiguration, client clientset.Interf ...@@ -75,9 +74,8 @@ func EnsureProxyAddon(cfg *kubeadmapi.InitConfiguration, client clientset.Interf
if err != nil { if err != nil {
return fmt.Errorf("error when parsing kube-proxy configmap template: %v", err) return fmt.Errorf("error when parsing kube-proxy configmap template: %v", err)
} }
proxyDaemonSetBytes, err = kubeadmutil.ParseTemplate(KubeProxyDaemonSet19, struct{ Image, Arch string }{ proxyDaemonSetBytes, err = kubeadmutil.ParseTemplate(KubeProxyDaemonSet19, struct{ Image string }{
Image: images.GetKubeControlPlaneImage(constants.KubeProxy, &cfg.ClusterConfiguration), Image: images.GetKubeControlPlaneImage(constants.KubeProxy, &cfg.ClusterConfiguration),
Arch: runtime.GOARCH,
}) })
if err != nil { if err != nil {
return fmt.Errorf("error when parsing kube-proxy daemonset template: %v", err) return fmt.Errorf("error when parsing kube-proxy daemonset template: %v", err)
......
...@@ -108,9 +108,8 @@ func TestCompileManifests(t *testing.T) { ...@@ -108,9 +108,8 @@ func TestCompileManifests(t *testing.T) {
}, },
{ {
manifest: KubeProxyDaemonSet19, manifest: KubeProxyDaemonSet19,
data: struct{ Image, Arch string }{ data: struct{ Image string }{
Image: "foo", Image: "foo",
Arch: "foo",
}, },
expected: true, expected: true,
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment