Files
homeprod/kubernetes/personal/openclaw/openclaw-instance.yaml

60 lines
1.7 KiB
YAML

apiVersion: openclaw.rocks/v1alpha1
kind: OpenClawInstance
metadata:
name: openclaw
spec:
# Provider API keys come from the SOPS-encrypted Secret below.
# The gateway token is auto-generated by the operator (no mDNS pairing in k8s).
envFrom:
- secretRef:
name: openclaw-api-keys
storage:
persistence:
enabled: true
size: 10Gi
storageClass: longhorn
networking:
ingress:
enabled: true
className: traefik
hosts:
- host: openclaw.lan
security:
# Operator defaults forceHTTPS=true, which pins the Traefik router to
# the websecure entrypoint only (404 on plain HTTP). Disabled since
# this is a LAN-internal, token-auth-only endpoint without TLS.
forceHTTPS: false
annotations:
external-dns.alpha.kubernetes.io/enabled: "true"
# Python toolchain init container: lets skills/MCP servers use uv, and lets
# the agent install python tools user-level (~/.local on the PVC) without root.
runtimeDeps:
python: true
# Headless Chromium sidecar for browser automation (scraping, screenshots,
# browser-based integrations). The operator injects CHROMIUM_URL into the
# gateway and points the "default" and "chrome" browser profiles at its CDP
# endpoint. Persistent profile keeps cookies/logins across pod restarts.
chromium:
enabled: true
image:
repository: chromedp/headless-shell
tag: "stable"
resources:
requests:
cpu: 250m
memory: 512Mi
limits:
cpu: "1"
memory: 2Gi
persistence:
enabled: true
size: 2Gi
storageClass: longhorn
resources:
requests:
cpu: 250m
memory: 512Mi
limits:
cpu: "2"
memory: 4Gi