diff --git a/alfa-client/Jenkinsfile.e2e b/alfa-client/Jenkinsfile.e2e index dcd3307a073ec9c88dcf8faea626da07e1de908a..4298965d7544921754e5ae7b1a8988b41b174775 100644 --- a/alfa-client/Jenkinsfile.e2e +++ b/alfa-client/Jenkinsfile.e2e @@ -1,4 +1,5 @@ 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,7 +223,8 @@ pipeline { script { FAILED_STAGE = env.STAGE_NAME - waitForOzgCloudStackRollout([env.EA_BEZEICHNER, env.MAIN_BEZEICHNER]) + waitForAdminRollout(env.ADMIN_BEZEICHNER) + waitForOzgCloudStackRollout([env.EA_BEZEICHNER, env.MAIN_BEZEICHNER]) } } post { @@ -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,15 +568,20 @@ 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); +} - writeYaml file: "gitops/dev/namespace/namespaces/by-${bezeichner}-dev.yaml", data: envValues, overwrite: true +Void writeYamlToGitOps(String bezeichner, Yaml envValues){ + def bezeichnerYaml = "dev/namespace/namespaces/by-${bezeichner}-dev.yaml" - sh "cat gitops/dev/namespace/namespaces/by-${bezeichner}-dev.yaml" + writeYaml file: "gitops/${bezeichnerYaml}", data: envValues, overwrite: true - dir("gitops") { - sh "git add dev/namespace/namespaces/by-${bezeichner}-dev.yaml" - sh "git commit -m 'add e2e by-${bezeichner}-dev'" - } + sh "cat gitops/${bezeichnerYaml}" + + dir("gitops") { + sh "git add ${bezeichnerYaml}" + sh "git commit -m 'add e2e by-${bezeichner}-dev'" + } } Void deleteOzgCloudStack(ozgCloudBezeichner) { @@ -568,19 +618,23 @@ Void waitForDeletion(String bezeichner) { } } -Void waitForOzgCloudStackRollout(ozgCloudBezeichner) { +Void waitForOzgCloudStackRollout(String ozgCloudBezeichner) { for(bezeichner in ozgCloudBezeichner) { - waitForRollout(bezeichner) + waitForAlfaRollout(bezeichner) } } -Void waitForRollout(String bezeichner) { +Void waitForAdminRollout(String bezeichner) { + waitForHealthyApplication(bezeichner, 'application') + waitForHealthyApplication(bezeichner, 'administration') + waitForHealthyApplication(bezeichner, 'admin-client') +} + +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) { diff --git a/alfa-client/apps/admin-e2e/src/fixtures/argocd/by-admin-dev.yaml b/alfa-client/apps/admin-e2e/src/fixtures/argocd/by-admin-dev.yaml new file mode 100644 index 0000000000000000000000000000000000000000..dfaebfc1e4ca8b8968d16bec1380de0695e6ee5b --- /dev/null +++ b/alfa-client/apps/admin-e2e/src/fixtures/argocd/by-admin-dev.yaml @@ -0,0 +1,28 @@ +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 diff --git a/alfa-client/apps/alfa-e2e/src/fixtures/argocd/by-main-dev.yaml b/alfa-client/apps/alfa-e2e/src/fixtures/argocd/by-main-dev.yaml index e6e263cccb461006c4130ed8a1ef46e367cbec23..f1a8ad8c8dce9f24a9cae80eb3a1579b3a79b7f8 100644 --- a/alfa-client/apps/alfa-e2e/src/fixtures/argocd/by-main-dev.yaml +++ b/alfa-client/apps/alfa-e2e/src/fixtures/argocd/by-main-dev.yaml @@ -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"