apiVersion: tekton.dev/v1 kind: Task metadata: name: integration-test namespace: api labels: app: api-gateway component: testing spec: description: > Spin up a gateway pod from the given image as a sidecar, run curl-based integration tests, report pass/fail. params: - name: image type: string description: "Container image to test (repo:tag)" - name: gateway-port type: string default: "8080" results: - name: result type: string - name: summary type: string sidecars: - name: gateway image: $(params.image) env: - name: LISTEN_ADDR value: "0.0.0.0:$(params.gateway-port)" - name: CONFIG_PATH value: /etc/gateway/config.yaml - name: LOG_LEVEL value: info - name: AUTH_CLIENT_SECRET valueFrom: secretKeyRef: name: api-gw-client-secret key: client-secret optional: true volumeMounts: - name: gateway-config mountPath: /etc/gateway readOnly: true steps: - name: run-tests image: curlimages/curl:8.13.0 env: - name: GW value: "http://localhost:$(params.gateway-port)" - name: RESULTS_DIR value: /tekton/results command: ["sh", "/scripts/integration-test.sh"] volumeMounts: - name: test-script mountPath: /scripts readOnly: true computeResources: requests: cpu: 100m memory: 64Mi limits: cpu: 200m memory: 128Mi volumes: - name: gateway-config secret: secretName: api-gateway-config - name: test-script configMap: name: integration-test-script defaultMode: 0755