Add e2e tests for the Helm Chart (#334)
This commit is contained in:
		
							parent
							
								
									cab7d0900c
								
							
						
					
					
						commit
						185f0533e4
					
				|  | @ -51,6 +51,13 @@ jobs: | ||||||
|         - sudo apt-get install socat |         - sudo apt-get install socat | ||||||
|         - travis_wait 10 make travis-prepare |         - travis_wait 10 make travis-prepare | ||||||
|         - travis_wait 45 make build e2e |         - travis_wait 45 make build e2e | ||||||
|  |     - stage: e2e | ||||||
|  |       name: "Jenkins Operator Helm Chart - e2e" | ||||||
|  |       script: | ||||||
|  |         - sudo apt-get update | ||||||
|  |         - sudo apt-get install socat | ||||||
|  |         - travis_wait 10 make travis-prepare | ||||||
|  |         - travis_wait 45 make e2e BUILDTAGS=Helm E2E_TEST_SELECTOR='^.*Helm.*$' | ||||||
| 
 | 
 | ||||||
| cache: | cache: | ||||||
|   directories: |   directories: | ||||||
|  |  | ||||||
							
								
								
									
										1
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										1
									
								
								Makefile
								
								
								
								
							|  | @ -487,6 +487,7 @@ else | ||||||
| 	curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/$(MINIKUBE_KUBERNETES_VERSION)/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/ | 	curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/$(MINIKUBE_KUBERNETES_VERSION)/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/ | ||||||
| 	curl -Lo minikube https://storage.googleapis.com/minikube/releases/v$(MINIKUBE_VERSION)/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/ | 	curl -Lo minikube https://storage.googleapis.com/minikube/releases/v$(MINIKUBE_VERSION)/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/ | ||||||
| 	curl -Lo operator-sdk https://github.com/operator-framework/operator-sdk/releases/download/v$(OPERATOR_SDK_VERSION)/operator-sdk-v$(OPERATOR_SDK_VERSION)-x86_64-linux-gnu && chmod +x operator-sdk && sudo mv operator-sdk /usr/local/bin/ | 	curl -Lo operator-sdk https://github.com/operator-framework/operator-sdk/releases/download/v$(OPERATOR_SDK_VERSION)/operator-sdk-v$(OPERATOR_SDK_VERSION)-x86_64-linux-gnu && chmod +x operator-sdk && sudo mv operator-sdk /usr/local/bin/ | ||||||
|  | 	curl -Lo helm.tar.gz https://get.helm.sh/helm-v$(HELM_VERSION)-linux-amd64.tar.gz && tar xzfv helm.tar.gz && sudo mv linux-amd64/helm /usr/local/bin/ | ||||||
| 	mkdir -p $(HOME)/.kube $(HOME)/.minikube | 	mkdir -p $(HOME)/.kube $(HOME)/.minikube | ||||||
| 	touch $(KUBECONFIG) | 	touch $(KUBECONFIG) | ||||||
| 	sudo minikube start --vm-driver=none --kubernetes-version=$(MINIKUBE_KUBERNETES_VERSION) | 	sudo minikube start --vm-driver=none --kubernetes-version=$(MINIKUBE_KUBERNETES_VERSION) | ||||||
|  |  | ||||||
|  | @ -10,3 +10,4 @@ API_VERSION=v1alpha2 | ||||||
| ALL_IN_ONE_DEPLOY_FILE_PREFIX=all-in-one | ALL_IN_ONE_DEPLOY_FILE_PREFIX=all-in-one | ||||||
| GEN_CRD_API=gen-crd-api-reference-docs | GEN_CRD_API=gen-crd-api-reference-docs | ||||||
| IMAGE_PULL_MODE=local | IMAGE_PULL_MODE=local | ||||||
|  | HELM_VERSION=3.1.2 | ||||||
|  | @ -0,0 +1,60 @@ | ||||||
|  | // +build Helm
 | ||||||
|  | 
 | ||||||
|  | package e2e | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"fmt" | ||||||
|  | 	"os/exec" | ||||||
|  | 	"testing" | ||||||
|  | 
 | ||||||
|  | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis" | ||||||
|  | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2" | ||||||
|  | 
 | ||||||
|  | 	framework "github.com/operator-framework/operator-sdk/pkg/test" | ||||||
|  | 	"github.com/stretchr/testify/require" | ||||||
|  | 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | func TestLintHelmChart(t *testing.T) { | ||||||
|  | 	t.Parallel() | ||||||
|  | 
 | ||||||
|  | 	cmd := exec.Command("helm", "lint", "./chart/jenkins-operator") | ||||||
|  | 	output, err := cmd.CombinedOutput() | ||||||
|  | 	require.NoError(t, err, string(output)) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func TestDeployHelmChart(t *testing.T) { | ||||||
|  | 	// Given
 | ||||||
|  | 	t.Parallel() | ||||||
|  | 	ctx := framework.NewTestCtx(t) | ||||||
|  | 	defer ctx.Cleanup() | ||||||
|  | 
 | ||||||
|  | 	namespace, err := ctx.GetNamespace() | ||||||
|  | 	require.NoError(t, err) | ||||||
|  | 
 | ||||||
|  | 	jenkinsServiceList := &v1alpha2.JenkinsList{ | ||||||
|  | 		TypeMeta: metav1.TypeMeta{ | ||||||
|  | 			Kind:       v1alpha2.Kind, | ||||||
|  | 			APIVersion: v1alpha2.SchemeGroupVersion.String(), | ||||||
|  | 		}, | ||||||
|  | 	} | ||||||
|  | 	err = framework.AddToFrameworkScheme(apis.AddToScheme, jenkinsServiceList) | ||||||
|  | 	require.NoError(t, err) | ||||||
|  | 
 | ||||||
|  | 	jenkins := &v1alpha2.Jenkins{ | ||||||
|  | 		TypeMeta: v1alpha2.JenkinsTypeMeta(), | ||||||
|  | 		ObjectMeta: metav1.ObjectMeta{ | ||||||
|  | 			Name:      "jenkins", | ||||||
|  | 			Namespace: namespace, | ||||||
|  | 		}, | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	cmd := exec.Command("helm", "install", "helm", "./chart/jenkins-operator", "--namespace", namespace, "--debug", | ||||||
|  | 		"--set-string", fmt.Sprintf("jenkins.namespace=%s", namespace)) | ||||||
|  | 	output, err := cmd.CombinedOutput() | ||||||
|  | 	require.NoError(t, err, string(output)) | ||||||
|  | 
 | ||||||
|  | 	// Then
 | ||||||
|  | 	waitForJenkinsBaseConfigurationToComplete(t, jenkins) | ||||||
|  | 	waitForJenkinsUserConfigurationToComplete(t, jenkins) | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue