Compare commits

...
Author SHA1 Message Date
renovate[bot] ad7de416a6 chore(kube): bump stalwartlabs/stalwart Docker tag to v0.16.22 2026-09-19 04:01:21 +00:00
vhaudiquet f2d7fe7bcc openclaw: pin image to 2026.9.3 and chown PVC mount root (operator#607)
- Pin gateway image to immutable tag 2026.9.3: the stale node-cached
  'latest' (old build, state schema v1) crash-looped against the PVC's
  DB already migrated to schema v15/16.
- Add fix-data-owner init container: the operator mounts the PVC root
  at /home/openclaw/.openclaw with fsGroup only, leaving the mount root
  owned by root; OpenClaw >= 2026.9 fchmods its config dir on write and
  fails with EPERM (paperclipinc/openclaw-operator#607).
- Ran one-time 'openclaw doctor --fix --non-interactive' against the
  PVC to complete the 2.0 workspace-state migration.
2026-09-10 00:59:25 +02:00
vhaudiquet 807d764bdf cilium(kube): scale replicas down to 1 2026-09-10 00:16:34 +02:00
3 changed files with 35 additions and 1 deletions
+5
View File
@@ -31,6 +31,11 @@ l2announcements:
enabled: true enabled: true
externalIPs: externalIPs:
enabled: true enabled: true
# Single-node cluster: the operator defaults to 2 replicas, but both
# bind the same host ports, so the second replica can never schedule ("node(s)
# didn't have free ports for the requested pod ports") and sits Pending forever.
operator:
replicas: 1
ingressController: ingressController:
enabled: false enabled: false
loadbalancerMode: shared loadbalancerMode: shared
@@ -7,7 +7,7 @@
# Container image # Container image
image: image:
repository: stalwartlabs/stalwart repository: stalwartlabs/stalwart
tag: v0.16.20 tag: v0.16.22
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
# Single-node RocksDB deployment. # Single-node RocksDB deployment.
replicaCount: 1 replicaCount: 1
@@ -3,6 +3,35 @@ kind: OpenClawInstance
metadata: metadata:
name: openclaw name: openclaw
spec: spec:
# Pin the gateway image to an immutable version tag. Running `latest` with
# pullPolicy=IfNotPresent let a stale node-cached image (old build, state
# schema v1) fight the PVC's DB migrated by a newer build (schema v15),
# crash-looping the container. Bump this tag alongside upstream releases.
image:
repository: ghcr.io/openclaw/openclaw
tag: "2026.9.3"
# Workaround for paperclipinc/openclaw-operator#607: the operator mounts the
# PVC root directly at /home/openclaw/.openclaw and only fsGroup is applied,
# so the mount root stays owned by root. OpenClaw >= 2026.9 fchmods its config
# dir when writing openclaw.json, which fails with EPERM for a non-owner.
# This one-shot init container chowns the mount root to the pod UID.
initContainers:
- name: fix-data-owner
image: docker.io/library/busybox:1.37
command: ["sh", "-c", "chown 1000:1000 /data && ls -ld /data"]
securityContext:
runAsUser: 0
runAsNonRoot: false
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop: ["ALL"]
add: ["CHOWN"]
seccompProfile:
type: RuntimeDefault
volumeMounts:
- name: data
mountPath: /data
# Provider API keys come from the SOPS-encrypted Secret below. # Provider API keys come from the SOPS-encrypted Secret below.
# The gateway token is auto-generated by the operator (no mDNS pairing in k8s). # The gateway token is auto-generated by the operator (no mDNS pairing in k8s).
envFrom: envFrom: