Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[minor] Manage Regression Pipeline #189

Merged
merged 7 commits into from
Feb 25, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/changes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
## Changes

- [`3.14`](https://github.com/ibm-mas/cli/releases/tag/3.14.0) Add manage regression pipeline
- [`3.13`](https://github.com/ibm-mas/cli/releases/tag/3.13.0) Add tasks for Manage Industry Solutions and add support for Manage JMS configuration
- [`3.12`](https://github.com/ibm-mas/cli/releases/tag/3.12.0) Add support for Feb 2023 catalog
- [`3.11`](https://github.com/ibm-mas/cli/releases/tag/3.11.0) Add upgrade-test pipeline and automation to automatically generate PipelineRun resources
Expand Down
1 change: 1 addition & 0 deletions tekton/generate-tekton-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,6 @@
- uninstall
- fvt-assist
- fvt-core
- fvt-manage-regr
- upgrade
- update
1 change: 1 addition & 0 deletions tekton/generate-tekton-tasks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
- fvt-assist
- fvt-core
- fvt-core-ui
- fvt-manage
- fvt-run-suite

# 4. Generate Tasks (Suite)
Expand Down
203 changes: 203 additions & 0 deletions tekton/src/pipelines/fvt-manage-regr.yml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,203 @@
---
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
name: mas-fvt-manage-regr
spec:
workspaces:
# The generated configuration files
- name: shared-configs
# Any pre-generated configs that will be copied into the shared-configs workspace during suite-install
- name: shared-additional-configs
# The SLS entitlement key file that will be installed during install-sls.
- name: shared-entitlement
# Shared storage to hold mustgather output for tasks
- name: shared-mustgather

params:
# 1. Common Parameters
# -------------------------------------------------------------------------
{{ lookup('template', params_src_dir ~ '/common.yml.j2') | indent(4) }}

# 2. Installation
# -------------------------------------------------------------------------
{{ lookup('template', params_src_dir ~ '/install.yml.j2') | indent(4) }}

# 3. Additional Params for FVT
# -------------------------------------------------------------------------
{{ lookup('template', params_src_dir ~ '/fvt.yml.j2') | indent(4) }}

tasks:
# Content
# -------
# 1. Setup Cluster-wide Dependencies & Configure Cluster Monitoring
# 2. Install Universal Dependencies
# 4. Other Dependecies
# 5. Install & Configure IBM MAS
# 9. Install & Configure Manage


# 1. Setup Cluster-wide Dependencies & Configure Cluster Monitoring
# -------------------------------------------------------------------------
# 1.1 IBM Operator Catalog
{{ lookup('template', 'taskdefs/cluster-setup/ibm-catalogs.yml.j2') | indent(4) }}

# 1.2 IBM Cloud Pak Foundational Services
{{ lookup('template', 'taskdefs/cluster-setup/common-services.yml.j2') | indent(4) }}
runAfter:
- ibm-catalogs

# 1.3 IBM Certificate Manager
{{ lookup('template', 'taskdefs/cluster-setup/cert-manager.yml.j2') | indent(4) }}
runAfter:
- common-services

# 1.4 Red Hat Service Binding Operator
{{ lookup('template', 'taskdefs/cluster-setup/sbo.yml.j2') | indent(4) }}

# 1.5 Configure Cluster Monitoring
{{ lookup('template', 'taskdefs/cluster-setup/cluster-monitoring.yml.j2') | indent(4) }}


# 2. Install Universal Dependencies
# -------------------------------------------------------------------------
# 2.1 MongoDb
{{ lookup('template', 'taskdefs/dependencies/mongo.yml.j2') | indent(4) }}
runAfter:
- cert-manager

# 2.2 AMQStreams (Kafka)
{{ lookup('template', 'taskdefs/dependencies/kafka.yml.j2') | indent(4) }}
runAfter:
- cluster-monitoring

# 2.3 Db2
# 2.3.1 System Db2
{{ lookup('template', 'taskdefs/dependencies/db2.yml.j2', template_vars={'suffix': 'system'}) | indent(4) }}
runAfter:
- cert-manager

# 2.3.2 Dedicated Manage Db2
{{ lookup('template', 'taskdefs/dependencies/db2.yml.j2', template_vars={'suffix': 'manage'}) | indent(4) }}
runAfter:
- db2-system

# 2.4 IBM SLS
{{ lookup('template', 'taskdefs/dependencies/sls.yml.j2') | indent(4) }}
runAfter:
- mongodb

# 2.5 UDS
{{ lookup('template', 'taskdefs/dependencies/uds.yml.j2') | indent(4) }}
runAfter:
- common-services


# 3. Other Dependecies
# -------------------------------------------------------------------------
# 3.1 Install Cloud Object Storage (COS)
{{ lookup('template', 'taskdefs/dependencies/cos.yml.j2') | indent(4) }}

# 3.2 Configure COS in MAS
{{ lookup('template', 'taskdefs/core/suite-config-cos.yml.j2') | indent(4) }}
runAfter:
- suite-verify
- cos

# 4. Install & Configure IBM MAS
# -------------------------------------------------------------------------
# 4.1 Configure Workspace
{{ lookup('template', 'taskdefs/core/gencfg-workspace.yml.j2') | indent(4) }}

# 4.2 DNS Setup
{{ lookup('template', 'taskdefs/core/suite-dns.yml.j2') | indent(4) }}
runAfter:
- cert-manager

# 4.3 Suite Installation
{{ lookup('template', 'taskdefs/core/suite-install.yml.j2') | indent(4) }}
runAfter:
- sbo
- sls
- uds
- gencfg-workspace
- suite-dns

# 4.4 Suite Configuration
{{ lookup('template', 'taskdefs/core/suite-config.yml.j2') | indent(4) }}
runAfter:
- suite-install

# 4.5 Suite Verification
{{ lookup('template', 'taskdefs/core/suite-verify.yml.j2') | indent(4) }}
runAfter:
- suite-config

# 4.6 Configure Db2 in MAS
{{ lookup('template', 'taskdefs/core/suite-config-db2.yml.j2') | indent(4) }}
runAfter:
- suite-verify
- db2-system
- db2-manage

# 4.7 Configure Kafka in MAS
{{ lookup('template', 'taskdefs/core/suite-config-kafka.yml.j2') | indent(4) }}
runAfter:
- suite-verify
- kafka

# 5. Install & Configure Manage
# -------------------------------------------------------------------------
# 5.1. Prepare database for Maxinst
{{ lookup('template', 'taskdefs/apps/db2-setup-system.yml.j2') | indent(4) }}
runAfter:
- suite-config-db2
{{ lookup('template', 'taskdefs/apps/db2-setup-manage.yml.j2') | indent(4) }}
runAfter:
- suite-config-db2

# 5.2 Manage Install
{{ lookup('template', 'taskdefs/apps/manage-app.yml.j2') | indent(4) }}
runAfter:
- suite-db2-setup-system
- suite-db2-setup-manage

# 5.3 Configure Manage workspace
{{ lookup('template', 'taskdefs/apps/manage-workspace.yml.j2') | indent(4) }}
runAfter:
- app-install-manage


# 6. Manage IVT
# -------------------------------------------------------------------------
{{ lookup('template', 'taskdefs/ivt-core/manage.yml.j2') | indent(4) }}

# 7. Manage FVT
# -------------------------------------------------------------------------
{{ lookup('template', 'taskdefs/fvt-apps/manage.yml.j2') | indent(4) }}

# 8. Manage Mobile FVT
# -------------------------------------------------------------------------
{{ lookup('template', 'taskdefs/fvt-apps/mobile.yml.j2') | indent(4) }}

# 9. Manage Regression
# -------------------------------------------------------------------------
{{ lookup('template', 'taskdefs/fvt-apps/manage-regr.yml.j2') | indent(4) }}


# Mustgather executed in finally block. Use suite_mustgather_download
# playbook to retrieve the output on your local machine
# -------------------------------------------------------------------------
finally:
- name: suite-mustgather
params:
- name: base_output_dir
value: "/workspace/mustgather/$(context.pipelineRun.name)"
- name: mas_instance_id
value: $(params.mas_instance_id)
taskRef:
kind: Task
name: mas-devops-suite-mustgather
workspaces:
- name: mustgather
workspace: shared-mustgather
4 changes: 4 additions & 0 deletions tekton/src/pipelines/install-with-fvt.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,11 @@ spec:

# 16. MAS Core IVT
# -------------------------------------------------------------------------
# 16.1 All Apps IVT (except Manage)
{{ lookup('template', 'taskdefs/ivt-core/all-apps.yml.j2') | indent(4) }}

# 16.2 Manage IVT
{{ lookup('template', 'taskdefs/ivt-core/manage.yml.j2') | indent(4) }}


# 17. Application FVT - Assist
Expand Down
58 changes: 58 additions & 0 deletions tekton/src/pipelines/taskdefs/fvt-apps/manage-regr.yml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Manage Regression FVT
- name: fvt-manage-workorder # convention: use fvt-manage-<keyword>, as the value of fvt_test_suite parameter
params:
- name: mas_instance_id
value: $(params.mas_instance_id)
- name: mas_workspace_id
value: $(params.mas_workspace_id)

- name: devops_mongo_uri
value: $(params.devops_mongo_uri)
- name: devops_build_number
value: $(params.devops_build_number)
- name: devops_cos_crn
value: $(params.devops_cos_crn)
- name: ibmcloud_apikey
value: $(params.ibmcloud_apikey)

- name: fvt_image_registry
value: $(params.fvt_image_registry)
- name: fvt_image_namespace
value: fvt-manage
- name: fvt_image_name
value: fvt-ibm-mas-manage
- name: fvt_image_version
value: $(params.fvt_version_manage)
- name: fvt_test_suite
value: workorder
- name: product_channel
value: $(params.mas_app_channel_manage)
- name: product_id
value: ibm-mas-manage
- name: artifactory_apikey
value: $(params.fvt_artifactory_apikey)

- name: test_type
value: $(params.test_type)
- name: test_phase
value: $(params.test_phase)
taskRef:
kind: Task
name: mas-fvt-manage
# Only if we've set a version of the Manage FVT to run
when:
- input: "$(params.fvt_version_manage)"
operator: notin
values: ["skip"]
- input: "$(params.mas_app_channel_manage)"
operator: notin
values: [""]
runAfter:
- fvt-manage-setup # regression tasks depend on fvt-manage-setup or, eventually, any subsequent task in case of Manage Industry Solutions
workspaces:
- name: configs
workspace: shared-configs

# Manage Regression FVT - IndSol 1
# Manage Regression FVT - IndSol 2
# Manage Regression FVT - IndSol 3
Loading