From 0e4ae1550608b365e8231ef4a56401bc7d0577da Mon Sep 17 00:00:00 2001 From: Jakub Al-Khalili Date: Wed, 17 Jul 2019 16:01:34 +0200 Subject: [PATCH] #28 Enable groovy scripts secret loader --- .../jenkins/configuration/user/reconcile.go | 5 +---- test/e2e/configuration_test.go | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/pkg/controller/jenkins/configuration/user/reconcile.go b/pkg/controller/jenkins/configuration/user/reconcile.go index 13525a62..0bdb4c6b 100644 --- a/pkg/controller/jenkins/configuration/user/reconcile.go +++ b/pkg/controller/jenkins/configuration/user/reconcile.go @@ -112,10 +112,7 @@ func (r *ReconcileUserConfiguration) ensureUserConfiguration(jenkinsClient jenki } requeue, err = groovyClient.Ensure(func(name string) bool { return strings.HasSuffix(name, ".groovy") - }, func(groovyScript string) string { - // TODO load secrets to variables - return groovyScript - }) + }, groovy.AddSecretsLoaderToGroovyScript(resources.GroovyScriptsSecretVolumePath)) if err != nil { return reconcile.Result{}, err } diff --git a/test/e2e/configuration_test.go b/test/e2e/configuration_test.go index a6ae0590..f75cb178 100644 --- a/test/e2e/configuration_test.go +++ b/test/e2e/configuration_test.go @@ -3,15 +3,15 @@ package e2e import ( "context" "fmt" + "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/groovy" "testing" + "github.com/bndr/gojenkins" "github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2" jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base" "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins" - - "github.com/bndr/gojenkins" framework "github.com/operator-framework/operator-sdk/pkg/test" "github.com/stretchr/testify/assert" corev1 "k8s.io/api/core/v1" @@ -73,7 +73,6 @@ func TestConfiguration(t *testing.T) { createDefaultLimitsForContainersInNamespace(t, namespace) createKubernetesCredentialsProviderSecret(t, namespace, mySeedJob) waitForJenkinsBaseConfigurationToComplete(t, jenkins) - verifyJenkinsMasterPodAttributes(t, jenkins) client := verifyJenkinsAPIConnection(t, jenkins) verifyPlugins(t, client, jenkins) @@ -92,6 +91,7 @@ func createUserConfigurationSecret(t *testing.T, namespace string, systemMessage }, StringData: map[string]string{ systemMessageEnvName: systemMessage, + "numberOfExecutors": "3", }, } @@ -275,6 +275,15 @@ if (!new Integer(%d).equals(Jenkins.instance.numExecutors)) { logs, err := jenkinsClient.ExecuteScript(checkConfigurationViaGroovyScript) assert.NoError(t, err, logs) + checkSecretLoaderViaGroovyScript := fmt.Sprintf(` +if (new Integer(%d).equals(secrets['numberOfExecutors'])) { + throw new Exception("Falied") +}`, amountOfExecutors) + + loader := groovy.AddSecretsLoaderToGroovyScript("/var/jenkins/groovy-scripts-secrets") + logs, err = jenkinsClient.ExecuteScript(loader(checkSecretLoaderViaGroovyScript)) + assert.NoError(t, err, logs) + checkConfigurationAsCode := fmt.Sprintf(` if (!"%s".equals(Jenkins.instance.systemMessage)) { throw new Exception("Configuration as code failed")