# Tekton Integration Tests Curl-based integration tests for the API gateway, orchestrated by Tekton. ## How It Works ``` CI pushes image:sha → creates PipelineRun → Tekton spins up gateway sidecar → runs curl tests → reports pass/fail → CI promotes to :latest if pass ``` The Task runs the gateway image as a **sidecar** (same pod, localhost), then executes `scripts/integration-test.sh` which tests every adapter via `X-Service` + `X-Resource` header routing. ## Files | File | Purpose | |------|---------| | `task-integration-test.yaml` | Task: sidecar gateway + curl test step | | `pipeline-integration-test.yaml` | Pipeline: wraps the Task | | `scripts/integration-test.sh` | Test script (mounted as ConfigMap) | | `kustomization.yaml` | Generates ConfigMap from script | ## Manual Run ```bash kubectl apply -k k8s/tekton/ kubectl create -f - <<'EOF' apiVersion: tekton.dev/v1 kind: PipelineRun metadata: name: integration-test-manual namespace: api spec: pipelineRef: name: integration-test-pipeline params: - name: image value: forgejo.riotpiao.com/rock/api-gateway:latest EOF # Watch kubectl logs -f -n api pipelinerun/integration-test-manual -c step-run-tests ``` ## Updating Tests Edit `scripts/integration-test.sh`, then: ```bash kubectl apply -k k8s/tekton/ # recreates ConfigMap ``` ## Tekton Infrastructure Tekton Pipelines is installed in `~/workplace/homelab` via ArgoCD (`k8s/argocd/apps/06-ci-cd.yaml` → vendored `k8s/infra/tekton/release.yaml`).