From 5237336c8779a54cdae458d743c7e8f621efc384 Mon Sep 17 00:00:00 2001 From: Avinal Kumar Date: Wed, 19 Apr 2023 12:07:35 +0530 Subject: [PATCH] add tekton results upstream e2e to acceptance test - Run tekton results upstream e2e test on sha update in pipeline service - Refer PLNSRVCE-1182 Signed-off-by: Avinal Kumar --- .tekton/pipeline-service-test.yaml | 14 ++++++- .tekton/pipeline/acceptance-tests.yaml | 31 ++++++++++++++ .tekton/tasks/tekton-results-fetch-sha.yaml | 20 +++++++++ .../tasks/tekton-results-upstream-e2e.yaml | 41 +++++++++++++++++++ 4 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 .tekton/tasks/tekton-results-fetch-sha.yaml create mode 100644 .tekton/tasks/tekton-results-upstream-e2e.yaml diff --git a/.tekton/pipeline-service-test.yaml b/.tekton/pipeline-service-test.yaml index b2246d499..fc03bd735 100644 --- a/.tekton/pipeline-service-test.yaml +++ b/.tekton/pipeline-service-test.yaml @@ -14,7 +14,9 @@ metadata: pipelinesascode.tekton.dev/task-4: "[.tekton/tasks/generate-cluster-name.yaml]" pipelinesascode.tekton.dev/task-5: "[.tekton/tasks/pipeline-service-setup.yaml]" pipelinesascode.tekton.dev/task-6: "[.tekton/tasks/pipeline-service-tests.yaml]" - pipelinesascode.tekton.dev/task-7: "[git-clone]" + pipelinesascode.tekton.dev/task-7: "[.tekton/tasks/tekton-results-fetch-sha.yaml]" + pipelinesascode.tekton.dev/task-8: "[.tekton/tasks/tekton-results-upstream-e2e.yaml]" + pipelinesascode.tekton.dev/task-9: "[git-clone]" pipelinesascode.tekton.dev/max-keep-runs: "5" spec: pipelineRef: @@ -26,6 +28,8 @@ spec: value: "{{ revision }}" - name: target_branch value: "{{ target_branch }}" + - name: results_url + value: "https://github.com/openshift-pipelines/tektoncd-results" timeouts: pipeline: "1h0m0s" workspaces: @@ -48,3 +52,11 @@ spec: resources: requests: storage: 50Mi + - name: tekton-results-source + volumeClaimTemplate: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 3Gi diff --git a/.tekton/pipeline/acceptance-tests.yaml b/.tekton/pipeline/acceptance-tests.yaml index 70d508c59..18cc832f6 100644 --- a/.tekton/pipeline/acceptance-tests.yaml +++ b/.tekton/pipeline/acceptance-tests.yaml @@ -8,10 +8,12 @@ spec: - name: repo_url - name: revision - name: target_branch + - name: results_url timeouts: finally: "0h20m0s" workspaces: - name: source + - name: tekton-results-source - name: kubeconfig-dir - name: shared-workspace tasks: @@ -107,6 +109,35 @@ spec: workspace: shared-workspace - name: source workspace: source + - name: tekton-results-fetch-sha + taskRef: + name: tekton-results-fetch-sha + runAfter: + - "clone-pipeline-service-git" + params: + - name: target_branch + value: $(params.target_branch) + workspaces: + - name: source + workspace: source + - name: tekton-results-upstream-e2e + taskRef: + name: tekton-results-upstream-e2e + runAfter: + - "tekton-results-fetch-sha" + - "plnsvc-setup" + params: + - name: target_branch + value: $(params.target_branch) + - name: repo_url + value: "$(params.results_url)" + - name: revision + value: "$(tasks.tekton-results-fetch-sha.results.tekton-results-downstream-sha)" + workspaces: + - name: source + workspace: tekton-results-source + - name: kubeconfig-dir + workspace: shared-workspace finally: - name: destroy-cluster taskRef: diff --git a/.tekton/tasks/tekton-results-fetch-sha.yaml b/.tekton/tasks/tekton-results-fetch-sha.yaml new file mode 100644 index 000000000..c3875af3e --- /dev/null +++ b/.tekton/tasks/tekton-results-fetch-sha.yaml @@ -0,0 +1,20 @@ +--- +apiVersion: tekton.dev/v1beta1 +kind: Task +metadata: + name: tekton-results-fetch-sha +spec: + workspaces: + - name: source + params: + - name: target_branch + results: + - name: tekton-results-downstream-sha + description: Tekton Results updated SHA in Pipeline Service + steps: + - name: fetch-results-sha + workingDir: $(workspaces.source.path) + image: quay.io/openshift-pipeline/ci:latest + script: | + #! /usr/bin/env bash + echo -n "$(yq '.images[0].newTag' $(workspaces.source.path)/operator/gitops/argocd/pipeline-service/tekton-results/base/kustomization.yaml)" | tee $(results.tekton-results-downstream-sha.path) diff --git a/.tekton/tasks/tekton-results-upstream-e2e.yaml b/.tekton/tasks/tekton-results-upstream-e2e.yaml new file mode 100644 index 000000000..eb81a54a9 --- /dev/null +++ b/.tekton/tasks/tekton-results-upstream-e2e.yaml @@ -0,0 +1,41 @@ +--- +apiVersion: tekton.dev/v1beta1 +kind: Task +metadata: + name: tekton-results-upstream-e2e +spec: + params: + - name: target_branch + - name: repo_url + - name: revision + workspaces: + - name: source + - name: kubeconfig-dir + steps: + - name: execute-tekton-results-upstream-e2e + image: quay.io/redhat-pipeline-service/ci-runner:$(params.target_branch) + workingDir: $(workspaces.source.path) + env: + - name: KUBECONFIG + value: "$(workspaces.kubeconfig-dir.path)/kubeconfig" + script: | + #! /usr/bin/env bash + cd $(workspaces.source.path) + git clone --no-checkout $(params.repo_url) + cd tektoncd-results + git config remote.origin.fetch '+refs/heads/downstream*:refs/remotes/origin/downstream*' + git fetch origin $(params.revision) + git checkout $(params.revision) + export SA_TOKEN_PATH=${SA_TOKEN_PATH:-"/tmp/tekton-results/tokens"} + export SSL_CERT_PATH=${SSL_CERT_PATH:="/tmp/tekton-results/ssl"} + mkdir -p ${SA_TOKEN_PATH} ${SSL_CERT_PATH} + kubectl get ns + kubectl get secrets tekton-results-tls -n tekton-results --template='{{index .data "tls.crt"}}' | base64 -d > ${SSL_CERT_PATH}/tekton-results-cert.pem + kubectl get secrets tekton-results-tls -n tekton-results --template='{{index .data "tls.key"}}' | base64 -d > ${SSL_CERT_PATH}/tekton-results-key.pem + kubectl apply -f $(workspaces.source.path)/test/e2e/kustomize/rbac.yaml + service_accounts=(all-namespaces-read-access single-namespace-read-access) + for service_account in "${service_accounts[@]}"; do + kubectl create token "$service_account" > "${SA_TOKEN_PATH}"/"$service_account" + done + export CGO_ENABLED=0 + go test -v -count=1 --tags=e2e $(workspaces.source.path)/test/e2e/...