Tekton
The Klarent Tekton Task runs Klarent tests inside a Docker container on a Kubernetes cluster using Tekton Pipelines.
Prerequisites
Section titled “Prerequisites”1. Tekton Pipelines installed on your cluster
Follow the Tekton installation guide if not already set up.
2. Store your service account key as a Kubernetes Secret
kubectl create secret generic cj-credentials --from-literal=service-account-key=<your-service-account-key>Your service account key is available on the Klarent Settings page.
Run a single test
Section titled “Run a single test”Task definition (cj-task.yaml):
apiVersion: tekton.dev/v1kind: Taskmetadata: name: critical-journeyspec: params: - name: test-id type: string steps: - name: run-cj-test image: foreai/cj-action:latest env: - name: INPUT_SERVICE_ACCOUNT_KEY valueFrom: secretKeyRef: name: cj-credentials key: service-account-key - name: INPUT_TEST_ID value: $(params.test-id)TaskRun (cj-taskrun.yaml):
apiVersion: tekton.dev/v1kind: TaskRunmetadata: name: critical-journey-runspec: taskRef: name: critical-journey params: - name: test-id value: 'my-test-id'Apply and run:
kubectl apply -f cj-task.yamlkubectl apply -f cj-taskrun.yamlRun a test suite
Section titled “Run a test suite”Task definition (cj-task.yaml):
apiVersion: tekton.dev/v1kind: Taskmetadata: name: critical-journeyspec: params: - name: test-suite-id type: string - name: wait-timeout-seconds type: string default: '300' - name: website-url-override type: string default: '' - name: params-override type: string default: '' steps: - name: run-cj-tests image: foreai/cj-action:latest env: - name: INPUT_SERVICE_ACCOUNT_KEY valueFrom: secretKeyRef: name: cj-credentials key: service-account-key - name: INPUT_TEST_SUITE_ID value: $(params.test-suite-id) - name: INPUT_WAIT_TIMEOUT_SECONDS value: $(params.wait-timeout-seconds) - name: INPUT_WEBSITE_URL_OVERRIDE value: $(params.website-url-override) - name: INPUT_PARAMS_OVERRIDE value: $(params.params-override)TaskRun (cj-taskrun.yaml):
apiVersion: tekton.dev/v1kind: TaskRunmetadata: name: critical-journey-runspec: taskRef: name: critical-journey params: - name: test-suite-id value: 'my-test-suite-id' - name: wait-timeout-seconds value: '360' - name: website-url-override value: 'https://beta-dev.my-awesome.com/2' - name: params-override value: '{ "param1": "value1", "param2": "value2" }'Apply and run:
kubectl apply -f cj-task.yamlkubectl apply -f cj-taskrun.yamlOr use the Tekton CLI:
tkn task start critical-journey \ --param test-suite-id=my-test-suite-id \ --param wait-timeout-seconds=360 \ --param website-url-override=https://beta-dev.my-awesome.com/2 \ --showlogViewing logs
Section titled “Viewing logs”# Using Tekton CLItkn taskrun logs critical-journey-run --follow
# Using kubectlkubectl logs --selector=tekton.dev/taskRun=critical-journey-run --followAvailable inputs
Section titled “Available inputs”Pass each input as an env entry in the Task step using the INPUT_<NAME> naming convention.
| Parameter | Required | Default | Description |
|---|---|---|---|
test_id |
No* | ID of the test to run. Provide either this or test_suite_id. |
|
test_suite_id |
No* | ID of the test suite to run. | |
service_account_key |
Yes | Your Klarent service account key (use a Kubernetes Secret). | |
wait_timeout_seconds |
No | 300 |
Max seconds to wait for completion. Must be between 30 and 900. |
website_url_override |
No | Override the base website URL used during test execution. | |
params_override |
No | Override default parameter values. Must be a valid JSON string with string keys and values. | |
browser_type_override |
No | chromium |
Browser engine: chromium, firefox, or webkit. |
* Either test_id or test_suite_id must be provided.