Skip to content

Commit d6162ec

Browse files
authored
Merge pull request #16029 from afbjorklund/kubeadm-registry-flag
Always use the new registry.k8s.io repository
2 parents 5d71a4e + 2010622 commit d6162ec

File tree

7 files changed

+91
-116
lines changed

7 files changed

+91
-116
lines changed

Diff for: pkg/minikube/bootstrapper/images/images.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func Pause(v semver.Version, mirror string) string {
4747
imageName := "pause"
4848
pv := imageVersion(v, mirror, imageName, "3.6")
4949

50-
return fmt.Sprintf("%s:%s", path.Join(kubernetesRepo(mirror, v), imageName), pv)
50+
return fmt.Sprintf("%s:%s", path.Join(kubernetesRepo(mirror), imageName), pv)
5151
}
5252

5353
// essentials returns images needed too bootstrap a Kubernetes
@@ -67,7 +67,7 @@ func essentials(mirror string, v semver.Version) []string {
6767

6868
// componentImage returns a Kubernetes component image to pull
6969
func componentImage(name string, v semver.Version, mirror string) string {
70-
return fmt.Sprintf("%s:v%s", path.Join(kubernetesRepo(mirror, v), name), v)
70+
return fmt.Sprintf("%s:v%s", path.Join(kubernetesRepo(mirror), name), v)
7171
}
7272

7373
// fixes 13136 by getting the latest image version from the k8s.gcr.io repository instead of hardcoded
@@ -120,7 +120,7 @@ func coreDNS(v semver.Version, mirror string) string {
120120
imageName = "coredns"
121121
}
122122

123-
return fmt.Sprintf("%s:%s", path.Join(kubernetesRepo(mirror, v), imageName), cv)
123+
return fmt.Sprintf("%s:%s", path.Join(kubernetesRepo(mirror), imageName), cv)
124124
}
125125

126126
// etcd returns the image used for etcd
@@ -131,15 +131,15 @@ func etcd(v semver.Version, mirror string) string {
131131
imageName := "etcd"
132132
ev := imageVersion(v, mirror, imageName, "3.5.0-0")
133133

134-
return fmt.Sprintf("%s:%s", path.Join(kubernetesRepo(mirror, v), imageName), ev)
134+
return fmt.Sprintf("%s:%s", path.Join(kubernetesRepo(mirror), imageName), ev)
135135
}
136136

137137
func imageVersion(v semver.Version, mirror, imageName, defaultVersion string) string {
138138
versionString := fmt.Sprintf("v%s", v.String())
139139
if ver, ok := constants.KubeadmImages[versionString][imageName]; ok {
140140
return ver
141141
}
142-
return findLatestTagFromRepository(fmt.Sprintf(tagURLTemplate, kubernetesRepo(mirror, v), imageName), defaultVersion)
142+
return findLatestTagFromRepository(fmt.Sprintf(tagURLTemplate, kubernetesRepo(mirror), imageName), defaultVersion)
143143
}
144144

145145
// auxiliary returns images that are helpful for running minikube

Diff for: pkg/minikube/bootstrapper/images/images_test.go

