From 8c70c0774f561a0e567ba1a4942ec01d21d2b188 Mon Sep 17 00:00:00 2001 From: Jakub Al-Khalili Date: Wed, 11 Sep 2019 16:17:46 +0200 Subject: [PATCH] #96 Fix casc secret configuration bug --- .../configuration/base/resources/pod.go | 2 +- .../configuration/base/resources/pod_test.go | 54 +++++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 pkg/controller/jenkins/configuration/base/resources/pod_test.go diff --git a/pkg/controller/jenkins/configuration/base/resources/pod.go b/pkg/controller/jenkins/configuration/base/resources/pod.go index 7f4146c1..3cd378cf 100644 --- a/pkg/controller/jenkins/configuration/base/resources/pod.go +++ b/pkg/controller/jenkins/configuration/base/resources/pod.go @@ -155,7 +155,7 @@ func getGroovyScriptsSecretVolumeName(jenkins *v1alpha2.Jenkins) string { } func getConfigurationAsCodeSecretVolumeName(jenkins *v1alpha2.Jenkins) string { - return "casc-" + jenkins.Spec.GroovyScripts.Secret.Name + return "casc-" + jenkins.Spec.ConfigurationAsCode.Secret.Name } // GetJenkinsMasterContainerBaseVolumeMounts returns Jenkins master pod volume mounts required by operator diff --git a/pkg/controller/jenkins/configuration/base/resources/pod_test.go b/pkg/controller/jenkins/configuration/base/resources/pod_test.go new file mode 100644 index 00000000..29133b24 --- /dev/null +++ b/pkg/controller/jenkins/configuration/base/resources/pod_test.go @@ -0,0 +1,54 @@ +package resources + +import ( + "github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2" + "github.com/stretchr/testify/assert" + "testing" +) + +func TestGetJenkinsMasterPodBaseVolumes(t *testing.T) { + t.Run("casc and groovy script with different configMap names", func(t *testing.T) { + configMapName := "config-map" + jenkins := &v1alpha2.Jenkins{ + Spec: v1alpha2.JenkinsSpec{ + ConfigurationAsCode:v1alpha2.ConfigurationAsCode{ + Customization: v1alpha2.Customization{ + Configurations: []v1alpha2.ConfigMapRef{ + { + Name: configMapName, + }, + }, + Secret: v1alpha2.SecretRef{ + Name: "casc-script", + }, + }, + }, + GroovyScripts:v1alpha2.GroovyScripts{ + Customization: v1alpha2.Customization{ + Configurations: []v1alpha2.ConfigMapRef{ + { + Name: configMapName, + }, + }, + Secret: v1alpha2.SecretRef{ + Name: "groovy-script", + }, + }, + }, + }, + } + + groovyExists := false + cascExists := false + + for _, volume := range GetJenkinsMasterPodBaseVolumes(jenkins) { + if volume.Name == ("gs-" + jenkins.Spec.GroovyScripts.Secret.Name) { + groovyExists = true + } else if volume.Name == ("casc-" + jenkins.Spec.ConfigurationAsCode.Secret.Name) { + cascExists = true + } + } + + assert.True(t, groovyExists && cascExists) + }) +}