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

WIP: add tekton results upstream e2e to acceptance test #602

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
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
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: "1h30m0s"
workspaces:
Expand All @@ -49,3 +53,11 @@ spec:
resources:
requests:
storage: 50Mi
- name: tekton-results-source
volumeClaimTemplate:
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
31 changes: 31 additions & 0 deletions .tekton/pipeline/acceptance-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,12 @@ spec:
- name: revision
- name: target_branch
- name: ocp_version
- name: results_url
timeouts:
finally: "0h30m0s"
workspaces:
- name: source
- name: tekton-results-source
- name: shared-workspace
tasks:
- name: generate-cluster-name
Expand Down Expand Up @@ -106,6 +108,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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@avinal The pipeline-service-test failure is because of workspace

error: the path "/workspace/source/test/e2e/kustomize/rbac.yaml" does not exist
error: failed to create token: serviceaccounts "all-namespaces-read-access" not found
error: failed to create token: serviceaccounts "single-namespace-read-access" not found

you have not cloned the tekton-results repo into tekton-results-source workspace. So its not able to find the expected files.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me fix that, thanks

- 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/kustomization.yaml)" | tee $(results.tekton-results-downstream-sha.path)
43 changes: 43 additions & 0 deletions .tekton/tasks/tekton-results-upstream-e2e.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
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
export API_SERVER_NAME="tekton-results-api-service.tekton-results.svc.cluster.local"
export API_SERVER_ADDR="https://$(kubectl get route tekton-results -n tekton-results --template='{{.spec.host}}'):443"
echo $API_SERVER_ADDR
export CGO_ENABLED=0
go test -v -count=1 --tags=e2e $(go list --tags=e2e ./test/e2e/... | grep -v /client)
1 change: 1 addition & 0 deletions ci/images/ci-runner/hack/bin/deploy-cluster.sh
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ deploy_cluster() {
exit 1
fi
check_clusteroperators
oc annotate ingresses.config/cluster ingress.operator.openshift.io/default-enable-http2=true
}

deploy_cluster