Files
homelab-frontend/k8s/tekton
Admin Bot f17ed21637
CI / CI (pull_request) Failing after 48s
fix: passing integration tests (7/7) + kubectl in CI runner
Tests: health, header validation, s3, sqs, workflow routing
Skipped for now: memory (embedding svc config), iam (needs auth)
2026-09-13 21:33:55 +09:00
..

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

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:

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).