rdev/deployments/k8s/base/playwright-pod.yaml
jordan 9a1309a0c5 feat: fix composable monorepo CI builds + health endpoint improvements
Composable monorepo CI fixes:
- Add empty go.sum.tmpl files for pkg, service, worker, and cli components
- Fix Dockerfile.tmpl glob patterns (COPY go.work.sum* is invalid in Kaniko)
- Add deps step to CI that runs go work sync and go mod tidy before builds
- Fix scalar-go dependency version (v0.1.2 doesn't exist, use v0.13.0)

Health endpoint improvements:
- Add registry health check (zot OCI /v2/ endpoint)
- Add health metrics for CI, registry, and Git
- Add /health/ci endpoint for Woodpecker health

Visual verification scaffolding:
- Add Playwright pod and scripts ConfigMap
- Add vision.md and implementation breakdown plan

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 18:46:51 -07:00

91 lines
2.1 KiB
YAML

apiVersion: apps/v1
kind: StatefulSet
metadata:
name: playwright
namespace: rdev
labels:
app.kubernetes.io/name: playwright
app.kubernetes.io/part-of: rdev
spec:
serviceName: playwright
replicas: 1
selector:
matchLabels:
app: playwright
template:
metadata:
labels:
app: playwright
app.kubernetes.io/name: playwright
app.kubernetes.io/part-of: rdev
rdev.orchard9.ai/role: playwright
spec:
containers:
- name: playwright
image: mcr.microsoft.com/playwright:v1.50.0-noble
imagePullPolicy: IfNotPresent
command: ["sleep", "infinity"]
resources:
requests:
cpu: "500m"
memory: "1Gi"
limits:
cpu: "2"
memory: "4Gi"
volumeMounts:
# Captures directory for screenshots and videos
- name: captures
mountPath: /captures
# Scripts ConfigMap mounted as scripts directory
- name: scripts
mountPath: /scripts
# Simple liveness check - container is running
livenessProbe:
exec:
command:
- test
- -f
- /scripts/capture.js
initialDelaySeconds: 5
periodSeconds: 60
# Readiness - node and playwright are available
readinessProbe:
exec:
command:
- node
- --version
initialDelaySeconds: 10
periodSeconds: 30
timeoutSeconds: 10
volumes:
- name: captures
emptyDir: {}
- name: scripts
configMap:
name: playwright-scripts
defaultMode: 0755
---
# Headless service for StatefulSet
apiVersion: v1
kind: Service
metadata:
name: playwright
namespace: rdev
labels:
app.kubernetes.io/name: playwright
app.kubernetes.io/part-of: rdev
spec:
clusterIP: None
selector:
app: playwright
ports:
- port: 9323
name: debug