Skip to content

Instantly share code, notes, and snippets.

@x95castle1
Created January 8, 2024 15:17
Show Gist options
  • Save x95castle1/7b1c6061552acf23536490d1837270c5 to your computer and use it in GitHub Desktop.
Save x95castle1/7b1c6061552acf23536490d1837270c5 to your computer and use it in GitHub Desktop.
Add Step to Cluster Delivery to Run Tests
#@ load("@ytt:data", "data")
---
apiVersion: carto.run/v1alpha1
kind: ClusterTemplate
metadata:
name: e2e-testing-cluster-template
spec:
params:
- name: serviceAccount
default: default
healthRule:
singleConditionType: Ready
lifecycle: tekton
#@yaml/text-templated-strings
ytt: |
#@ load("@ytt:data", "data")
#@ load("@ytt:json", "json")
#@ def merge_labels(fixed_values):
#@ labels = {}
#@ if hasattr(data.values.workload.metadata, "labels"):
#@ exclusions = ""
#@ for k,v in dict(data.values.workload.metadata.labels).items():
#@ if k not in exclusions:
#@ labels[k] = v
#@ end
#@ end
#@ end
#@ labels.update(fixed_values)
#@ return labels
#@ end
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
generateName: #@ data.values.workload.metadata.name + "e2e-testing"
labels: #@ merge_labels({ "app.kubernetes.io/component": "e2e-testing" })
spec:
serviceAccountName: #@ data.values.params.serviceAccount
taskRef:
resolver: cluster
params:
- name: kind
value: task
- name: namespace
value: dev
- name: name
value: tekton-e2e-testing-taskrun
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: tekton-e2e-testing-taskrun
namespace: dev
annotations:
tekton.dev/pipelines.minVersion: "0.12.1"
tekton.dev/categories: Security
tekton.dev/tags: security
tekton.dev/displayName: "e2e testing"
tekton.dev/platforms: "linux/amd64"
spec:
steps:
- name: e2e-testing
image: registry.harbor.learn.tapsme.org/library/alpine-curl-jq@sha256:770e91cabcaa0cb66fa0f3627b1593b3b9f8f416fba893f473040e0071219272
script: |
#!/usr/bin/env bash
result="$(curl -I -s https://www.google.com | head -n 1|cut -d$' ' -f2)"
echo $result
if [[ ${result} == "200" ]]; then
echo "e2e-testing::PASSED"
else
echo "e2e-testing::FAILED"
exit 1
fi
apiVersion: v1
kind: Secret
metadata:
name: ootb-cluster-delivery-overlay
namespace: tap-install
type: Opaque
stringData:
ootb-cluster-delivery-overlay.yaml: |
#@ load("@ytt:overlay", "overlay")
#@ load("@ytt:template", "template")
#@ def replace_value_to_default(left, right):
#@ if "default" in left:
#@ return left
#@ end
#@ param = dict(left)
#@ param.update({"default": param.pop("value")})
#@ return param
#@ end
#@overlay/match by=overlay.subset({"apiVersion": "carto.run/v1alpha1", "kind": "ClusterDelivery","metadata":{"name":"delivery-basic"}}), expects="0+"
---
spec:
resources:
#@overlay/match by="name", expects="0+"
#@overlay/append
- name: e2e-test
templateRef:
kind: ClusterTemplate
name: e2e-testing-cluster-template
sources:
- resource: deployer
name: source
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment