Skip to content

Commit

Permalink
add tekton results upstream e2e to acceptance test
Browse files Browse the repository at this point in the history
- Run tekton results upstream e2e test on sha update in pipeline service
- Refer  PLNSRVCE-1182

Signed-off-by: Avinal Kumar <[email protected]>
  • Loading branch information
avinal committed Jun 14, 2023
1 parent 12862f6 commit cf256e0
Show file tree
Hide file tree
Showing 4 changed files with 120 additions and 1 deletion.
14 changes: 13 additions & 1 deletion .tekton/pipeline-service-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -30,6 +32,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:
Expand All @@ -49,3 +53,11 @@ spec:
resources:
requests:
storage: 50Mi
- name: tekton-results-source
volumeClaimTemplate:
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
32 changes: 32 additions & 0 deletions .tekton/pipeline/acceptance-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@ spec:
- name: revision
- name: target_branch
- name: ocp_version
- name: results_url
timeouts:
finally: "0h20m0s"
workspaces:
- name: source
- name: tekton-results-source
- name: kubeconfig-dir
- name: shared-workspace
tasks:
- name: generate-cluster-name
Expand Down Expand Up @@ -106,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:
Expand Down
20 changes: 20 additions & 0 deletions .tekton/tasks/tekton-results-fetch-sha.yaml
Original file line number Diff line number Diff line change
@@ -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)
55 changes: 55 additions & 0 deletions .tekton/tasks/tekton-results-upstream-e2e.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
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 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 ./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
RESULT_ROUTE=$(kubectl get route tekton-results -n tekton-results --template='{{.spec.host}}')
cat <<EOF > patch-test-config.patch
diff --git a/test/e2e/grpc_client.go b/test/e2e/grpc_client.go
--- a/test/e2e/grpc_client.go
+++ b/test/e2e/grpc_client.go
@@ -36,4 +36,4 @@ const (
certFile = "tekton-results-cert.pem"
- apiServerName = "tekton-results-api-service.tekton-pipelines.svc.cluster.local"
- apiServerAddress = "localhost:50051"
+ apiServerName = "tekton-results-api-service.tekton-results.svc.cluster.local"
+ apiServerAddress = "$RESULT_ROUTE"
defCertFolder = "/tmp/tekton-results/ssl"
EOF
git apply patch-test-config.patch
export CGO_ENABLED=0
go test -v -count=1 --tags=e2e ./test/e2e/...

0 comments on commit cf256e0

Please sign in to comment.