Make it easier to E2E test on various K8s versions (#1599)
This commit is contained in:
		
							parent
							
								
									edbdef8d20
								
							
						
					
					
						commit
						b8e4eee904
					
				|  | @ -122,11 +122,12 @@ func TestE2E(t *testing.T) { | ||||||
| 		t.Skip("Skipped as -short is set") | 		t.Skip("Skipped as -short is set") | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	k8sMinorVer := os.Getenv("ARC_E2E_KUBE_VERSION") | ||||||
| 	skipRunnerCleanUp := os.Getenv("ARC_E2E_SKIP_RUNNER_CLEANUP") != "" | 	skipRunnerCleanUp := os.Getenv("ARC_E2E_SKIP_RUNNER_CLEANUP") != "" | ||||||
| 	retainCluster := os.Getenv("ARC_E2E_RETAIN_CLUSTER") != "" | 	retainCluster := os.Getenv("ARC_E2E_RETAIN_CLUSTER") != "" | ||||||
| 	skipTestIDCleanUp := os.Getenv("ARC_E2E_SKIP_TEST_ID_CLEANUP") != "" | 	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) { | 	t.Run("build and load images", func(t *testing.T) { | ||||||
| 		env.buildAndLoadImages(t) | 		env.buildAndLoadImages(t) | ||||||
|  | @ -264,10 +265,10 @@ type env struct { | ||||||
| 	dockerdWithinRunnerContainer                bool | 	dockerdWithinRunnerContainer                bool | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func initTestEnv(t *testing.T) *env { | func initTestEnv(t *testing.T, k8sMinorVer string) *env { | ||||||
| 	t.Helper() | 	t.Helper() | ||||||
| 
 | 
 | ||||||
| 	testingEnv := testing.Start(t, testing.Preload(images...)) | 	testingEnv := testing.Start(t, k8sMinorVer, testing.Preload(images...)) | ||||||
| 
 | 
 | ||||||
| 	e := &env{Env: testingEnv} | 	e := &env{Env: testingEnv} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -17,6 +17,12 @@ type T = testing.T | ||||||
| 
 | 
 | ||||||
| var Short = testing.Short | 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 { | func Img(repo, tag string) ContainerImage { | ||||||
| 	return ContainerImage{ | 	return ContainerImage{ | ||||||
| 		Repo: repo, | 		Repo: repo, | ||||||
|  | @ -34,10 +40,10 @@ type Env struct { | ||||||
| 	bash    *Bash | 	bash    *Bash | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func Start(t *testing.T, opts ...Option) *Env { | func Start(t *testing.T, k8sMinorVer string, opts ...Option) *Env { | ||||||
| 	t.Helper() | 	t.Helper() | ||||||
| 
 | 
 | ||||||
| 	k := StartKind(t, opts...) | 	k := StartKind(t, k8sMinorVer, opts...) | ||||||
| 
 | 
 | ||||||
| 	var env Env | 	var env Env | ||||||
| 
 | 
 | ||||||
|  | @ -251,7 +257,7 @@ type ContainerImage struct { | ||||||
| 	Repo, Tag string | 	Repo, Tag string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func StartKind(t *testing.T, opts ...Option) *Kind { | func StartKind(t *testing.T, k8sMinorVer string, opts ...Option) *Kind { | ||||||
| 	t.Helper() | 	t.Helper() | ||||||
| 
 | 
 | ||||||
| 	invalidChars := []string{"/"} | 	invalidChars := []string{"/"} | ||||||
|  | @ -266,7 +272,7 @@ func StartKind(t *testing.T, opts ...Option) *Kind { | ||||||
| 	k.Dir = t.TempDir() | 	k.Dir = t.TempDir() | ||||||
| 
 | 
 | ||||||
| 	kk := &k | 	kk := &k | ||||||
| 	if err := kk.Start(context.Background()); err != nil { | 	if err := kk.Start(context.Background(), k8sMinorVer); err != nil { | ||||||
| 		t.Fatal(err) | 		t.Fatal(err) | ||||||
| 	} | 	} | ||||||
| 	t.Cleanup(func() { | 	t.Cleanup(func() { | ||||||
|  | @ -323,7 +329,7 @@ func (k *Kind) Kubeconfig() string { | ||||||
| 	return k.kubeconfig | 	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)) | 	getNodes, err := k.CombinedOutput(k.kindGetNodesCmd(ctx, k.Name)) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
|  | @ -337,6 +343,8 @@ func (k *Kind) Start(ctx context.Context) error { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | 		image := images[k8sMinorVer] | ||||||
|  | 
 | ||||||
| 		kindConfig := []byte(fmt.Sprintf(`kind: Cluster | 		kindConfig := []byte(fmt.Sprintf(`kind: Cluster | ||||||
| apiVersion: kind.x-k8s.io/v1alpha4 | apiVersion: kind.x-k8s.io/v1alpha4 | ||||||
| name: %s | name: %s | ||||||
|  | @ -344,8 +352,10 @@ networking: | ||||||
|   apiServerAddress: 0.0.0.0 |   apiServerAddress: 0.0.0.0 | ||||||
| nodes: | nodes: | ||||||
|   - role: control-plane |   - role: control-plane | ||||||
|  |     image: %s | ||||||
|   - role: worker |   - role: worker | ||||||
| `, k.Name)) |     image: %s | ||||||
|  | `, k.Name, image, image)) | ||||||
| 
 | 
 | ||||||
| 		if err := os.WriteFile(f.Name(), kindConfig, 0644); err != nil { | 		if err := os.WriteFile(f.Name(), kindConfig, 0644); err != nil { | ||||||
| 			return err | 			return err | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue