From 49f1ac27a954cf4a7fb69a72f3f49cdb1bf6eef9 Mon Sep 17 00:00:00 2001 From: Harsh Tamakuwala Date: Mon, 20 May 2024 12:46:33 +0530 Subject: [PATCH 1/3] [patch] Added a fvt launcher for sls --- image/cli/masfvt/fvt-sls.yml | 52 ++++++++ image/cli/masfvt/templates/mas-fvt-sls.yml.j2 | 56 ++++++++ tekton/src/pipelines/fvt-launcher.yml.j2 | 35 +++-- .../tasks/fvt-launcher/launchfvt-sls.yml.j2 | 126 ++++++++++++++++++ 4 files changed, 250 insertions(+), 19 deletions(-) create mode 100644 image/cli/masfvt/fvt-sls.yml create mode 100644 image/cli/masfvt/templates/mas-fvt-sls.yml.j2 create mode 100644 tekton/src/tasks/fvt-launcher/launchfvt-sls.yml.j2 diff --git a/image/cli/masfvt/fvt-sls.yml b/image/cli/masfvt/fvt-sls.yml new file mode 100644 index 0000000000..913fa5cfea --- /dev/null +++ b/image/cli/masfvt/fvt-sls.yml @@ -0,0 +1,52 @@ +--- +- hosts: localhost + any_errors_fatal: true + vars: + # Image Pull Policy + image_pull_policy: "{{ lookup('env', 'IMAGE_PULL_POLICY') }}" + # MAS Details + mas_channel: "{{ lookup('env', 'MAS_CHANNEL') }}" + mas_instance_id: "{{ lookup('env', 'MAS_INSTANCE_ID') }}" + mas_workspace_id: "{{ lookup('env', 'MAS_WORKSPACE_ID') }}" + # FVT Configuration + fvt_image_registry: "{{ lookup('env', 'FVT_IMAGE_REGISTRY') }}" + fvt_artifactory_username: "{{ lookup('env', 'FVT_ARTIFACTORY_USERNAME') }}" + fvt_artifactory_token: "{{ lookup('env', 'FVT_ARTIFACTORY_TOKEN') }}" + fvt_digest_sls: "{{ lookup('env', 'FVT_DIGEST_SLS') }}" + #Dependencies - SLS + sls_namespace: "{{ lookup('env', 'SLS_NAMESPACE') }}" + sls_channel: "{{ lookup('env', 'SLS_CHANNEL') }}" + # Pipeline Run Info + devops_build_number: "{{ lookup('env', 'DEVOPS_BUILD_NUMBER') | default('0', True) }}" + pipelinerun_name: "{{ lookup('env', 'PIPELINERUN_NAME') | default('mas-fvt-sls', True) }}-{{ devops_build_number }}" + pipelinerun_namespace: "{{ lookup('env', 'PIPELINERUN_NAMESPACE') | default('mas-' ~ mas_instance_id ~ '-pipelines', True) }}" + tasks: + - name: "Debug" + debug: + msg: + - "pipelinerun_namespace ................... {{ pipelinerun_namespace }}" + - "pipelinerun_name ........................ {{ pipelinerun_name }}" + - "" + - "image_pull_policy ....................... {{ image_pull_policy }}" + - "" + - "sls_namespace ........................... {{ sls_namespace }}" + - "sls_channel ............................. {{ sls_channel }}" + - "" + - "mas_instance_id ......................... {{ mas_instance_id }}" + - "mas_channel ............................. {{ mas_channel }}" + - "mas_workspace_id ........................ {{ mas_workspace_id }}" + - "" + - "devops_build_number ..................... {{ devops_build_number }}" + - "" + - "fvt_image_registry ...................... {{ fvt_image_registry }}" + - "fvt_artifactory_username ................ {{ fvt_artifactory_username }}" + - "fvt_artifactory_token ................... ************" + - "" + - "SLS FVT" + - "" + - "fvt_digest_sls .......................... {{ fvt_digest_sls }}" + + - name: "Start FVT-SLS pipeline" + kubernetes.core.k8s: + apply: true + template: templates/mas-fvt-sls.yml.j2 diff --git a/image/cli/masfvt/templates/mas-fvt-sls.yml.j2 b/image/cli/masfvt/templates/mas-fvt-sls.yml.j2 new file mode 100644 index 0000000000..b2677d7676 --- /dev/null +++ b/image/cli/masfvt/templates/mas-fvt-sls.yml.j2 @@ -0,0 +1,56 @@ +--- +apiVersion: tekton.dev/v1beta1 +kind: PipelineRun +metadata: + name: "{{ pipelinerun_name }}" + namespace: "{{ pipelinerun_namespace }}" + labels: + tekton.dev/pipeline: mas-fvt-sls +spec: + pipelineRef: + name: mas-fvt-sls + + serviceAccountName: pipeline + timeouts: + pipeline: "8h" + + params: + # Pull Policy + - name: image_pull_policy + value: "{{ image_pull_policy }}" + + # MAS Info + - name: mas_channel + value: "{{ mas_channel }}" + - name: mas_instance_id + value: "{{ mas_instance_id }}" + - name: mas_workspace_id + value: "{{ mas_workspace_id }}" + + # Registry + - name: fvt_image_registry + value: "{{ fvt_image_registry }}" + - name: fvt_artifactory_username + value: "{{ fvt_artifactory_username }}" + - name: fvt_artifactory_token + value: "{{ fvt_artifactory_token }}" + + # Digests + - name: fvt_digest_sls + value: "{{ fvt_digest_sls }}" + + # Dependencies - SLS + - name: sls_namespace + value: "{{ sls_namespace }}" + - name: sls_channel + value: "{{ sls_channel }}" + + workspaces: + # The generated configuration files + - name: shared-configs + persistentVolumeClaim: + claimName: config-pvc + # PodTemplates configurations + - name: shared-pod-templates + secret: + secretName: pipeline-pod-templates diff --git a/tekton/src/pipelines/fvt-launcher.yml.j2 b/tekton/src/pipelines/fvt-launcher.yml.j2 index e621ace036..c235fb5dc2 100644 --- a/tekton/src/pipelines/fvt-launcher.yml.j2 +++ b/tekton/src/pipelines/fvt-launcher.yml.j2 @@ -103,23 +103,21 @@ spec: operator: in values: ["true", "True"] -# See: https://jsw.ibm.com/browse/IBMSLS-17 -# - name: launchfvt-sls -# taskRef: -# kind: Task -# name: mas-launchfvt-sls -# params: -# - name: image_pull_policy -# value: $(params.image_pull_policy) -# - name: pipelinerun_name -# value: "$(params.mas_instance_id)-fvt-sls" -# when: -# - input: $(params.launchfvt_core) -# operator: in -# values: ["true", "True"] -# runAfter: -# - waitfor-suite-verify -# + - name: launchfvt-sls + taskRef: + kind: Task + name: mas-launchfvt-sls + params: + - name: image_pull_policy + value: $(params.image_pull_policy) + - name: pipelinerun_name + value: "$(params.mas_instance_id)-fvt-sls" + when: + - input: $(params.launchfvt_core) + operator: in + values: ["true", "True"] + runAfter: + - waitfor-suite-verify - name: launchfvt-core taskRef: @@ -159,8 +157,7 @@ spec: values: ["true", "True"] runAfter: - launchfvt-core - # See: https://jsw.ibm.com/browse/IBMSLS-17 - # - launchfvt-sls + - launchfvt-sls # 2. Application FVT - Assist diff --git a/tekton/src/tasks/fvt-launcher/launchfvt-sls.yml.j2 b/tekton/src/tasks/fvt-launcher/launchfvt-sls.yml.j2 new file mode 100644 index 0000000000..bd8adbc364 --- /dev/null +++ b/tekton/src/tasks/fvt-launcher/launchfvt-sls.yml.j2 @@ -0,0 +1,126 @@ +--- +apiVersion: tekton.dev/v1beta1 +kind: Task +metadata: + name: mas-launchfvt-sls +spec: + params: + # Control the image pull policy for the FVT container image + - name: image_pull_policy + type: string + default: IfNotPresent + + - name: pipelinerun_name + type: string + + steps: + - name: start-pipelinerun + image: quay.io/ibmmas/cli:latest + imagePullPolicy: $(params.image_pull_policy) + command: + - ansible-playbook + - /masfvt/fvt-sls.yml + env: + - name: IMAGE_PULL_POLICY + value: $(params.image_pull_policy) + - name: PIPELINERUN_NAME + value: $(params.pipelinerun_name) + - name: PIPELINERUN_NAMESPACE + value: $(context.taskRun.namespace) + + # Lookups from mas-devops + # ----------------------------------------------------------------------- + - name: DEVOPS_BUILD_NUMBER + valueFrom: + secretKeyRef: + name: mas-devops + key: DEVOPS_BUILD_NUMBER + optional: true + - name: MAS_INSTANCE_ID + valueFrom: + secretKeyRef: + name: mas-devops + key: MAS_INSTANCE_ID + optional: false + + # Lookups from mas-fvt + # ----------------------------------------------------------------------- + - name: FVT_IMAGE_REGISTRY + valueFrom: + secretKeyRef: + name: mas-fvt + key: FVT_IMAGE_REGISTRY + optional: false + - name: FVT_ARTIFACTORY_USERNAME + valueFrom: + secretKeyRef: + name: mas-fvt + key: FVT_ARTIFACTORY_USERNAME + optional: false + - name: FVT_ARTIFACTORY_TOKEN + valueFrom: + secretKeyRef: + name: mas-fvt + key: FVT_ARTIFACTORY_TOKEN + optional: false + + # Lookups from mas-fvt-sls + # ----------------------------------------------------------------------- + # Framework Information + - name: MAS_CHANNEL + valueFrom: + secretKeyRef: + name: mas-fvt-sls + key: MAS_CHANNEL + optional: false + - name: MAS_WORKSPACE_ID + valueFrom: + secretKeyRef: + name: mas-fvt-sls + key: MAS_WORKSPACE_ID + optional: false + # Digests + - name: FVT_DIGEST_SLS + valueFrom: + secretKeyRef: + name: mas-fvt-sls + key: FVT_DIGEST_SLS + optional: false + - name: SLS_NAMESPACE + valueFrom: + secretKeyRef: + name: mas-fvt-sls + key: SLS_NAMESPACE + optional: false + - name: SLS_CHANNEL + valueFrom: + secretKeyRef: + name: mas-fvt-sls + key: SLS_CHANNEL + optional: false + + - name: wait-for-pipelinerun + image: quay.io/ibmmas/cli:latest + imagePullPolicy: $(params.image_pull_policy) + # 15 retries at 5 minute intervals = just over 1 hour + command: + - /opt/app-root/src/wait-for-tekton.sh + env: + - name: TYPE + value: pipelinerun + - name: NAME + value: $(params.pipelinerun_name) + - name: SUFFIX + valueFrom: + secretKeyRef: + name: mas-devops + key: DEVOPS_BUILD_NUMBER + optional: true + - name: NAMESPACE + value: $(context.taskRun.namespace) + - name: DELAY + value: "300" + - name: MAX_RETRIES + value: "15" + - name: IGNORE_FAILURE + value: "True" From 93c9730b0e49f7b252d7b42ea992d244685bec70 Mon Sep 17 00:00:00 2001 From: Harsh Tamakuwala Date: Mon, 20 May 2024 14:14:24 +0530 Subject: [PATCH 2/3] [patch] Corrected indentation --- tekton/src/pipelines/fvt-launcher.yml.j2 | 30 ++++++++++++------------ 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/tekton/src/pipelines/fvt-launcher.yml.j2 b/tekton/src/pipelines/fvt-launcher.yml.j2 index c235fb5dc2..5da37bb77d 100644 --- a/tekton/src/pipelines/fvt-launcher.yml.j2 +++ b/tekton/src/pipelines/fvt-launcher.yml.j2 @@ -103,21 +103,21 @@ spec: operator: in values: ["true", "True"] - - name: launchfvt-sls - taskRef: - kind: Task - name: mas-launchfvt-sls - params: - - name: image_pull_policy - value: $(params.image_pull_policy) - - name: pipelinerun_name - value: "$(params.mas_instance_id)-fvt-sls" - when: - - input: $(params.launchfvt_core) - operator: in - values: ["true", "True"] - runAfter: - - waitfor-suite-verify + - name: launchfvt-sls + taskRef: + kind: Task + name: mas-launchfvt-sls + params: + - name: image_pull_policy + value: $(params.image_pull_policy) + - name: pipelinerun_name + value: "$(params.mas_instance_id)-fvt-sls" + when: + - input: $(params.launchfvt_core) + operator: in + values: ["true", "True"] + runAfter: + - waitfor-suite-verify - name: launchfvt-core taskRef: From 92ea074929d50468d07ff2116f665960a6008f92 Mon Sep 17 00:00:00 2001 From: Harsh Tamakuwala Date: Mon, 20 May 2024 14:17:59 +0530 Subject: [PATCH 3/3] [patch] Updated generate-tekton-tasks --- tekton/generate-tekton-tasks.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/tekton/generate-tekton-tasks.yml b/tekton/generate-tekton-tasks.yml index aa2b55674c..d2d2a58d93 100644 --- a/tekton/generate-tekton-tasks.yml +++ b/tekton/generate-tekton-tasks.yml @@ -73,6 +73,7 @@ with_items: - launchfvt-assist - launchfvt-core + - launchfvt-sls - launchfvt-iot - launchfvt-manage - launchfvt-manage-health