From 87ee491a744317e0efeacbb2429dd83949d7f16a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20S=C4=99k?= Date: Sun, 7 Jun 2020 12:10:03 +0200 Subject: [PATCH] #349 Fix Helm upgrade issue with PVC --- chart/jenkins-operator/templates/backup.yaml | 8 +++++++- chart/jenkins-operator/values.yaml | 2 +- test/e2e/helm_test.go | 12 ++++++++++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/chart/jenkins-operator/templates/backup.yaml b/chart/jenkins-operator/templates/backup.yaml index f604f1f6..bfc5d888 100644 --- a/chart/jenkins-operator/templates/backup.yaml +++ b/chart/jenkins-operator/templates/backup.yaml @@ -8,7 +8,13 @@ metadata: app: jenkins-operator jenkins-cr: {{ .Values.jenkins.name }} spec: - storageClassName: {{ .Values.jenkins.backup.pvc.className }} + {{- if .Values.jenkins.backup.pvc.className }} + {{- if (eq "-" .Values.jenkins.backup.pvc.className) }} + storageClassName: "" + {{- else }} + storageClassName: "{{ .Values.jenkins.backup.pvc.className }}" + {{- end }} + {{- end }} accessModes: - ReadWriteOnce resources: diff --git a/chart/jenkins-operator/values.yaml b/chart/jenkins-operator/values.yaml index 360dfbc4..0aad7af4 100644 --- a/chart/jenkins-operator/values.yaml +++ b/chart/jenkins-operator/values.yaml @@ -168,7 +168,7 @@ jenkins: # className is storageClassName for PVC # See https://kubernetes.io/docs/concepts/storage/persistent-volumes/#class-1 for more details - className: "" + className: "-" # env contains container environment variables # PVC backup provider handles these variables: diff --git a/test/e2e/helm_test.go b/test/e2e/helm_test.go index f8308044..9922154c 100644 --- a/test/e2e/helm_test.go +++ b/test/e2e/helm_test.go @@ -49,11 +49,19 @@ func TestDeployHelmChart(t *testing.T) { }, } - cmd := exec.Command("helm", "install", "helm", "./chart/jenkins-operator", "--namespace", namespace, "--debug", - "--set-string", fmt.Sprintf("jenkins.namespace=%s", namespace)) + cmd := exec.Command("helm", "upgrade", "jenkins", "./chart/jenkins-operator", "--namespace", namespace, "--debug", + "--set-string", fmt.Sprintf("jenkins.namespace=%s", namespace, "--install")) output, err := cmd.CombinedOutput() require.NoError(t, err, string(output)) + waitForJenkinsBaseConfigurationToComplete(t, jenkins) + waitForJenkinsUserConfigurationToComplete(t, jenkins) + + cmd = exec.Command("helm", "upgrade", "jenkins", "./chart/jenkins-operator", "--namespace", namespace, "--debug", + "--set-string", fmt.Sprintf("jenkins.namespace=%s", namespace, "--install")) + output, err = cmd.CombinedOutput() + require.NoError(t, err, string(output)) + // Then waitForJenkinsBaseConfigurationToComplete(t, jenkins) waitForJenkinsUserConfigurationToComplete(t, jenkins)