Skip to content
Snippets Groups Projects
Commit d9a23a5b authored by OZGCloud's avatar OZGCloud
Browse files

OZG-3294 pr anmerkungen

parent 0e346066
No related branches found
No related tags found
No related merge requests found
...@@ -17,6 +17,7 @@ pipeline { ...@@ -17,6 +17,7 @@ pipeline {
VERSION = "" VERSION = ""
E2E_FAILED = "" E2E_FAILED = ""
HELM_CHART_VERSION = "" HELM_CHART_VERSION = ""
SH_SUCCESS_STATUS_CODE = 0
} }
options { options {
...@@ -39,7 +40,7 @@ pipeline { ...@@ -39,7 +40,7 @@ pipeline {
def clientPom = readMavenPom file: 'goofy-client/pom.xml' def clientPom = readMavenPom file: 'goofy-client/pom.xml'
def clientVersion = clientPom.parent.version def clientVersion = clientPom.parent.version
if(env.BRANCH_NAME == 'release'){ if(isReleaseBranch()){
if ( !(VERSION ==~ RELEASE_REGEX) || !(serverVersion ==~ RELEASE_REGEX) || !(clientVersion ==~ RELEASE_REGEX)) { if ( !(VERSION ==~ RELEASE_REGEX) || !(serverVersion ==~ RELEASE_REGEX) || !(clientVersion ==~ RELEASE_REGEX)) {
error("Keine Release Version für Branch ${env.BRANCH_NAME}.") error("Keine Release Version für Branch ${env.BRANCH_NAME}.")
} }
...@@ -68,7 +69,7 @@ pipeline { ...@@ -68,7 +69,7 @@ pipeline {
sh 'npm cache verify' sh 'npm cache verify'
sh 'npm install --legacy-peer-deps' sh 'npm install --legacy-peer-deps'
if (env.BRANCH_NAME == 'release') { if (isReleaseBranch()) {
sh 'npm run ci-prodBuild' sh 'npm run ci-prodBuild'
} }
else { else {
...@@ -78,7 +79,7 @@ pipeline { ...@@ -78,7 +79,7 @@ pipeline {
sh 'npm run ci-test' sh 'npm run ci-test'
try { try {
if (env.BRANCH_NAME == 'master') { if (isMasterBranch()) {
withSonarQubeEnv('sonarqube-ozg-sh'){ withSonarQubeEnv('sonarqube-ozg-sh'){
sh 'npm run ci-sonar' sh 'npm run ci-sonar'
} }
...@@ -106,7 +107,7 @@ pipeline { ...@@ -106,7 +107,7 @@ pipeline {
sh "mvn -s $MAVEN_SETTINGS -pl -goofy-client clean install spring-boot:build-image -Dspring-boot.build-image.imageName=docker.ozg-sh.de/goofy:${IMAGE_TAG} -Dspring-boot.build-image.publish -Dmaven.wagon.http.retryHandler.count=3" sh "mvn -s $MAVEN_SETTINGS -pl -goofy-client clean install spring-boot:build-image -Dspring-boot.build-image.imageName=docker.ozg-sh.de/goofy:${IMAGE_TAG} -Dspring-boot.build-image.publish -Dmaven.wagon.http.retryHandler.count=3"
try { try {
if (env.BRANCH_NAME == 'master') { if (isMasterBranch()) {
dir('goofy-server'){ dir('goofy-server'){
withSonarQubeEnv('sonarqube-ozg-sh'){ withSonarQubeEnv('sonarqube-ozg-sh'){
sh 'mvn -s $MAVEN_SETTINGS sonar:sonar' sh 'mvn -s $MAVEN_SETTINGS sonar:sonar'
...@@ -154,10 +155,10 @@ pipeline { ...@@ -154,10 +155,10 @@ pipeline {
script { script {
FAILED_STAGE = env.STAGE_NAME FAILED_STAGE = env.STAGE_NAME
if (env.BRANCH_NAME == 'master') { if (isMasterBranch()) {
tagAndPushDockerImage('snapshot-latest') tagAndPushDockerImage('snapshot-latest')
} }
else if (env.BRANCH_NAME == 'release') { else if (isReleaseBranch()) {
tagAndPushDockerImage('latest') tagAndPushDockerImage('latest')
} }
} }
...@@ -189,17 +190,12 @@ pipeline { ...@@ -189,17 +190,12 @@ pipeline {
} }
steps { steps {
script { script {
if(currentBuild.changeSets.size() > 0) {
FAILED_STAGE = env.STAGE_NAME FAILED_STAGE = env.STAGE_NAME
cloneGitopsRepo("rollout") cloneRolloutGitopsRepo()
setNewGoofyGitopsVersion("rollout", "dev") setNewDevGoofyVersion()
pushGitopsRepo("rollout") pushRolloutGitopsRepo()
}
else {
sh 'echo "no code changes found"'
}
} }
} }
} }
...@@ -239,18 +235,17 @@ pipeline { ...@@ -239,18 +235,17 @@ pipeline {
FAILED_STAGE = env.STAGE_NAME FAILED_STAGE = env.STAGE_NAME
E2E_FAILED = "" E2E_FAILED = ""
cloneGitopsRepo("e2e") cloneE2eGitopsRepo()
checkoutE2eBranch("e2e")
env.EA_BEZEICHNER = generateBezeichner("e2e-ea") env.EA_BEZEICHNER = generateBezeichner("e2e-ea")
env.MAIN_BEZEICHNER = generateBezeichner("e2e-main") env.MAIN_BEZEICHNER = generateBezeichner("e2e-main")
deleteKopStack([env.EA_BEZEICHNER, env.MAIN_BEZEICHNER]) deleteKopStack([env.EA_BEZEICHNER, env.MAIN_BEZEICHNER])
generateNamespaceYaml(env.EA_BEZEICHNER, true) generateEaNamespaceYaml()
generateNamespaceYaml(env.MAIN_BEZEICHNER, false) generateMainNamespaceYaml()
pushGitopsRepo("e2e") pushE2eGitopsRepo()
rolloutKopStack([env.EA_BEZEICHNER, env.MAIN_BEZEICHNER]) rolloutKopStack([env.EA_BEZEICHNER, env.MAIN_BEZEICHNER])
} }
...@@ -262,13 +257,11 @@ pipeline { ...@@ -262,13 +257,11 @@ pipeline {
FAILED_STAGE = env.STAGE_NAME FAILED_STAGE = env.STAGE_NAME
E2E_FAILED = "" E2E_FAILED = ""
cloneProvisioningRepo("e2e") cloneProvisioningRepo()
addKeycloakGroups(env.EA_BEZEICHNER, "e2e") initEaKeycloak()
addKeycloakUser(env.EA_BEZEICHNER, "e2e")
addKeycloakGroups(env.MAIN_BEZEICHNER, "e2e") initMainKeycloak()
addKeycloakUser(env.MAIN_BEZEICHNER, "e2e")
} }
} }
} }
...@@ -283,7 +276,7 @@ pipeline { ...@@ -283,7 +276,7 @@ pipeline {
def bezeichner = env.EA_BEZEICHNER def bezeichner = env.EA_BEZEICHNER
def dbPort = 27018 def dbPort = 27018
exposeDatenbank("${env.BUNDESLAND}-${bezeichner}-dev", dbPort) exposeDatenbank(generateNamespace(bezeichner), dbPort)
exposeElasticSearch() exposeElasticSearch()
def testResult = runTests(bezeichner, 'einheitlicher-ansprechpartner', dbPort) def testResult = runTests(bezeichner, 'einheitlicher-ansprechpartner', dbPort)
...@@ -309,7 +302,7 @@ pipeline { ...@@ -309,7 +302,7 @@ pipeline {
def bezeichner = env.MAIN_BEZEICHNER def bezeichner = env.MAIN_BEZEICHNER
def dbPort = 27019 def dbPort = 27019
exposeDatenbank("${env.BUNDESLAND}-${bezeichner}-dev", dbPort) exposeDatenbank(generateNamespace(bezeichner), dbPort)
exposeElasticSearch() exposeElasticSearch()
def testResult = runTests(bezeichner, 'main-tests', dbPort) def testResult = runTests(bezeichner, 'main-tests', dbPort)
...@@ -361,10 +354,10 @@ pipeline { ...@@ -361,10 +354,10 @@ pipeline {
script { script {
FAILED_STAGE = env.STAGE_NAME FAILED_STAGE = env.STAGE_NAME
cloneGitopsRepo("rollout") cloneRolloutGitopsRepo()
setNewGoofyGitopsVersion("rollout", "test") setNewTestGoofyVersion()
pushGitopsRepo("rollout") pushRolloutGitopsRepo()
} }
} }
} }
...@@ -372,7 +365,7 @@ pipeline { ...@@ -372,7 +365,7 @@ pipeline {
post { post {
failure { failure {
script { script {
if (env.BRANCH_NAME == 'master' || env.BRANCH_NAME == 'release') { if (isMasterBranch() || isReleaseBranch()) {
sendFailureMessage() sendFailureMessage()
} }
} }
...@@ -382,7 +375,7 @@ pipeline { ...@@ -382,7 +375,7 @@ pipeline {
Void deployHelmChart(String helmChartVersion) { Void deployHelmChart(String helmChartVersion) {
withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]){ withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]){
if (env.BRANCH_NAME == 'release') { if (isReleaseBranch()) {
result = sh script: '''curl -u $USERNAME:$PASSWORD https://nexus.ozg-sh.de/service/rest/v1/components?repository=ozg-base-apps -F file=@goofy-'''+helmChartVersion+'''.tgz''', returnStdout: true result = sh script: '''curl -u $USERNAME:$PASSWORD https://nexus.ozg-sh.de/service/rest/v1/components?repository=ozg-base-apps -F file=@goofy-'''+helmChartVersion+'''.tgz''', returnStdout: true
} }
else { else {
...@@ -398,7 +391,7 @@ Void deployHelmChart(String helmChartVersion) { ...@@ -398,7 +391,7 @@ Void deployHelmChart(String helmChartVersion) {
String generateHelmChartVersion() { String generateHelmChartVersion() {
def chartVersion = "${VERSION}" def chartVersion = "${VERSION}"
if (env.BRANCH_NAME == 'master') { if (isMasterBranch()) {
chartVersion += "-${env.GIT_COMMIT.take(7)}" chartVersion += "-${env.GIT_COMMIT.take(7)}"
} }
else if (env.BRANCH_NAME != 'release') { else if (env.BRANCH_NAME != 'release') {
...@@ -420,13 +413,22 @@ Void tagAndPushDockerImage(String newTag){ ...@@ -420,13 +413,22 @@ Void tagAndPushDockerImage(String newTag){
String generateImageTag() { String generateImageTag() {
def imageTag = "${env.BRANCH_NAME}-${VERSION}" def imageTag = "${env.BRANCH_NAME}-${VERSION}"
if (env.BRANCH_NAME == 'master') { if (isMasterBranch()) {
imageTag += "-${env.GIT_COMMIT.take(7)}" imageTag += "-${env.GIT_COMMIT.take(7)}"
} }
return imageTag return imageTag
} }
Void cloneE2eGitopsRepo() {
cloneGitopsRepo("e2e")
checkoutE2eBranch("e2e")
}
Void cloneRolloutGitopsRepo() {
cloneGitopsRepo("rollout")
}
Void cloneGitopsRepo(String directory) { Void cloneGitopsRepo(String directory) {
withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) { withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) {
dir(directory) { dir(directory) {
...@@ -436,26 +438,43 @@ Void cloneGitopsRepo(String directory) { ...@@ -436,26 +438,43 @@ Void cloneGitopsRepo(String directory) {
configGit("${directory}/gitops") configGit("${directory}/gitops")
} }
Void cloneProvisioningRepo(String directory) { Void cloneProvisioningRepo() {
withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) { withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) {
dir(directory) { dir("e2e") {
sh 'git clone https://${USER}:${TOKEN}@git.ozg-sh.de/mgm/provisioning.git' sh 'git clone https://${USER}:${TOKEN}@git.ozg-sh.de/mgm/provisioning.git'
} }
} }
} }
Void pushE2eGitopsRepo() {
pushGitopsRepo("e2e")
}
Void pushRolloutGitopsRepo() {
pushGitopsRepo("rollout")
}
Void pushGitopsRepo(String directory) { Void pushGitopsRepo(String directory) {
withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) { withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) {
dir("${directory}/gitops") { dir("${directory}/gitops") {
if (hasUnpushedCommits()){
sh 'git push https://${USER}:${TOKEN}@git.ozg-sh.de/mgm/gitops.git' sh 'git push https://${USER}:${TOKEN}@git.ozg-sh.de/mgm/gitops.git'
} }
} }
} }
}
Boolean hasUnpushedCommits() {
return sh (script: "git cherry -v", returnStatus: true) == env.SH_SUCCESS_STATUS_CODE
}
Void configGit(String directory) { Void configGit(String directory) {
final email = "jenkins@ozg-sh.de"
final name = "jenkins"
dir(directory) { dir(directory) {
sh 'git config user.email "jenkins@ozg-sh.de"' sh "git config user.email '${email}'"
sh 'git config user.name "jenkins"' sh "git config user.name '${name}'"
} }
} }
...@@ -465,14 +484,22 @@ Void checkoutE2eBranch(String directory) { ...@@ -465,14 +484,22 @@ Void checkoutE2eBranch(String directory) {
} }
} }
Void generateNamespaceYaml(String bezeichner, Boolean isEa) { Void generateEaNamespaceYaml() {
def envValues = readYaml file: valuesPath(isEa) generateNamespaceYaml(env.EA_BEZEICHNER, "goofy-client/apps/goofy-e2e/src/fixtures/argocd/by-ea-dev.yaml")
}
Void generateMainNamespaceYaml() {
generateNamespaceYaml(env.MAIN_BEZEICHNER, "goofy-client/apps/goofy-e2e/src/fixtures/argocd/by-main-dev.yaml")
}
Void generateNamespaceYaml(String bezeichner, String valuesPath) {
def envValues = readYaml file: valuesPath
envValues.kop.bezeichner = bezeichner envValues.kop.bezeichner = bezeichner
envValues.goofy.image.tag = IMAGE_TAG envValues.put("goofy", ['image': ['tag': IMAGE_TAG]])
envValues.goofy.helm.version = HELM_CHART_VERSION envValues.put("goofy", ['helm': ['version': HELM_CHART_VERSION]])
if (env.BRANCH_NAME == 'release') { if (isReleaseBranch()) {
envValues.put("argocd", ['source': ['path': 'test/application']]) envValues.put("argocd", ['source': ['path': 'test/application']])
} }
...@@ -486,17 +513,17 @@ Void generateNamespaceYaml(String bezeichner, Boolean isEa) { ...@@ -486,17 +513,17 @@ Void generateNamespaceYaml(String bezeichner, Boolean isEa) {
} }
} }
String valuesPath(Boolean isEa) { Void initEaKeycloak() {
def path = "goofy-client/apps/goofy-e2e/src/fixtures/argocd" addKeycloakGroups(env.EA_BEZEICHNER)
addKeycloakUser(env.EA_BEZEICHNER)
if (isEa) {
return "${path}/by-ea-dev.yaml"
} }
return "${path}/by-main-dev.yaml" Void initMainKeycloak() {
addKeycloakGroups(env.MAIN_BEZEICHNER)
addKeycloakUser(env.MAIN_BEZEICHNER)
} }
Void addKeycloakGroups(String bezeichner, String stage) { Void addKeycloakGroups(String bezeichner) {
def groupFiles = sh (script: 'ls goofy-client/apps/goofy-e2e/src/fixtures/group', returnStdout: true) def groupFiles = sh (script: 'ls goofy-client/apps/goofy-e2e/src/fixtures/group', returnStdout: true)
groupFiles.split("\\n").each { group -> groupFiles.split("\\n").each { group ->
...@@ -504,12 +531,12 @@ Void addKeycloakGroups(String bezeichner, String stage) { ...@@ -504,12 +531,12 @@ Void addKeycloakGroups(String bezeichner, String stage) {
def ansibleVars = """{"k8s_context":"ozg-dev", \ def ansibleVars = """{"k8s_context":"ozg-dev", \
"kop_env":"dev", \ "kop_env":"dev", \
"keycloak_realm":"${env.BUNDESLAND}-${bezeichner}-dev", \ "keycloak_realm":"${generateNamespace(bezeichner)}", \
"group":${groupJson} "group":${groupJson}
}""" }"""
dir("${stage}/provisioning") { dir("e2e/provisioning") {
if (env.BRANCH_NAME == 'release') { if (isReleaseBranch()) {
sh "ansible-playbook playbook/add-keycloak-group.yml --extra-vars '${ansibleVars}'" sh "ansible-playbook playbook/add-keycloak-group.yml --extra-vars '${ansibleVars}'"
} }
else { else {
...@@ -519,7 +546,7 @@ Void addKeycloakGroups(String bezeichner, String stage) { ...@@ -519,7 +546,7 @@ Void addKeycloakGroups(String bezeichner, String stage) {
} }
} }
Void addKeycloakUser(String bezeichner, String stage) { Void addKeycloakUser(String bezeichner) {
def userFiles = sh (script: 'ls goofy-client/apps/goofy-e2e/src/fixtures/user', returnStdout: true) def userFiles = sh (script: 'ls goofy-client/apps/goofy-e2e/src/fixtures/user', returnStdout: true)
userFiles.split("\\n").each { user -> userFiles.split("\\n").each { user ->
...@@ -527,12 +554,12 @@ Void addKeycloakUser(String bezeichner, String stage) { ...@@ -527,12 +554,12 @@ Void addKeycloakUser(String bezeichner, String stage) {
def ansibleVars = """{"k8s_context":"ozg-dev", \ def ansibleVars = """{"k8s_context":"ozg-dev", \
"kop_env":"dev", \ "kop_env":"dev", \
"keycloak_realm":"${env.BUNDESLAND}-${bezeichner}-dev", \ "keycloak_realm":"${generateNamespace(bezeichner)}", \
"user":${userJson} "user":${userJson}
}""" }"""
dir("${stage}/provisioning") { dir("e2e/provisioning") {
if (env.BRANCH_NAME == 'release') { if (isReleaseBranch()) {
sh "ansible-playbook playbook/add-keycloak-user.yml --extra-vars '${ansibleVars}'" sh "ansible-playbook playbook/add-keycloak-user.yml --extra-vars '${ansibleVars}'"
} }
else { else {
...@@ -590,19 +617,31 @@ Void waitForHealthyApplication(String bezeichner, String application) { ...@@ -590,19 +617,31 @@ Void waitForHealthyApplication(String bezeichner, String application) {
def countRetry = 0 def countRetry = 0
def maxRetry = 12 def maxRetry = 12
while (sh (script: "kubectl get applications -n argocd | grep 'by-${bezeichner}-dev-${application}'", returnStatus: true) == 1 && countRetry < maxRetry ) { while (!isApplicationPresent(bezeichner, application) && countRetry < maxRetry ) {
countRetry++ countRetry++
sh "sleep 5" sh "sleep 5"
} }
if (sh (script: "kubectl get application/by-${bezeichner}-dev-${application} -n argocd -o=jsonpath='{.status.health.status}' | grep Healthy", returnStatus: true) == 1) { if (!isApplicationHealthy(bezeichner, application)) {
sh "kubectl wait --for=jsonpath='{.status.health.status}'=Healthy applications/by-${bezeichner}-dev-${application} -n argocd --timeout=300s" waitForHealthyStatus(bezeichner, application)
} }
} catch (Exception e) { } catch (Exception e) {
error("Application ${application} unhealthy") error("Application ${application} unhealthy")
} }
} }
Boolean isApplicationPresent(String bezeichner, String application) {
return sh (script: "kubectl get applications -n argocd | grep 'by-${bezeichner}-dev-${application}'", returnStatus: true) == env.SH_SUCCESS_STATUS_CODE
}
Boolean isApplicationHealthy(String bezeichner, String application) {
return sh (script: "kubectl get application/by-${bezeichner}-dev-${application} -n argocd -o=jsonpath='{.status.health.status}' | grep Healthy", returnStatus: true) == env.SH_SUCCESS_STATUS_CODE
}
Void waitForHealthyStatus(String bezeichner, String application) {
sh "kubectl wait --for=jsonpath='{.status.health.status}'=Healthy applications/by-${bezeichner}-dev-${application} -n argocd --timeout=300s"
}
Void publishE2ETestResult(String reportFolder, String reportName) { Void publishE2ETestResult(String reportFolder, String reportName) {
publishHTML ( publishHTML (
target: [ target: [
...@@ -657,7 +696,7 @@ String cutBranchNameForKeycloakRealm(String branchName, String stageName) { ...@@ -657,7 +696,7 @@ String cutBranchNameForKeycloakRealm(String branchName, String stageName) {
} }
String generateCypressConfig(String bezeichner, String testFolder, Integer dbPort) { String generateCypressConfig(String bezeichner, String testFolder, Integer dbPort) {
def namespace = "${env.BUNDESLAND}-${bezeichner}-dev" def namespace = generateNamespace(bezeichner)
def configName = "cypress-ci-"+testFolder+".json" def configName = "cypress-ci-"+testFolder+".json"
dir('goofy-client/apps/goofy-e2e/'){ dir('goofy-client/apps/goofy-e2e/'){
...@@ -724,10 +763,10 @@ Void sendFailureMessage() { ...@@ -724,10 +763,10 @@ Void sendFailureMessage() {
"format": "org.matrix.custom.html", \ "format": "org.matrix.custom.html", \
"formatted_body":"Goofy: Build Failed. Stage: ${FAILED_STAGE} Build-ID: <a href='${BLUE_OCEAN_URL}'>${env.BUILD_NUMBER}</a>"}""" "formatted_body":"Goofy: Build Failed. Stage: ${FAILED_STAGE} Build-ID: <a href='${BLUE_OCEAN_URL}'>${env.BUILD_NUMBER}</a>"}"""
if (env.BRANCH_NAME == 'master') { if (isMasterBranch()) {
room = "!iQPAvQIiRwRpNOszjw:matrix.ozg-sh.de" room = "!iQPAvQIiRwRpNOszjw:matrix.ozg-sh.de"
} }
else if (env.BRANCH_NAME == 'release') { else if (isReleaseBranch()) {
room = "!oWZpUGTFsxkJIYNfYg:matrix.ozg-sh.de" room = "!oWZpUGTFsxkJIYNfYg:matrix.ozg-sh.de"
} }
...@@ -740,16 +779,26 @@ String getElementAccessToken() { ...@@ -740,16 +779,26 @@ String getElementAccessToken() {
} }
} }
String getElasticsearchEnv(namespace) { String getElasticsearchEnv(String namespace) {
def elasticsearchSecret = getElasticsearchSecret(namespace)
def env = """{ def env = """{
"user":"${namespace}", \ "user":"${decodeString(elasticsearchSecret.username)}", \
"password":"vf9W1D8Z3673", \ "password":"${decodeString(elasticsearchSecret.password)}", \
"index":"${namespace}", \ "index":"${decodeString(elasticsearchSecret.index)}", \
"url":"https://localhost:9200"}""" "url":"https://localhost:9200"}"""
return readJSON ( text: env) return readJSON ( text: env)
} }
Void setNewDevGoofyVersion() {
setNewGoofyGitopsVersion("rollout", "dev")
}
Void setNewTestGoofyVersion() {
setNewGoofyGitopsVersion("rollout", "test")
}
Void setNewGoofyGitopsVersion(String directory, String environment) { Void setNewGoofyGitopsVersion(String directory, String environment) {
dir("${directory}/gitops") { dir("${directory}/gitops") {
def envFile = "${environment}/application/values/goofy-values.yaml" def envFile = "${environment}/application/values/goofy-values.yaml"
...@@ -761,10 +810,16 @@ Void setNewGoofyGitopsVersion(String directory, String environment) { ...@@ -761,10 +810,16 @@ Void setNewGoofyGitopsVersion(String directory, String environment) {
writeYaml file: envFile, data: envVersions, overwrite: true writeYaml file: envFile, data: envVersions, overwrite: true
sh "git add ${environment}/application/values/goofy-values.yaml" if (hasGoofyValuesFileChanged(environment)) {
sh "git add ${envFile}"
sh "git commit -m 'jenkins rollout ${environment} goofy version ${IMAGE_TAG}'" sh "git commit -m 'jenkins rollout ${environment} goofy version ${IMAGE_TAG}'"
} }
} }
}
Boolean hasGoofyValuesFileChanged(String environment) {
return sh (script: "git status | grep '${environment}/application/values/goofy-values.yaml'", returnStatus: true) == env.SH_SUCCESS_STATUS_CODE
}
Void exposeElasticSearch() { Void exposeElasticSearch() {
portStatus = sh (script: "lsof -i -P -n | grep LISTEN | grep :9200", returnStatus: true) as Integer portStatus = sh (script: "lsof -i -P -n | grep LISTEN | grep :9200", returnStatus: true) as Integer
...@@ -776,3 +831,27 @@ Void exposeElasticSearch() { ...@@ -776,3 +831,27 @@ Void exposeElasticSearch() {
Void exposeDatenbank(String namespace, port) { Void exposeDatenbank(String namespace, port) {
sh "kubectl port-forward pluto-database-0 ${port}:27017 -n ${namespace} &" sh "kubectl port-forward pluto-database-0 ${port}:27017 -n ${namespace} &"
} }
String generateNamespace(String bezeichner) {
return "${env.BUNDESLAND}-${bezeichner}-dev"
}
Boolean isReleaseBranch() {
return env.BRANCH_NAME == 'release'
}
Boolean isMasterBranch() {
return env.BRANCH_NAME == 'master'
}
String getElasticsearchPassword(String bezeichner) {
}
String decodeString(String encoded) {
return sh (script: "echo -n ${encoded} | base64 --decode", returnStdout: true)
}
Map getElasticsearchSecret(String namespace) {
return readJSON ( text: sh (script: "kubectl get secret elasticsearch-credentials -n ${namespace} -o jsonpath={.data}", returnStdout: true))
}
\ No newline at end of file
...@@ -3,10 +3,6 @@ kop: ...@@ -3,10 +3,6 @@ kop:
environment: dev environment: dev
goofy: goofy:
image:
tag: ''
helm:
version: ''
env: env:
overrideSpringProfiles: "oc,ea,e2e,dev" overrideSpringProfiles: "oc,ea,e2e,dev"
sso: sso:
...@@ -19,11 +15,9 @@ goofy: ...@@ -19,11 +15,9 @@ goofy:
pluto: pluto:
env: env:
overrideSpringProfiles: "oc,ea,e2e,dev" overrideSpringProfiles: "oc,e2e,dev"
elasticsearch: elasticsearch:
enabled: true enabled: true
password: vf9W1D8Z3673
ca_cert: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURhVENDQWxHZ0F3SUJBZ0lRYUdRQXNYbXFwVzQ1NnFGL2MzM0FOREFOQmdrcWhraUc5dzBCQVFzRkFEQS8KTVJzd0dRWURWUVFMRXhKdmVtY3RjMlZoY21Ob0xXTnNkWE4wWlhJeElEQWVCZ05WQkFNVEYyOTZaeTF6WldGeQpZMmd0WTJ4MWMzUmxjaTFvZEhSd01CNFhEVEl5TVRJd05ERTROVFV5TkZvWERUSXpNVEl3TkRFNU1EVXlORm93ClB6RWJNQmtHQTFVRUN4TVNiM3BuTFhObFlYSmphQzFqYkhWemRHVnlNU0F3SGdZRFZRUURFeGR2ZW1jdGMyVmgKY21Ob0xXTnNkWE4wWlhJdGFIUjBjRENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQgpBT1VZZEVhU2wzM0FmaHFyTzF3enNmbE11TUFIbnBDV1hHOGZyeTl3dGFUMitEaFBLMU5kQW1YeFcwQXdZeld0Clg3UXllNEI1R2d6YzhtbUFqM1RZbWF6dUNzRWlRcUlUTGsvN1BDWnpLdHJkWTBld1JDdHBDbWxVeWVaQW16cHgKNGxhMUJoUGQ5bXJ3KzVnRVMyTzBpM0pURElHZGpCdHFPay9WenMxWTRubm12bFNOMWhoWURXMS9ZRVJsNVo5Ywp2WXFxZDJ6VHlrMnFPU0pndjlqSG1Pd0JxZ05vaFdQL2s1ZGZSVXhBYWxJbjBJbXJmWm5LMXVpdnA5TFg0RTVmCjd2V2JuZU10TzZMSzVFK1h0T0dVanJOUGNlV0g2SUpzMzMwZFFtRHkvemFCbU1RSDZ0RXFzZ0dBYm1lenJkTmkKQWtQZnZOblFmUG9DSWVCRUUzVlJUQ2NDQXdFQUFhTmhNRjh3RGdZRFZSMFBBUUgvQkFRREFnS0VNQjBHQTFVZApKUVFXTUJRR0NDc0dBUVVGQndNQkJnZ3JCZ0VGQlFjREFqQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkCkRnUVdCQlJIdkZVSCtaTzVjRGJUekdIeTZkNjJUVUdmTkRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQWtlSGEKeDcwbTBCWHVya2JMRG5lOFloOHhMdjk5TmphVmVmNU9ob1J1WisvS3NyVlVpUE5wYlJaMTMwQ252dFNMK083VQpNYnQ4dExHWXAzay9xL2xhdW01eHF2V1RlYUVCbldGbkY0UGZZcFlnblJpNm02bjZFcVQzQnFBZlN0RENDRnhDCmMxMzduREJZTk42ekx6TGtYeG5YaVF2bmh5WVR3TERUYU01Yk1RQzJDRGs3cE1FdkNkQVJGSHNRZUxadlRFMVoKNFUrYXY3akh1TkFuaTVtcGpMdzhlVlZLMDNjcXFIY05WWWZYRERDYjQwOGlJK2wzcFZDelVwWlE1ci9oQUtOQgpsSStUTHZuU0tsSXNFTlpmSFlFVG9idmQvMmsweGgrNk1DMmFQK3NPOC9zbG93NHkzNmZCUmtlcTQ0eFNMZWVmCm5oWFMyQzlzU1pOZjh6WU0yZz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"
database: database:
password: XnHhfznNWg65NNd password: XnHhfznNWg65NNd
usermanagerPassword: 5M3N2sVEq5c8 usermanagerPassword: 5M3N2sVEq5c8
......
...@@ -3,10 +3,6 @@ kop: ...@@ -3,10 +3,6 @@ kop:
environment: dev environment: dev
goofy: goofy:
image:
tag: ''
helm:
version: ''
env: env:
overrideSpringProfiles: "oc,e2e,dev" overrideSpringProfiles: "oc,e2e,dev"
sso: sso:
...@@ -21,8 +17,6 @@ pluto: ...@@ -21,8 +17,6 @@ pluto:
overrideSpringProfiles: "oc,e2e,dev" overrideSpringProfiles: "oc,e2e,dev"
elasticsearch: elasticsearch:
enabled: true enabled: true
password: vf9W1D8Z3673
ca_cert: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURhVENDQWxHZ0F3SUJBZ0lRYUdRQXNYbXFwVzQ1NnFGL2MzM0FOREFOQmdrcWhraUc5dzBCQVFzRkFEQS8KTVJzd0dRWURWUVFMRXhKdmVtY3RjMlZoY21Ob0xXTnNkWE4wWlhJeElEQWVCZ05WQkFNVEYyOTZaeTF6WldGeQpZMmd0WTJ4MWMzUmxjaTFvZEhSd01CNFhEVEl5TVRJd05ERTROVFV5TkZvWERUSXpNVEl3TkRFNU1EVXlORm93ClB6RWJNQmtHQTFVRUN4TVNiM3BuTFhObFlYSmphQzFqYkhWemRHVnlNU0F3SGdZRFZRUURFeGR2ZW1jdGMyVmgKY21Ob0xXTnNkWE4wWlhJdGFIUjBjRENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQgpBT1VZZEVhU2wzM0FmaHFyTzF3enNmbE11TUFIbnBDV1hHOGZyeTl3dGFUMitEaFBLMU5kQW1YeFcwQXdZeld0Clg3UXllNEI1R2d6YzhtbUFqM1RZbWF6dUNzRWlRcUlUTGsvN1BDWnpLdHJkWTBld1JDdHBDbWxVeWVaQW16cHgKNGxhMUJoUGQ5bXJ3KzVnRVMyTzBpM0pURElHZGpCdHFPay9WenMxWTRubm12bFNOMWhoWURXMS9ZRVJsNVo5Ywp2WXFxZDJ6VHlrMnFPU0pndjlqSG1Pd0JxZ05vaFdQL2s1ZGZSVXhBYWxJbjBJbXJmWm5LMXVpdnA5TFg0RTVmCjd2V2JuZU10TzZMSzVFK1h0T0dVanJOUGNlV0g2SUpzMzMwZFFtRHkvemFCbU1RSDZ0RXFzZ0dBYm1lenJkTmkKQWtQZnZOblFmUG9DSWVCRUUzVlJUQ2NDQXdFQUFhTmhNRjh3RGdZRFZSMFBBUUgvQkFRREFnS0VNQjBHQTFVZApKUVFXTUJRR0NDc0dBUVVGQndNQkJnZ3JCZ0VGQlFjREFqQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkCkRnUVdCQlJIdkZVSCtaTzVjRGJUekdIeTZkNjJUVUdmTkRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQWtlSGEKeDcwbTBCWHVya2JMRG5lOFloOHhMdjk5TmphVmVmNU9ob1J1WisvS3NyVlVpUE5wYlJaMTMwQ252dFNMK083VQpNYnQ4dExHWXAzay9xL2xhdW01eHF2V1RlYUVCbldGbkY0UGZZcFlnblJpNm02bjZFcVQzQnFBZlN0RENDRnhDCmMxMzduREJZTk42ekx6TGtYeG5YaVF2bmh5WVR3TERUYU01Yk1RQzJDRGs3cE1FdkNkQVJGSHNRZUxadlRFMVoKNFUrYXY3akh1TkFuaTVtcGpMdzhlVlZLMDNjcXFIY05WWWZYRERDYjQwOGlJK2wzcFZDelVwWlE1ci9oQUtOQgpsSStUTHZuU0tsSXNFTlpmSFlFVG9idmQvMmsweGgrNk1DMmFQK3NPOC9zbG93NHkzNmZCUmtlcTQ0eFNMZWVmCm5oWFMyQzlzU1pOZjh6WU0yZz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"
database: database:
password: XnHhfznNWg65NNd password: XnHhfznNWg65NNd
usermanagerPassword: 5M3N2sVEq5c8 usermanagerPassword: 5M3N2sVEq5c8
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment