feat: add playwright-ephemeral skill for ephemeral browser provisioning

Adds a new skill that provisions ephemeral Playwright MCP browser
sessions as Kubernetes Jobs for E2E testing. Includes provision and
teardown scripts, K8s Job/Service YAML templates, and agent-facing
SKILL.md documentation.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Goose
2026-03-27 14:02:42 +00:00
parent eced9e1e35
commit ad8b82449a
6 changed files with 268 additions and 1 deletions
@@ -0,0 +1,51 @@
apiVersion: batch/v1
kind: Job
metadata:
name: "{{SESSION_NAME}}"
namespace: "{{NAMESPACE}}"
labels:
app: playwright-mcp
session: "{{SESSION_NAME}}"
spec:
ttlSecondsAfterFinished: {{TTL}}
activeDeadlineSeconds: {{DEADLINE}}
backoffLimit: 0
template:
metadata:
labels:
app: playwright-mcp
session: "{{SESSION_NAME}}"
spec:
shareProcessNamespace: true
restartPolicy: Never
containers:
- name: playwright-mcp
image: mcr.microsoft.com/playwright/mcp
command: ["node"]
args:
- "cli.js"
- "--headless"
- "--browser"
- "chromium"
- "--no-sandbox"
- "--port"
- "8931"
- "--host"
- "0.0.0.0"
ports:
- containerPort: 8931
protocol: TCP
resources:
requests:
memory: "{{MEMORY_REQUEST}}"
cpu: "250m"
limits:
memory: "{{MEMORY_LIMIT}}"
cpu: "1"
readinessProbe:
httpGet:
path: /mcp
port: 8931
initialDelaySeconds: 5
periodSeconds: 3
failureThreshold: 20
@@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: "{{SESSION_NAME}}"
namespace: "{{NAMESPACE}}"
labels:
app: playwright-mcp
session: "{{SESSION_NAME}}"
spec:
type: ClusterIP
selector:
session: "{{SESSION_NAME}}"
ports:
- port: 8931
targetPort: 8931
protocol: TCP