diff --git a/Jenkinsfile b/Jenkinsfile index f955aa9db69a908e1bd5e05e4958d0102172dae0..5af15dcbbaeb532c2c4b644d5690cb07e2396e42 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -9,6 +9,8 @@ pipeline { BLUE_OCEAN_URL = "https://jenkins.ozg-sh.de/job/goofy/job/${env.BRANCH_NAME}/${env.BUILD_NUMBER}/" RELEASE_REGEX = /\d+.\d+.\d+/ SNAPSHOT_REGEX = /\d+.\d+.\d+-SNAPSHOT/ + BUNDESLAND = "by" + CLUSTER_BASE_URL = "dev.by.kop-cloud.de" FAILED_STAGE = "" IMAGE_TAG = "" VERSION = "" @@ -128,7 +130,7 @@ pipeline { FAILED_STAGE = env.STAGE_NAME E2E_FAILED = "" - configFileProvider([configFile(fileId: 'kubeconfig-old-dev-cluster', variable: 'KUBE_CONFIG')]) { + configFileProvider([configFile(fileId: 'kubeconfig-dev-cluster', variable: 'KUBE_CONFIG')]) { sh 'mkdir ~/.kube' sh 'cp ${KUBE_CONFIG} ~/.kube/config' } @@ -242,9 +244,9 @@ pipeline { def bezeichner = generateBezeichner(stageName) def dbPort = 27018 - startEnvironment(bezeichner, stageName, IMAGE_TAG, true, HELM_CHART_VERSION, 'sh', dbPort) + startEnvironment(bezeichner, stageName, IMAGE_TAG, true, HELM_CHART_VERSION, dbPort) - def testResult = runTests(stageName, bezeichner, 'einheitlicher-ansprechpartner', 'sh', dbPort) + def testResult = runTests(stageName, bezeichner, 'einheitlicher-ansprechpartner', dbPort) if (env.BRANCH_NAME != 'master') { deleteKopStack(bezeichner, stageName) @@ -271,9 +273,9 @@ pipeline { def bezeichner = generateBezeichner(stageName) def dbPort = 27019 - startEnvironment(bezeichner, stageName, IMAGE_TAG, false, HELM_CHART_VERSION, 'sh', dbPort) + startEnvironment(bezeichner, stageName, IMAGE_TAG, false, HELM_CHART_VERSION, dbPort) - def testResult = runTests(stageName, bezeichner, 'main-tests', 'sh', dbPort) + def testResult = runTests(stageName, bezeichner, 'main-tests', dbPort) if (env.BRANCH_NAME != 'master') { deleteKopStack(bezeichner, stageName) @@ -384,7 +386,7 @@ String generateImageTag() { return imageTag } -Void startEnvironment(String bezeichner, String stage, String imageTag, Boolean isEa, String chartVersion, String bundesland, dbPort) { +Void startEnvironment(String bezeichner, String stage, String imageTag, Boolean isEa, String chartVersion, Integer dbPort) { setupAnsible(imageTag, stage, isEa, chartVersion) try { @@ -394,9 +396,9 @@ Void startEnvironment(String bezeichner, String stage, String imageTag, Boolean } rolloutKopStack(bezeichner, stage) - addKeycloakGroups(bezeichner, stage, bundesland) - addKeycloakUser(bezeichner, stage, bundesland) - exposeDatenbank("${bundesland}-${bezeichner}-dev", dbPort) + addKeycloakGroups(bezeichner, stage) + addKeycloakUser(bezeichner, stage) + exposeDatenbank("${env.BUNDESLAND}-${bezeichner}-dev", dbPort) exposeElasticSearch() } @@ -417,7 +419,7 @@ Void setupAnsible(String imageTag, String stage, Boolean isEa, String chartVersi } Void setAnsibleKubeConfig() { - configFileProvider([configFile(fileId: 'kubeconfig-old-dev-cluster', variable: 'KUBE_CONFIG')]) { + configFileProvider([configFile(fileId: 'kubeconfig-dev-cluster', variable: 'KUBE_CONFIG')]) { sh 'mkdir ~/.kube' sh 'cp ${KUBE_CONFIG} ~/.kube/config' } @@ -462,9 +464,10 @@ Void editEnvironemntVersion(String stage, String imageTag, Boolean isEa, String devVersions.values.goofy.put('env', ['overrideSpringProfiles': overrideSpringProfiles]) devVersions.values.pluto.put('env', ['overrideSpringProfiles': overrideSpringProfiles]) + devVersions.values.goofy.put('ingress', ['use_staging_cert': true]) devVersions.versions.goofy.image.tag = imageTag - // devVersions.charts.goofy.version = chartVersion + devVersions.charts.goofy.version = chartVersion writeYaml file: editFile, data: devVersions, overwrite: true } @@ -523,7 +526,7 @@ Void rolloutKopStack(String bezeichner, String stage) { } } -Void addKeycloakGroups(String bezeichner, String stage, String bundesland) { +Void addKeycloakGroups(String bezeichner, String stage) { def groupFiles = sh (script: 'ls goofy-client/apps/goofy-e2e/src/fixtures/group', returnStdout: true) groupFiles.split("\\n").each { group -> @@ -531,7 +534,7 @@ Void addKeycloakGroups(String bezeichner, String stage, String bundesland) { def ansibleVars = """{"k8s_context":"ozg-dev", \ "kop_env":"dev", \ - "keycloak_realm":"${bundesland}-${bezeichner}-dev", \ + "keycloak_realm":"${env.BUNDESLAND}-${bezeichner}-dev", \ "group":${groupJson} }""" @@ -546,7 +549,7 @@ Void addKeycloakGroups(String bezeichner, String stage, String bundesland) { } } -Void addKeycloakUser(String bezeichner, String stage, String bundesland) { +Void addKeycloakUser(String bezeichner, String stage) { def userFiles = sh (script: 'ls goofy-client/apps/goofy-e2e/src/fixtures/user', returnStdout: true) userFiles.split("\\n").each { user -> @@ -554,7 +557,7 @@ Void addKeycloakUser(String bezeichner, String stage, String bundesland) { def ansibleVars = """{"k8s_context":"ozg-dev", \ "kop_env":"dev", \ - "keycloak_realm":"${bundesland}-${bezeichner}-dev", \ + "keycloak_realm":"${env.BUNDESLAND}-${bezeichner}-dev", \ "user":${userJson} }""" @@ -597,8 +600,8 @@ Void publishE2ETestResult(String reportFolder, String reportName) { ) } -String runTests(String stageName, String bezeichner, String reportFolder, String bundesland, dbPort) { - def configFile = generateCypressConfig(stageName, bezeichner, reportFolder, bundesland, dbPort) +String runTests(String stageName, String bezeichner, String reportFolder, Integer dbPort) { + def configFile = generateCypressConfig(stageName, bezeichner, reportFolder, env.BUNDESLAND, dbPort) try { dir("goofy-client") { @@ -637,17 +640,15 @@ String cutBranchNameForKeycloakRealm(String branchName, String stageName) { return branchName } -String generateCypressConfig(String stage, String bezeichner, String testFolder, String bundesland, dbPort) { - def namespace = "${bundesland}-${bezeichner}-dev" +String generateCypressConfig(String stage, String bezeichner, String testFolder, Integer dbPort) { + def namespace = "${env.BUNDESLAND}-${bezeichner}-dev" def configName = "cypress-ci-"+testFolder+".json" - - def url = "dev.ozg-sh.de" dir('goofy-client/apps/goofy-e2e/'){ def config = readJSON file: 'cypress-ci.json' def elasticsearchEnv = getElasticsearchEnv(namespace) - config.baseUrl = "https://${bezeichner}.${url}" as String + config.baseUrl = "https://${bezeichner}.${env.CLUSTER_BASE_URL}" as String config.env.dbUrl = "mongodb://pluto-database-user:XnHhfznNWg65NNd@localhost:${dbPort}/admin?ssl=false&directConnection=true" as String config.env.keycloakRealm = namespace as String config.env.keycloakClient = namespace + "-goofy" as String @@ -688,7 +689,7 @@ def getSecrect(namespace, secretName){ String getKeycloakUuid(realm, userName) { def shScript = """curl -H 'Content-Type: application/json' \ -H 'Authorization: bearer ${getKeycloakAccessToken()}' \ - 'https://sso.dev.ozg-sh.de/admin/realms/${realm}/users' + 'https://sso.${env.CLUSTER_BASE_URL}/admin/realms/${realm}/users' """ def users = readJSON text: sh(script: shScript, returnStdout: true) @@ -701,8 +702,9 @@ String getKeycloakUuid(realm, userName) { } String getKeycloakAccessToken() { - withCredentials([usernamePassword(credentialsId: 'keycloak-old-dev-cluster', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { - def token = readJSON text: sh (script: 'curl -d "client_id=admin-cli" -d "username=$USER" -d "password=$PASSWORD" -d "grant_type=password" "https://sso.dev.ozg-sh.de/realms/master/protocol/openid-connect/token"', returnStdout: true) + withCredentials([usernamePassword(credentialsId: 'keycloak-dev-cluster', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { + def ssoURL = "https://sso.${env.CLUSTER_BASE_URL}/realms/master/protocol/openid-connect/token" + def token = readJSON text: sh (script: 'curl -d "client_id=admin-cli" -d "username=$USER" -d "password=$PASSWORD" -d "grant_type=password" $ssoUrl', returnStdout: true) return token.access_token }