diff --git a/Jenkinsfile b/Jenkinsfile index 442a4c55f2685e198b3faed405f0fef49c8529f7..255c2298b48fb9187ee82f3cb2036b5b4775f5ee 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -303,14 +303,91 @@ pipeline { Void startEnvironment(String namespace, String goofyValues, String plutoValues, String imageTag, String bezeichner){ checkIfNamespaceExists(namespace) - parallel( - startGoofy: { - startGoofy(namespace, goofyValues, imageTag, bezeichner) - }, - startPluto: { - startPluto(namespace, plutoValues, bezeichner) + setupAnsible(imageTag) + + rolloutKopStack(bezeichner) + addKeycloakGroups(bezeichner) + addKeycloakUser(bezeichner) +} + +Void setupAnsible(String goofyImageTag) { + checkoutProvisioningRepo() + + setGoofyImageVersion(goofyImageTag) +} + +Void checkoutProvisioningRepo() { + withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) { + sh 'git clone https://${USER}:${TOKEN}@git.ozg-sh.de/mgm/provisioning.git' + sh 'git checkout ozg-2552' + } +} + +Void setGoofyImageVersion(String goofyImageTag) { + dir('provisioning') { + def devVersions = readYaml file: "playbook/versions/dev.yaml" + + devVersions.versions.goofy.image.tag = goofyImageTag + + writeYaml file: "playbook/versions/dev.yaml", data: devVersions + + sh "cat playbook/versions/dev.yaml" + } +} + +Void rolloutKopStack(String bezeichner) { + container("ansible") { + dir('provisioning') { + def ansibleVars = """{ + "k8s_context": "ozg-dev", + "kop_env": "dev", + "kop_bezeichner": ${bezeichner}, + "kop_displayname": ${bezeichner}, + "kop_postfach_api_key": "", + "install_afm_adapter": false, + "install_fs_adapter": false, + "external_db_enabled": false + }""" + + sh "ansible-playbook playbook/rollout.yml --extra-vars ${ansibleVars}" } - ) + } +} + +Void addKeycloakGroups(bezeichner) { + container("ansible") { + def groupFiles = sh (script: 'ls goofy-client/apps/goofy-e2e/src/fixtures/group', returnStdout: true) + + groupFiles.split("\\n").each { group -> + def groupJson = sh (script: "cat goofy-client/apps/goofy-e2e/src/fixtures/group/${group}", returnStdout: true) + + def ansibleVars = """{ + "k8s_context": "ozg-dev", + "kop_env": "dev", + "keycloak_realm": "sh-${bezeichner}-dev", + "group": ${groupJson} + }""" + + sh "ansible-playbook playbook/rollout.yml --extra-vars ${ansibleVars}" + } + } +} + +Void addKeycloakUser(String bezeichner) { + def userFiles = sh (script: 'ls goofy-client/apps/goofy-e2e/src/fixtures/user', returnStdout: true) + + userFiles.split("\\n").each { user -> + def userJson = readJSON file: 'goofy-client/apps/goofy-e2e/src/fixtures/user/'+user + + def ansibleVars = """{ + "k8s_context": "ozg-dev", + "kop_env": "dev", + "keycloak_realm": "sh-${bezeichner}-dev", + "user": ${userJson} + }""" + + sh "ansible-playbook playbook/rollout.yml --extra-vars ${ansibleVars}" + } } Void publishE2ETestResult(String reportFolder, String reportName) {