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