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

ozg-2502 trigger rollout

parent 03c80a94
No related branches found
No related tags found
No related merge requests found
......@@ -155,42 +155,15 @@ pipeline {
steps {
script {
FAILED_STAGE = env.STAGE_NAME
}
container("k8s"){
script {
sh """
error=0
for NAMESPACE in \$(kubectl get namespaces -l ozg-environment=dev -o custom-columns=NAME:.metadata.name --no-headers); \
do \
if kubectl get deployment -n \$NAMESPACE | grep afm; then \
kubectl rollout restart deployment/afm -n \$NAMESPACE; \
if ! kubectl rollout status deployment/afm -n \$NAMESPACE; then \
error=1; \
fi; \
fi; \
if kubectl get deployment -n \$NAMESPACE | grep fs; then \
kubectl rollout restart deployment/fs -n \$NAMESPACE; \
if ! kubectl rollout status deployment/fs -n \$NAMESPACE; then \
error=1; \
fi; \
fi; \
if kubectl get deployment -n \$NAMESPACE | grep if; then \
kubectl rollout restart deployment/if -n \$NAMESPACE; \
if ! kubectl rollout status deployment/if -n \$NAMESPACE; then \
error=1; \
fi; \
fi; \
done
exit \$error
"""
}
rolloutDev()
}
}
}
stage('Trigger Test | Stage rollout') {
when {
branch 'release'
// todo rename to release
branch 'ozg-2502'
}
steps {
......@@ -201,18 +174,17 @@ pipeline {
def version = pom.version
withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) {
sh 'git clone https://${USER}:${TOKEN}@git.ozg-sh.de/mgm/rollout.git'
dir('rollout') {
sh "sed -i 's/IF_ADAPTER_APP_VERSION\\=.*/IF_ADAPTER_APP_VERSION=${version}/' versions/test/versions.sh"
sh "sed -i 's/IF_ADAPTER_APP_VERSION\\=.*/IF_ADAPTER_APP_VERSION=${version}/' versions/stage/versions.sh"
sh 'git clone https://${USER}:${TOKEN}@git.ozg-sh.de/mgm/provisioning.git'
sh 'git add versions/.'
sh 'git config user.email "jenkins@ozg.de"'
sh 'git config user.name "jenkins"'
sh "git commit -m 'jenkins rollout if-adapter ${version}'"
sh 'git push https://${USER}:${TOKEN}@git.ozg-sh.de/mgm/rollout.git'
// todo remove
dir('provisioning') {
sh 'git checkout ozg-2502'
}
setNewProvisioningVersion('test', version)
setNewProvisioningVersion('stage', version)
pushNewProvisioningVersion(USER, TOKEN, version)
}
}
}
......@@ -251,3 +223,55 @@ String getElementAccessToken() {
return readJSON ( text: sh (script: '''curl -XPOST -d \"$LOGIN_JSON\" https://matrix.ozg-sh.de/_matrix/client/v3/login''', returnStdout: true)).access_token
}
}
Void restartDeployment(namespace, deployment) {
sh "kubectl rollout restart deployment/${deployment} -n ${namespace}"
sh "kubectl rollout status deployment/${deployment} -n ${namespace}"
}
String getDeployments(namespace) {
return sh (script: "kubectl get deployment -n \$NAMESPACE", returnStdout: true)
}
Void rolloutDev() {
def namespaces = sh(script: '''kubectl get namespaces -l 'ozg-environment=dev,update-namespace notin (false)' -o custom-columns=NAME:.metadata.name --no-headers''', returnStdout: true)
printl "namespaces: ${namespaces}"
namespaces.each { namespace ->
deployments = getDeployments(namespace)
if (deployments.contains("fs-adapter")) {
restartDeployment(namespace, "fs-adapter")
}
if (deployments.contains("afm-adapter")) {
restartDeployment(namespace, "afm-adapter")
}
if (deployments.contains("if-adapter")) {
restartDeployment(namespace, "if-adapter")
}
}
}
Void setNewProvisioningVersion(String environment, String version) {
dir("provisioning") {
def envFile = "playbook/inventory/versions/${environment}.yml"
def envVersions = readYaml file: envFile
envVersions.versions.afm_adapter.image.tag = version
envVersions.versions.fs_adapter.image.tag = version
writeYaml file: envFile, data: envVersions, overwrite: true
}
}
Void pushNewProvisioningVersion(String user, String token, String version) {
dir('provisioning') {
sh 'git add playbook/inventory/versions/.'
sh 'git config user.email "jenkins@ozg.de"'
sh 'git config user.name "jenkins"'
sh "git commit -m 'jenkins rollout afm-adapter fs-adapter test stage version ${version}'"
sh 'git push https://${USER}:${TOKEN}@git.ozg-sh.de/mgm/provisioning.git'
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment