# Continuous smoke — runs the full WebKit suite every 15 min. A failed run means # something users touch broke; alert on it (Job failure → kube-state-metrics # kube_job_status_failed → Alertmanager). Same image/env as the deploy-gate Job. apiVersion: batch/v1 kind: CronJob metadata: name: e2e-smoke namespace: platform annotations: argocd.argoproj.io/sync-options: Prune=false spec: schedule: "*/15 * * * *" concurrencyPolicy: Forbid successfulJobsHistoryLimit: 3 failedJobsHistoryLimit: 5 jobTemplate: spec: backoffLimit: 1 ttlSecondsAfterFinished: 86400 template: spec: restartPolicy: Never tolerations: - key: node-role.kubernetes.io/control-plane operator: Exists effect: NoSchedule containers: - name: e2e image: forgejo-gitea-http.cicd.svc.cluster.local:3000/riotpiao.com/homelab-e2e:latest imagePullPolicy: Always env: - name: BASE_DOMAIN value: riotpiao.com - name: E2E_IGNORE_TLS value: "0" - name: CI value: "1" - name: AK_ADMIN_USER value: akadmin - name: AK_ADMIN_PASSWORD valueFrom: secretKeyRef: { name: e2e-credentials, key: authentik-admin-password } - name: MINIO_ENDPOINT value: http://minio.storage.svc.cluster.local:9000 - name: MINIO_BUCKET value: e2e-artifacts - name: MINIO_ACCESS_KEY valueFrom: secretKeyRef: { name: e2e-credentials, key: minio-access-key } - name: MINIO_SECRET_KEY valueFrom: secretKeyRef: { name: e2e-credentials, key: minio-secret-key } resources: requests: { cpu: 200m, memory: 512Mi } limits: { cpu: "1", memory: 2Gi }