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

OZG-6450: refactor: New approach for admin e2e test deployment and execution

parent d84f384a
No related branches found
No related tags found
No related merge requests found
import groovy.json.JsonOutput import groovy.json.JsonOutput
import org.yaml.snakeyaml.Yaml
def SKIP_RUN = false def SKIP_RUN = false
...@@ -23,6 +24,7 @@ pipeline { ...@@ -23,6 +24,7 @@ pipeline {
FAILED_PARALLEL_STAGE = " " FAILED_PARALLEL_STAGE = " "
EA_BEZEICHNER = generateBezeichner("e2e-ea") EA_BEZEICHNER = generateBezeichner("e2e-ea")
MAIN_BEZEICHNER = generateBezeichner("e2e-main") MAIN_BEZEICHNER = generateBezeichner("e2e-main")
ADMIN_BEZEICHNER = generateBezeichner("e2e-admin")
SH_SUCCESS_STATUS_CODE = 0 SH_SUCCESS_STATUS_CODE = 0
KEYCLOAK_CLIENT_ADMIN_APP = "admin" KEYCLOAK_CLIENT_ADMIN_APP = "admin"
KEYCLOAK_CLIENT_ALFA_APP = "alfa" KEYCLOAK_CLIENT_ALFA_APP = "alfa"
...@@ -100,6 +102,7 @@ pipeline { ...@@ -100,6 +102,7 @@ pipeline {
script { script {
FAILED_STAGE = env.STAGE_NAME FAILED_STAGE = env.STAGE_NAME
initEnvAdminDefaultVersions()
initEnvAlfaDefaultVersions() initEnvAlfaDefaultVersions()
initEnvVorgangManagerDefaultVersions() initEnvVorgangManagerDefaultVersions()
initEnvUserManagerDefaultVersions() initEnvUserManagerDefaultVersions()
...@@ -124,6 +127,12 @@ pipeline { ...@@ -124,6 +127,12 @@ pipeline {
string(name: "AlfaImageTag", defaultValue: env.ALFA_IMAGE_TAG, trim: true), string(name: "AlfaImageTag", defaultValue: env.ALFA_IMAGE_TAG, trim: true),
string(name: "AlfaHelmChartVersion", defaultValue: env.ALFA_HELM_CHART_VERSION, trim: true), string(name: "AlfaHelmChartVersion", defaultValue: env.ALFA_HELM_CHART_VERSION, trim: true),
string(name: "AlfaHelmRepoUrl", defaultValue: env.ALFA_HELM_REPO_URL, trim: true), string(name: "AlfaHelmRepoUrl", defaultValue: env.ALFA_HELM_REPO_URL, trim: true),
string(name: "AdministrationImageTag", defaultValue: env.ADMINISTRATION_IMAGE_TAG, trim: true),
string(name: "AdministrationHelmChartVersion", defaultValue: env.ADMINISTRATION_HELM_CHART_VERSION, trim: true),
string(name: "AdministrationHelmRepoUrl", defaultValue: env.ADMINISTRATION_HELM_REPO_URL, trim: true),
string(name: "AdminClientImageTag", defaultValue: env.ADMIN_CLIENT_IMAGE_TAG, trim: true),
string(name: "AdminClientHelmChartVersion", defaultValue: env.ADMIN_CLIENT_HELM_CHART_VERSION, trim: true),
string(name: "AdminClientHelmRepoUrl", defaultValue: env.ADMIN_CLIENT_HELM_REPO_URL, trim: true),
string(name: "VorgangManagerImageTag", defaultValue: env.VORGANG_MANAGER_IMAGE_TAG, trim: true), string(name: "VorgangManagerImageTag", defaultValue: env.VORGANG_MANAGER_IMAGE_TAG, trim: true),
string(name: "VorgangManagerHelmChartVersion", defaultValue: env.VORGANG_MANAGER_HELM_CHART_VERSION, trim: true), string(name: "VorgangManagerHelmChartVersion", defaultValue: env.VORGANG_MANAGER_HELM_CHART_VERSION, trim: true),
string(name: "VorgangManagerHelmRepoUrl", defaultValue: env.VORGANG_MANAGER_HELM_REPO_URL, trim: true), string(name: "VorgangManagerHelmRepoUrl", defaultValue: env.VORGANG_MANAGER_HELM_REPO_URL, trim: true),
...@@ -171,6 +180,7 @@ pipeline { ...@@ -171,6 +180,7 @@ pipeline {
generateMainNamespaceYaml() generateMainNamespaceYaml()
generateEaNamespaceYaml() generateEaNamespaceYaml()
generateAdminNamespaceYaml()
pushGitopsRepo() pushGitopsRepo()
} }
...@@ -213,6 +223,7 @@ pipeline { ...@@ -213,6 +223,7 @@ pipeline {
script { script {
FAILED_STAGE = env.STAGE_NAME FAILED_STAGE = env.STAGE_NAME
waitForAdminRollout(env.ADMIN_BEZEICHNER)
waitForOzgCloudStackRollout([env.EA_BEZEICHNER, env.MAIN_BEZEICHNER]) waitForOzgCloudStackRollout([env.EA_BEZEICHNER, env.MAIN_BEZEICHNER])
} }
} }
...@@ -313,7 +324,7 @@ pipeline { ...@@ -313,7 +324,7 @@ pipeline {
steps { steps {
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
script { script {
String bezeichner = env.MAIN_BEZEICHNER String bezeichner = env.ADMIN_BEZEICHNER
Integer mongoDbPort = forwardMongoDbPort(generateNamespace(bezeichner)) Integer mongoDbPort = forwardMongoDbPort(generateNamespace(bezeichner))
...@@ -408,21 +419,6 @@ String getHelmChartVersion(Map applicationValues) { ...@@ -408,21 +419,6 @@ String getHelmChartVersion(Map applicationValues) {
return applicationValues.helm.version return applicationValues.helm.version
} }
Void initEnvAlfaDefaultVersions() {
if (isMasterBranch() || isReleaseBranch()) {
values = getApplicationValues('alfa')
env.ALFA_IMAGE_TAG = getImageTag(values)
env.ALFA_HELM_CHART_VERSION = getHelmChartVersion(values)
}
else {
env.ALFA_IMAGE_TAG = getFeatureBranchImageTag()
env.ALFA_HELM_CHART_VERSION = getFeatureBranchHelmChartVersion()
}
env.ALFA_HELM_REPO_URL = getHelmRepoUrl()
}
Boolean isMasterBranch() { Boolean isMasterBranch() {
return env.BRANCH_NAME == 'master' return env.BRANCH_NAME == 'master'
} }
...@@ -449,6 +445,33 @@ String getRootPomVersion() { ...@@ -449,6 +445,33 @@ String getRootPomVersion() {
return rootPom.version return rootPom.version
} }
Void initEnvAdminDefaultVersions() {
def values = getApplicationValues('administration')
env.ADMINISTRATION_IMAGE_TAG = getImageTag(values)
env.ADMINISTRATION_HELM_CHART_VERSION = getHelmChartVersion(values)
env.ADMINISTRATION_HELM_REPO_URL = getHelmRepoUrl()
values = getApplicationValues('admin-client')
env.ADMIN_CLIENT_IMAGE_TAG = getImageTag(values)
env.ADMIN_CLIENT_HELM_CHART_VERSION = getHelmChartVersion(values)
env.ADMIN_CLIENT_HELM_REPO_URL = getHelmRepoUrl()
}
Void initEnvAlfaDefaultVersions() {
if (isMasterBranch() || isReleaseBranch()) {
values = getApplicationValues('alfa')
env.ALFA_IMAGE_TAG = getImageTag(values)
env.ALFA_HELM_CHART_VERSION = getHelmChartVersion(values)
}
else {
env.ALFA_IMAGE_TAG = getFeatureBranchImageTag()
env.ALFA_HELM_CHART_VERSION = getFeatureBranchHelmChartVersion()
}
env.ALFA_HELM_REPO_URL = getHelmRepoUrl()
}
Void initEnvVorgangManagerDefaultVersions() { Void initEnvVorgangManagerDefaultVersions() {
def values = getApplicationValues('vorgang-manager') def values = getApplicationValues('vorgang-manager')
...@@ -469,6 +492,12 @@ Void initEnvUserVersions(userVersions) { ...@@ -469,6 +492,12 @@ Void initEnvUserVersions(userVersions) {
env.ALFA_IMAGE_TAG = userVersions.AlfaImageTag env.ALFA_IMAGE_TAG = userVersions.AlfaImageTag
env.ALFA_HELM_CHART_VERSION = userVersions.AlfaHelmChartVersion env.ALFA_HELM_CHART_VERSION = userVersions.AlfaHelmChartVersion
env.ALFA_HELM_REPO_URL = userVersions.AlfaHelmRepoUrl env.ALFA_HELM_REPO_URL = userVersions.AlfaHelmRepoUrl
env.ADMINISTRATION_IMAGE_TAG = userVersions.AdministrationImageTag
env.ADMINISTRATION_HELM_CHART_VERSION = userVersions.AdministrationHelmChartVersion
env.ADMINISTRATION_HELM_REPO_URL = userVersions.AdministrationHelmRepoUrl
env.ADMIN_CLIENT_IMAGE_TAG = userVersions.AdminClientImageTag
env.ADMIN_CLIENT_HELM_CHART_VERSION = userVersions.AdminClientHelmChartVersion
env.ADMIN_CLIENT_HELM_REPO_URL = userVersions.AdminClientHelmRepoUrl
env.VORGANG_MANAGER_IMAGE_TAG = userVersions.VorgangManagerImageTag env.VORGANG_MANAGER_IMAGE_TAG = userVersions.VorgangManagerImageTag
env.VORGANG_MANAGER_HELM_CHART_VERSION = userVersions.VorgangManagerHelmChartVersion env.VORGANG_MANAGER_HELM_CHART_VERSION = userVersions.VorgangManagerHelmChartVersion
env.VORGANG_MANAGER_HELM_REPO_URL = userVersions.VorgangManagerHelmRepoUrl env.VORGANG_MANAGER_HELM_REPO_URL = userVersions.VorgangManagerHelmRepoUrl
...@@ -500,12 +529,28 @@ Void checkoutGitopsE2eBranch() { ...@@ -500,12 +529,28 @@ Void checkoutGitopsE2eBranch() {
} }
} }
Void generateAdminNamespaceYaml() {
def bezeichner = env.ADMIN_BEZEICHNER
def envValues
dir('alfa-client/apps/admin-e2e/') {
envValues = readYaml file: "src/fixtures/argocd/by-admin-dev.yaml";
envValues.ozgcloud.bezeichner = bezeichner
envValues.administration.put("image", ['tag': env.ADMINISTRATION_IMAGE_TAG])
envValues.administration.put("helm", ['version': env.ADMINISTRATION_HELM_CHART_VERSION, 'repoUrl': env.ADMINISTRATION_HELM_REPO_URL])
envValues.admin_client.put("image", ['tag': env.ADMIN_CLIENT_IMAGE_TAG])
envValues.admin_client.put("helm", ['version': env.ADMIN_CLIENT_HELM_CHART_VERSION, 'repoUrl': env.ADMIN_CLIENT_HELM_REPO_URL])
}
writeYamlToGitOps(bezeichner, envValues);
}
Void generateEaNamespaceYaml() { Void generateEaNamespaceYaml() {
generateNamespaceYaml(env.EA_BEZEICHNER, "by-ea-dev.yaml"); generateNamespaceYaml(env.EA_BEZEICHNER, "by-ea-dev.yaml");
} }
Void generateMainNamespaceYaml() { Void generateMainNamespaceYaml() {
generateNamespaceYaml(env.MAIN_BEZEICHNER, "by-main-dev.yaml"); generateNamespaceYaml(env.MAIN_BEZEICHNER, "by-admin-dev.yaml");
} }
Void generateNamespaceYaml(String bezeichner, String valuesPathSuffix) { Void generateNamespaceYaml(String bezeichner, String valuesPathSuffix) {
...@@ -523,13 +568,18 @@ Void generateNamespaceYaml(String bezeichner, String valuesPathSuffix) { ...@@ -523,13 +568,18 @@ Void generateNamespaceYaml(String bezeichner, String valuesPathSuffix) {
envValues.user_manager.put("image", ['tag': env.USER_MANAGER_IMAGE_TAG]) envValues.user_manager.put("image", ['tag': env.USER_MANAGER_IMAGE_TAG])
envValues.user_manager.put("helm", ['version': env.USER_MANAGER_HELM_CHART_VERSION, 'repoUrl': env.USER_MANAGER_HELM_REPO_URL]) envValues.user_manager.put("helm", ['version': env.USER_MANAGER_HELM_CHART_VERSION, 'repoUrl': env.USER_MANAGER_HELM_REPO_URL])
} }
writeYamlToGitOps(bezeichner, envValues);
}
Void writeYamlToGitOps(String bezeichner, Yaml envValues){
def bezeichnerYaml = "dev/namespace/namespaces/by-${bezeichner}-dev.yaml"
writeYaml file: "gitops/dev/namespace/namespaces/by-${bezeichner}-dev.yaml", data: envValues, overwrite: true writeYaml file: "gitops/${bezeichnerYaml}", data: envValues, overwrite: true
sh "cat gitops/dev/namespace/namespaces/by-${bezeichner}-dev.yaml" sh "cat gitops/${bezeichnerYaml}"
dir("gitops") { dir("gitops") {
sh "git add dev/namespace/namespaces/by-${bezeichner}-dev.yaml" sh "git add ${bezeichnerYaml}"
sh "git commit -m 'add e2e by-${bezeichner}-dev'" sh "git commit -m 'add e2e by-${bezeichner}-dev'"
} }
} }
...@@ -568,19 +618,23 @@ Void waitForDeletion(String bezeichner) { ...@@ -568,19 +618,23 @@ Void waitForDeletion(String bezeichner) {
} }
} }
Void waitForOzgCloudStackRollout(ozgCloudBezeichner) { Void waitForOzgCloudStackRollout(String ozgCloudBezeichner) {
for(bezeichner in ozgCloudBezeichner) { for(bezeichner in ozgCloudBezeichner) {
waitForRollout(bezeichner) waitForAlfaRollout(bezeichner)
}
} }
Void waitForAdminRollout(String bezeichner) {
waitForHealthyApplication(bezeichner, 'application')
waitForHealthyApplication(bezeichner, 'administration')
waitForHealthyApplication(bezeichner, 'admin-client')
} }
Void waitForRollout(String bezeichner) { Void waitForAlfaRollout(String bezeichner) {
waitForHealthyApplication(bezeichner, 'application') waitForHealthyApplication(bezeichner, 'application')
waitForHealthyApplication(bezeichner, 'vorgang-manager') waitForHealthyApplication(bezeichner, 'vorgang-manager')
waitForHealthyApplication(bezeichner, 'user-manager') waitForHealthyApplication(bezeichner, 'user-manager')
waitForHealthyApplication(bezeichner, 'alfa') waitForHealthyApplication(bezeichner, 'alfa')
waitForHealthyApplication(bezeichner, 'administration')
waitForHealthyApplication(bezeichner, 'admin-client')
} }
Void waitForHealthyApplication(String bezeichner, String application) { Void waitForHealthyApplication(String bezeichner, String application) {
......
ozgcloud:
bezeichner: admine2emain
environment: dev
e2eTest: true
project:
destinations:
- namespace: "*"
server: https://kubernetes.default.svc
administration:
enabled: true
admin_client:
enabled: true
ingress:
use_staging_cert: true
alfa:
enabled: false
vorgang_manager:
enabled: false
user_manager:
enabled: false
smocker:
enabled: false
\ No newline at end of file
...@@ -7,14 +7,6 @@ project: ...@@ -7,14 +7,6 @@ project:
- namespace: "*" - namespace: "*"
server: https://kubernetes.default.svc server: https://kubernetes.default.svc
administration:
enabled: true
admin_client:
enabled: true
ingress:
use_staging_cert: true
alfa: alfa:
env: env:
overrideSpringProfiles: "oc,e2e,dev" overrideSpringProfiles: "oc,e2e,dev"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment