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
Branches
Tags
No related merge requests found
import groovy.json.JsonOutput
import org.yaml.snakeyaml.Yaml
def SKIP_RUN = false
......@@ -23,6 +24,7 @@ pipeline {
FAILED_PARALLEL_STAGE = " "
EA_BEZEICHNER = generateBezeichner("e2e-ea")
MAIN_BEZEICHNER = generateBezeichner("e2e-main")
ADMIN_BEZEICHNER = generateBezeichner("e2e-admin")
SH_SUCCESS_STATUS_CODE = 0
KEYCLOAK_CLIENT_ADMIN_APP = "admin"
KEYCLOAK_CLIENT_ALFA_APP = "alfa"
......@@ -100,6 +102,7 @@ pipeline {
script {
FAILED_STAGE = env.STAGE_NAME
initEnvAdminDefaultVersions()
initEnvAlfaDefaultVersions()
initEnvVorgangManagerDefaultVersions()
initEnvUserManagerDefaultVersions()
......@@ -124,6 +127,12 @@ pipeline {
string(name: "AlfaImageTag", defaultValue: env.ALFA_IMAGE_TAG, 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: "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: "VorgangManagerHelmChartVersion", defaultValue: env.VORGANG_MANAGER_HELM_CHART_VERSION, trim: true),
string(name: "VorgangManagerHelmRepoUrl", defaultValue: env.VORGANG_MANAGER_HELM_REPO_URL, trim: true),
......@@ -171,6 +180,7 @@ pipeline {
generateMainNamespaceYaml()
generateEaNamespaceYaml()
generateAdminNamespaceYaml()
pushGitopsRepo()
}
......@@ -213,6 +223,7 @@ pipeline {
script {
FAILED_STAGE = env.STAGE_NAME
waitForAdminRollout(env.ADMIN_BEZEICHNER)
waitForOzgCloudStackRollout([env.EA_BEZEICHNER, env.MAIN_BEZEICHNER])
}
}
......@@ -313,7 +324,7 @@ pipeline {
steps {
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
script {
String bezeichner = env.MAIN_BEZEICHNER
String bezeichner = env.ADMIN_BEZEICHNER
Integer mongoDbPort = forwardMongoDbPort(generateNamespace(bezeichner))
......@@ -408,21 +419,6 @@ String getHelmChartVersion(Map applicationValues) {
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() {
return env.BRANCH_NAME == 'master'
}
......@@ -449,6 +445,33 @@ String getRootPomVersion() {
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() {
def values = getApplicationValues('vorgang-manager')
......@@ -469,6 +492,12 @@ Void initEnvUserVersions(userVersions) {
env.ALFA_IMAGE_TAG = userVersions.AlfaImageTag
env.ALFA_HELM_CHART_VERSION = userVersions.AlfaHelmChartVersion
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_HELM_CHART_VERSION = userVersions.VorgangManagerHelmChartVersion
env.VORGANG_MANAGER_HELM_REPO_URL = userVersions.VorgangManagerHelmRepoUrl
......@@ -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() {
generateNamespaceYaml(env.EA_BEZEICHNER, "by-ea-dev.yaml");
}
Void generateMainNamespaceYaml() {
generateNamespaceYaml(env.MAIN_BEZEICHNER, "by-main-dev.yaml");
generateNamespaceYaml(env.MAIN_BEZEICHNER, "by-admin-dev.yaml");
}
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("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") {
sh "git add dev/namespace/namespaces/by-${bezeichner}-dev.yaml"
sh "git add ${bezeichnerYaml}"
sh "git commit -m 'add e2e by-${bezeichner}-dev'"
}
}
......@@ -568,19 +618,23 @@ Void waitForDeletion(String bezeichner) {
}
}
Void waitForOzgCloudStackRollout(ozgCloudBezeichner) {
Void waitForOzgCloudStackRollout(String 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, 'vorgang-manager')
waitForHealthyApplication(bezeichner, 'user-manager')
waitForHealthyApplication(bezeichner, 'alfa')
waitForHealthyApplication(bezeichner, 'administration')
waitForHealthyApplication(bezeichner, 'admin-client')
}
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:
- namespace: "*"
server: https://kubernetes.default.svc
administration:
enabled: true
admin_client:
enabled: true
ingress:
use_staging_cert: true
alfa:
env:
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