+36-36
Original file line numberDiff line numberDiff line change
@@ -33,49 +33,49 @@ func TestEssentials(t *testing.T) {
3333
images []string
3434
}{
3535
{"v1.18.0", strings.Split(strings.Trim(`
36-
k8s.gcr.io/kube-apiserver:v1.18.0
37-
k8s.gcr.io/kube-controller-manager:v1.18.0
38-
k8s.gcr.io/kube-scheduler:v1.18.0
39-
k8s.gcr.io/kube-proxy:v1.18.0
40-
k8s.gcr.io/pause:3.2
41-
k8s.gcr.io/etcd:3.4.3-0
42-
k8s.gcr.io/coredns:1.6.7
36+
registry.k8s.io/kube-apiserver:v1.18.0
37+
registry.k8s.io/kube-controller-manager:v1.18.0
38+
registry.k8s.io/kube-scheduler:v1.18.0
39+
registry.k8s.io/kube-proxy:v1.18.0
40+
registry.k8s.io/pause:3.2
41+
registry.k8s.io/etcd:3.4.3-0
42+
registry.k8s.io/coredns:1.6.7
4343
`, "\n"), "\n")},
4444
{"v1.19.0", strings.Split(strings.Trim(`
45-
k8s.gcr.io/kube-apiserver:v1.19.0
46-
k8s.gcr.io/kube-controller-manager:v1.19.0
47-
k8s.gcr.io/kube-scheduler:v1.19.0
48-
k8s.gcr.io/kube-proxy:v1.19.0
49-
k8s.gcr.io/pause:3.2
50-
k8s.gcr.io/etcd:3.4.9-1
51-
k8s.gcr.io/coredns:1.7.0
45+
registry.k8s.io/kube-apiserver:v1.19.0
46+
registry.k8s.io/kube-controller-manager:v1.19.0
47+
registry.k8s.io/kube-scheduler:v1.19.0
48+
registry.k8s.io/kube-proxy:v1.19.0
49+
registry.k8s.io/pause:3.2
50+
registry.k8s.io/etcd:3.4.9-1
51+
registry.k8s.io/coredns:1.7.0
5252
`, "\n"), "\n")},
5353
{"v1.20.0", strings.Split(strings.Trim(`
54-
k8s.gcr.io/kube-apiserver:v1.20.0
55-
k8s.gcr.io/kube-controller-manager:v1.20.0
56-
k8s.gcr.io/kube-scheduler:v1.20.0
57-
k8s.gcr.io/kube-proxy:v1.20.0
58-
k8s.gcr.io/pause:3.2
59-
k8s.gcr.io/etcd:3.4.13-0
60-
k8s.gcr.io/coredns:1.7.0
54+
registry.k8s.io/kube-apiserver:v1.20.0
55+
registry.k8s.io/kube-controller-manager:v1.20.0
56+
registry.k8s.io/kube-scheduler:v1.20.0
57+
registry.k8s.io/kube-proxy:v1.20.0
58+
registry.k8s.io/pause:3.2
59+
registry.k8s.io/etcd:3.4.13-0
60+
registry.k8s.io/coredns:1.7.0
6161
`, "\n"), "\n")},
6262
{"v1.21.0", strings.Split(strings.Trim(`
63-
k8s.gcr.io/kube-apiserver:v1.21.0
64-
k8s.gcr.io/kube-controller-manager:v1.21.0
65-
k8s.gcr.io/kube-scheduler:v1.21.0
66-
k8s.gcr.io/kube-proxy:v1.21.0
67-
k8s.gcr.io/pause:3.4.1
68-
k8s.gcr.io/etcd:3.4.13-0
69-
k8s.gcr.io/coredns/coredns:v1.8.0
63+
registry.k8s.io/kube-apiserver:v1.21.0
64+
registry.k8s.io/kube-controller-manager:v1.21.0
65+
registry.k8s.io/kube-scheduler:v1.21.0
66+
registry.k8s.io/kube-proxy:v1.21.0
67+
registry.k8s.io/pause:3.4.1
68+
registry.k8s.io/etcd:3.4.13-0
69+
registry.k8s.io/coredns/coredns:v1.8.0
7070
`, "\n"), "\n")},
7171
{"v1.22.0", strings.Split(strings.Trim(`
72-
k8s.gcr.io/kube-apiserver:v1.22.0
73-
k8s.gcr.io/kube-controller-manager:v1.22.0
74-
k8s.gcr.io/kube-scheduler:v1.22.0
75-
k8s.gcr.io/kube-proxy:v1.22.0
76-
k8s.gcr.io/pause:3.5
77-
k8s.gcr.io/etcd:3.5.0-0
78-
k8s.gcr.io/coredns/coredns:v1.8.4
72+
registry.k8s.io/kube-apiserver:v1.22.0
73+
registry.k8s.io/kube-controller-manager:v1.22.0
74+
registry.k8s.io/kube-scheduler:v1.22.0
75+
registry.k8s.io/kube-proxy:v1.22.0
76+
registry.k8s.io/pause:3.5
77+
registry.k8s.io/etcd:3.5.0-0
78+
registry.k8s.io/coredns/coredns:v1.8.4
7979
`, "\n"), "\n")},
8080
}
8181
for _, tc := range testCases {
@@ -85,7 +85,7 @@ k8s.gcr.io/coredns/coredns:v1.8.4
8585
t.Fatal(err)
8686
}
8787
want := tc.images
88-
got := essentials("k8s.gcr.io", v)
88+
got := essentials("registry.k8s.io", v)
8989
if diff := cmp.Diff(want, got); diff != "" {
9090
t.Errorf("images mismatch (-want +got):\n%s", diff)
9191
}

Diff for: pkg/minikube/bootstrapper/images/kubeadm_test.go

+28-28
Original file line numberDiff line numberDiff line change
@@ -75,43 +75,43 @@ func TestKubeadmImages(t *testing.T) {
7575
"mirror.k8s.io/k8s-minikube/storage-provisioner:" + version.GetStorageProvisionerVersion(),
7676
}},
7777
{"v1.24.0", "", false, []string{
78-
"k8s.gcr.io/kube-proxy:v1.24.0",
79-
"k8s.gcr.io/kube-scheduler:v1.24.0",
80-
"k8s.gcr.io/kube-controller-manager:v1.24.0",
81-
"k8s.gcr.io/kube-apiserver:v1.24.0",
82-
"k8s.gcr.io/coredns/coredns:v1.8.6",
83-
"k8s.gcr.io/etcd:3.5.3-0",
84-
"k8s.gcr.io/pause:3.7",
78+
"registry.k8s.io/kube-proxy:v1.24.0",
79+
"registry.k8s.io/kube-scheduler:v1.24.0",
80+
"registry.k8s.io/kube-controller-manager:v1.24.0",
81+
"registry.k8s.io/kube-apiserver:v1.24.0",
82+
"registry.k8s.io/coredns/coredns:v1.8.6",
83+
"registry.k8s.io/etcd:3.5.3-0",
84+
"registry.k8s.io/pause:3.7",
8585
"gcr.io/k8s-minikube/storage-provisioner:" + version.GetStorageProvisionerVersion(),
8686
}},
8787
{"v1.23.0", "", false, []string{
88-
"k8s.gcr.io/kube-proxy:v1.23.0",
89-
"k8s.gcr.io/kube-scheduler:v1.23.0",
90-
"k8s.gcr.io/kube-controller-manager:v1.23.0",
91-
"k8s.gcr.io/kube-apiserver:v1.23.0",
92-
"k8s.gcr.io/coredns/coredns:v1.8.6",
93-
"k8s.gcr.io/etcd:3.5.1-0",
94-
"k8s.gcr.io/pause:3.6",
88+
"registry.k8s.io/kube-proxy:v1.23.0",
89+
"registry.k8s.io/kube-scheduler:v1.23.0",
90+
"registry.k8s.io/kube-controller-manager:v1.23.0",
91+
"registry.k8s.io/kube-apiserver:v1.23.0",
92+
"registry.k8s.io/coredns/coredns:v1.8.6",
93+
"registry.k8s.io/etcd:3.5.1-0",
94+
"registry.k8s.io/pause:3.6",
9595
"gcr.io/k8s-minikube/storage-provisioner:" + version.GetStorageProvisionerVersion(),
9696
}},
9797
{"v1.22.0", "", false, []string{
98-
"k8s.gcr.io/kube-proxy:v1.22.0",
99-
"k8s.gcr.io/kube-scheduler:v1.22.0",
100-
"k8s.gcr.io/kube-controller-manager:v1.22.0",
101-
"k8s.gcr.io/kube-apiserver:v1.22.0",
102-
"k8s.gcr.io/coredns/coredns:v1.8.4",
103-
"k8s.gcr.io/etcd:3.5.0-0",
104-
"k8s.gcr.io/pause:3.5",
98+
"registry.k8s.io/kube-proxy:v1.22.0",
99+
"registry.k8s.io/kube-scheduler:v1.22.0",
100+
"registry.k8s.io/kube-controller-manager:v1.22.0",
101+
"registry.k8s.io/kube-apiserver:v1.22.0",
102+
"registry.k8s.io/coredns/coredns:v1.8.4",
103+
"registry.k8s.io/etcd:3.5.0-0",
104+
"registry.k8s.io/pause:3.5",
105105
"gcr.io/k8s-minikube/storage-provisioner:" + version.GetStorageProvisionerVersion(),
106106
}},
107107
{"v1.16.0", "", false, []string{
108-
"k8s.gcr.io/kube-proxy:v1.16.0",
109-
"k8s.gcr.io/kube-scheduler:v1.16.0",
110-
"k8s.gcr.io/kube-controller-manager:v1.16.0",
111-
"k8s.gcr.io/kube-apiserver:v1.16.0",
112-
"k8s.gcr.io/coredns:1.6.2",
113-
"k8s.gcr.io/etcd:3.3.15-0",
114-
"k8s.gcr.io/pause:3.1",
108+
"registry.k8s.io/kube-proxy:v1.16.0",
109+
"registry.k8s.io/kube-scheduler:v1.16.0",
110+
"registry.k8s.io/kube-controller-manager:v1.16.0",
111+
"registry.k8s.io/kube-apiserver:v1.16.0",
112+
"registry.k8s.io/coredns:1.6.2",
113+
"registry.k8s.io/etcd:3.3.15-0",
114+
"registry.k8s.io/pause:3.1",
115115
"gcr.io/k8s-minikube/storage-provisioner:" + version.GetStorageProvisionerVersion(),
116116
}},
117117
{"v1.11.0", "", true, nil},

Diff for: pkg/minikube/bootstrapper/images/repo.go

+4-19
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,13 @@ limitations under the License.
1616

1717
package images
1818

19-
import (
20-
"github.com/blang/semver/v4"
21-
)
22-
23-
// OldDefaultKubernetesRepo is the old default Kubernetes repository
24-
const OldDefaultKubernetesRepo = "k8s.gcr.io"
25-
26-
// NewDefaultKubernetesRepo is the new default Kubernetes repository
27-
const NewDefaultKubernetesRepo = "registry.k8s.io"
19+
// DefaultKubernetesRepo is the default Kubernetes repository
20+
const DefaultKubernetesRepo = "registry.k8s.io"
2821

2922
// kubernetesRepo returns the official Kubernetes repository, or an alternate
30-
func kubernetesRepo(mirror string, v semver.Version) string {
23+
func kubernetesRepo(mirror string) string {
3124
if mirror != "" {
3225
return mirror
3326
}
34-
return DefaultKubernetesRepo(v)
35-
}
36-
37-
func DefaultKubernetesRepo(kv semver.Version) string {
38-
// these (-1.24) should probably be moved too
39-
if kv.LT(semver.MustParse("1.25.0-alpha.1")) {
40-
return OldDefaultKubernetesRepo
41-
}
42-
return NewDefaultKubernetesRepo
27+
return DefaultKubernetesRepo
4328
}

Diff for: pkg/minikube/bootstrapper/images/repo_test.go

+5-20
Original file line numberDiff line numberDiff line change
@@ -19,42 +19,27 @@ package images
1919
import (
2020
"testing"
2121

22-
"github.com/blang/semver/v4"
2322
"github.com/google/go-cmp/cmp"
2423
)
2524

2625
func Test_kubernetesRepo(t *testing.T) {
27-
kv := semver.MustParse("1.23.0")
2826
tests := []struct {
29-
mirror string
30-
version semver.Version
31-
want string
27+
mirror string
28+
want string
3229
}{
3330
{
3431
"",
35-
kv,
36-
DefaultKubernetesRepo(kv),
32+
DefaultKubernetesRepo,
3733
},
3834
{
3935
"mirror.k8s.io",
40-
kv,
4136
"mirror.k8s.io",
4237
},
43-
{
44-
"",
45-
semver.MustParse("1.24.0"),
46-
OldDefaultKubernetesRepo,
47-
},
48-
{
49-
"",
50-
semver.MustParse("1.25.0"),
51-
NewDefaultKubernetesRepo,
52-
},
5338
}
5439
for _, tc := range tests {
55-
got := kubernetesRepo(tc.mirror, tc.version)
40+
got := kubernetesRepo(tc.mirror)
5641
if !cmp.Equal(got, tc.want) {
57-
t.Errorf("mirror miss match, want: %s, got: %s", tc.want, got)
42+
t.Errorf("mirror mismatch, want: %s, got: %s", tc.want, got)
5843
}
5944
}
6045

Diff for: pkg/minikube/node/start.go

+5-6
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,7 @@ func startMachine(cfg *config.ClusterConfig, node *config.Node, delOnFail bool)
641641
return runner, preExists, m, host, errors.Wrap(err, "Failed to get command runner")
642642
}
643643

644-
ip, err := validateNetwork(host, runner, cfg.KubernetesConfig.ImageRepository, cfg.KubernetesConfig.KubernetesVersion)
644+
ip, err := validateNetwork(host, runner, cfg.KubernetesConfig.ImageRepository)
645645
if err != nil {
646646
return runner, preExists, m, host, errors.Wrap(err, "Failed to validate network")
647647
}
@@ -724,7 +724,7 @@ func startHostInternal(api libmachine.API, cc *config.ClusterConfig, n *config.N
724724
}
725725

726726
// validateNetwork tries to catch network problems as soon as possible
727-
func validateNetwork(h *host.Host, r command.Runner, imageRepository string, kubernetesVersion string) (string, error) {
727+
func validateNetwork(h *host.Host, r command.Runner, imageRepository string) (string, error) {
728728
ip, err := h.Driver.GetIP()
729729
if err != nil {
730730
return ip, err
@@ -756,7 +756,7 @@ func validateNetwork(h *host.Host, r command.Runner, imageRepository string, kub
756756
}
757757

758758
// Non-blocking
759-
go tryRegistry(r, h.Driver.DriverName(), imageRepository, kubernetesVersion, ip)
759+
go tryRegistry(r, h.Driver.DriverName(), imageRepository, ip)
760760
return ip, nil
761761
}
762762

@@ -812,7 +812,7 @@ func trySSH(h *host.Host, ip string) error {
812812
}
813813

814814
// tryRegistry tries to connect to the image repository
815-
func tryRegistry(r command.Runner, driverName string, imageRepository string, kubernetesVersion string, ip string) {
815+
func tryRegistry(r command.Runner, driverName, imageRepository, ip string) {
816816
// 2 second timeout. For best results, call tryRegistry in a non-blocking manner.
817817
opts := []string{"-sS", "-m", "2"}
818818

@@ -822,8 +822,7 @@ func tryRegistry(r command.Runner, driverName string, imageRepository string, ku
822822
}
823823

824824
if imageRepository == "" {
825-
v, _ := util.ParseKubernetesVersion(kubernetesVersion)
826-
imageRepository = images.DefaultKubernetesRepo(v)
825+
imageRepository = images.DefaultKubernetesRepo
827826
}
828827

829828
opts = append(opts, fmt.Sprintf("https://%s/", imageRepository))

Diff for: test/integration/start_stop_delete_test.go

+8-2
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ func testPulledImages(ctx context.Context, t *testing.T, profile, version string
354354

355355
rr, err := Run(t, exec.CommandContext(ctx, Target(), "ssh", "-p", profile, "sudo crictl images -o json"))
356356
if err != nil {
357-
t.Errorf("failed tp get images inside minikube. args %q: %v", rr.Command(), err)
357+
t.Errorf("failed to get images inside minikube. args %q: %v", rr.Command(), err)
358358
}
359359
jv := map[string][]struct {
360360
Tags []string `json:"repoTags"`
@@ -377,7 +377,13 @@ func testPulledImages(ctx context.Context, t *testing.T, profile, version string
377377
}
378378
}
379379
}
380-
wantRaw, err := images.Kubeadm("", version)
380+
381+
mirror := ""
382+
// Kubernetes versions prior to v1.25 will contain the old registry due to the preload
383+
if v, _ := util.ParseKubernetesVersion(version); v.LT(semver.MustParse("1.25.0-alpha.1")) {
384+
mirror = "k8s.gcr.io"
385+
}
386+
wantRaw, err := images.Kubeadm(mirror, version)
381387
if err != nil {
382388
t.Errorf("failed to get kubeadm images for %s : %v", version, err)
383389
}

0 commit comments

Comments
 (0)