diff --git a/test/e2e/e2e_test.go b/test/e2e/e2e_test.go index a2d17634..ab964fab 100644 --- a/test/e2e/e2e_test.go +++ b/test/e2e/e2e_test.go @@ -122,11 +122,12 @@ func TestE2E(t *testing.T) { t.Skip("Skipped as -short is set") } + k8sMinorVer := os.Getenv("ARC_E2E_KUBE_VERSION") skipRunnerCleanUp := os.Getenv("ARC_E2E_SKIP_RUNNER_CLEANUP") != "" retainCluster := os.Getenv("ARC_E2E_RETAIN_CLUSTER") != "" skipTestIDCleanUp := os.Getenv("ARC_E2E_SKIP_TEST_ID_CLEANUP") != "" - env := initTestEnv(t) + env := initTestEnv(t, k8sMinorVer) t.Run("build and load images", func(t *testing.T) { env.buildAndLoadImages(t) @@ -264,10 +265,10 @@ type env struct { dockerdWithinRunnerContainer bool } -func initTestEnv(t *testing.T) *env { +func initTestEnv(t *testing.T, k8sMinorVer string) *env { t.Helper() - testingEnv := testing.Start(t, testing.Preload(images...)) + testingEnv := testing.Start(t, k8sMinorVer, testing.Preload(images...)) e := &env{Env: testingEnv} diff --git a/testing/testing.go b/testing/testing.go index fea40ee6..22425d6d 100644 --- a/testing/testing.go +++ b/testing/testing.go @@ -17,6 +17,12 @@ type T = testing.T var Short = testing.Short +var images = map[string]string{ + "1.22": "kindest/node:v1.22.9@sha256:8135260b959dfe320206eb36b3aeda9cffcb262f4b44cda6b33f7bb73f453105", + "1.23": "kindest/node:v1.23.6@sha256:b1fa224cc6c7ff32455e0b1fd9cbfd3d3bc87ecaa8fcb06961ed1afb3db0f9ae", + "1.24": "kindest/node:v1.24.0@sha256:0866296e693efe1fed79d5e6c7af8df71fc73ae45e3679af05342239cdc5bc8e", +} + func Img(repo, tag string) ContainerImage { return ContainerImage{ Repo: repo, @@ -34,10 +40,10 @@ type Env struct { bash *Bash } -func Start(t *testing.T, opts ...Option) *Env { +func Start(t *testing.T, k8sMinorVer string, opts ...Option) *Env { t.Helper() - k := StartKind(t, opts...) + k := StartKind(t, k8sMinorVer, opts...) var env Env @@ -251,7 +257,7 @@ type ContainerImage struct { Repo, Tag string } -func StartKind(t *testing.T, opts ...Option) *Kind { +func StartKind(t *testing.T, k8sMinorVer string, opts ...Option) *Kind { t.Helper() invalidChars := []string{"/"} @@ -266,7 +272,7 @@ func StartKind(t *testing.T, opts ...Option) *Kind { k.Dir = t.TempDir() kk := &k - if err := kk.Start(context.Background()); err != nil { + if err := kk.Start(context.Background(), k8sMinorVer); err != nil { t.Fatal(err) } t.Cleanup(func() { @@ -323,7 +329,7 @@ func (k *Kind) Kubeconfig() string { return k.kubeconfig } -func (k *Kind) Start(ctx context.Context) error { +func (k *Kind) Start(ctx context.Context, k8sMinorVer string) error { getNodes, err := k.CombinedOutput(k.kindGetNodesCmd(ctx, k.Name)) if err != nil { return err @@ -337,6 +343,8 @@ func (k *Kind) Start(ctx context.Context) error { return err } + image := images[k8sMinorVer] + kindConfig := []byte(fmt.Sprintf(`kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 name: %s @@ -344,8 +352,10 @@ networking: apiServerAddress: 0.0.0.0 nodes: - role: control-plane + image: %s - role: worker -`, k.Name)) + image: %s +`, k.Name, image, image)) if err := os.WriteFile(f.Name(), kindConfig, 0644); err != nil { return err