243 Commits
Author SHA1 Message Date
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 c613811c8e gitea: bump memory limit for valkey 2026-09-09 23:39:29 +02:00
vhaudiquet 5608fa2f0d kyverno(kube): strip limits.cpu too 2026-09-09 23:21:51 +02:00
vhaudiquet 3d258f147d kyverno(kube): foreach patchStrategicMerge must be inline mapping, not block scalar 2026-09-09 23:07:13 +02:00
vhaudiquet 764a029c39 kyverno(kube): update policy to v1 2026-09-09 22:57:58 +02:00
vhaudiquet 21d54fba97 kyverno(kube): bump version 2026-09-09 22:52:51 +02:00
vhaudiquet 26dd59845f kyverno(kube): fix deployment 2026-09-09 22:20:59 +02:00
vhaudiquet a07ce44e6d kyverno(kube): add kyverno
add a policy to remove cpu requests, to relieve cluster
2026-09-09 21:43:13 +02:00
vhaudiquet 99880ab291 gitea,longhorn: update CPU limits, tolerations, replicas 2026-09-09 18:47:12 +02:00
vhaudiquet f813170b86 gitea/valkey(kube): bump memory limit to 512 Mi
bump requested memory to 256 Mi
2026-09-07 23:43:39 +02:00
renovate[bot]andvhaudiquet c0b73e29be chore(kube): bump chart postgres Docker tag to v0.20.4 2026-09-01 01:05:41 +02:00
renovate[bot]andvhaudiquet 69c59daf5e chore(kube): bump caddy Docker tag to v2.11.4 2026-09-01 01:05:29 +02:00
renovate[bot]andvhaudiquet a2a97180c9 chore(kube): bump chart Helm release cert-manager-webhook-ovh to v0.9.16 2026-09-01 01:05:19 +02:00
renovate[bot]andvhaudiquet 6d9e6c76c8 chore(kube): bump coredns/coredns Docker tag to v1.14.7 2026-09-01 01:04:56 +02:00
renovate[bot]andvhaudiquet 9a9894fc8c chore(kube): bump chart redis Docker tag to v0.34.26 2026-09-01 01:04:41 +02:00
renovate[bot]andvhaudiquet 2c4b3127b4 chore(kube): bump stalwartlabs/stalwart Docker tag to v0.16.20 2026-09-01 01:04:00 +02:00
renovate[bot]andvhaudiquet 372dbff681 chore(kube): bump chart Helm release stalwart to v0.7.16 2026-09-01 01:03:46 +02:00
renovate[bot]andvhaudiquet 072470c17d chore(kube): bump chart Helm release longhorn to v1.12.1 2026-09-01 01:03:20 +02:00
vhaudiquet 15b8ef7687 renovate: set ram limits up to 2G 2026-08-30 10:04:19 +02:00
vhaudiquet 13cca1852e renovate: update to new oci repository 2026-08-26 21:39:34 +02:00
vhaudiquet a80b45618c renovate: deploy renovate on kube 2026-08-26 21:35:02 +02:00
kosmos-ai-botandvhaudiquet 45f8f84cbc chore(renovate): drop self-hosted runner from this PR (merge config only)
Per review feedback: remove the self-hosted Renovate deployment
(kubernetes/code/renovate/* + root kustomization wiring) from this PR and
defer it to a follow-up. Keep the renovate.json config to merge now.

Also drop the postUpgradeTasks SOPS re-encrypt block: it depended on the
runner's boot.sh decrypt flow, and the hosted Mend app cannot run 'sops'
(allowedPostUpgradeCommands). SOPS handling returns with the deployment.
2026-08-26 19:58:55 +02:00
kosmosandvhaudiquet 1623b2ea7d fix(renovate): decrypt values BEFORE renovate edits them (retract broken post-bump round-trip)
The prior postUpgradeTasks command 'sops -d ... && sops -e' was wrong:
Renovate has no preUpgradeTasks hook, and postUpgradeTasks runs AFTER
Renovate rewrites the file. These values.yaml are SOPS documents whose
sops.mac authenticates the whole file, so editing a plaintext image.tag
invalidates the MAC and 'sops -d' then fails (data-integrity error). The
claimed decrypt-after-bump therefore could never work.

boot.sh now decrypts every values.yaml in the checkout BEFORE Renovate
extracts/edits them, committing the decrypted tree locally (never pushed,
so no plaintext secrets enter remote git). postUpgradeTasks is reduced to
'sops -e -i' only (the file is already plaintext when Renovate edits it).

Validated: kustomize build passes for the whole kubernetes/ tree.
2026-08-26 19:58:55 +02:00
kosmosandvhaudiquet 5bf07a2fff chore(renovate): add SOPS round-trip postUpgradeTasks + self-hosted runner
Address review feedback on SOPS handling for encrypted values.yaml.

- renovate.json: Renovate has NO preUpgradeTasks option (verified against
  the renovate-schema). Decrypt must therefore happen inside postUpgradeTasks
  (which run after the tag bump, before the commit): decrypt the values.yaml,
  then re-encrypt. Encrypting an already-encrypted file would double-encrypt
  the existing ENC secret values. Only **/values.yaml is re-encrypted; the
  docker-compose and Chart.yaml files are not SOPS-encrypted here.
- kubernetes/code/renovate: self-hosted Renovate runner as a Flux CronJob
  running the renovatebot/renovate image, with sops allowed as a
  postUpgradeTask command and the SOPS PGP key loaded to re-encrypt
  values.yaml. Secrets come from SOPS-encrypted dotenv/env file sources.
- Wire code/renovate into the root kubernetes kustomization.
2026-08-26 19:58:55 +02:00
kosmosandvhaudiquet 6da9484fa3 openclaw: add egress NetworkPolicy for Radicale CalDAV
Allow the openclaw pod to reach the Radicale CalDAV/CardDAV server
(namespace: radicale, port 5232) so Kosmos can read/write Valentin's
calendar via the in-cluster service. Mirrors networkpolicy-mail-egress.yaml.

Workaround for spec.networkPolicy.additionalEgress not being in the CRD
bundled with operator chart 0.39.0 yet (silently pruned).
2026-08-25 00:08:03 +02:00
vhaudiquet 989a16b878 openclaw: allow runtimeDeps python 2026-08-24 23:19:41 +02:00
vhaudiquet 53fd78081d openclaw: add chromium sidecar 2026-08-24 23:15:04 +02:00
vhaudiquet b351545c92 radicale: deploy on kube 2026-08-24 21:16:53 +02:00
vhaudiquet ced1042fc1 openclaw: update secrets
<beep boop, I'm a bot>
2026-08-24 14:01:23 +02:00
vhaudiquet 400d5910be openclaw: allow ingress networkpolicy 2026-08-23 21:36:32 +02:00
vhaudiquet 79faafe40a openclaw: allow traefik namespace 2026-08-23 18:21:54 +02:00
vhaudiquet 539622817d openclaw: enable http access 2026-08-23 11:03:05 +02:00
vhaudiquet 34660b1231 openclaw: deploy openclaw on kube 2026-08-23 10:43:07 +02:00
vhaudiquet b393049241 gitea: make namespace privileged for actions runners 2026-08-22 12:31:03 +02:00
vhaudiquet 8abd2add2e gitea: deploy in-cluster action runner 2026-08-22 12:15:30 +02:00
vhaudiquet 7ff65257a7 linkwarden: remove linkwarden, bye! 2026-08-21 20:18:41 +02:00
vhaudiquet 16f83820e7 dns(local): remove/update stale entries 2026-08-21 19:25:02 +02:00
vhaudiquet 972d4d1510 blocky: update coredns service ip 2026-08-21 18:53:47 +02:00
vhaudiquet 38fa3ae058 dns(local): update truenas, p330 2026-08-21 00:30:27 +02:00
vhaudiquet 0ef10e278e trafik: pin loadbalancerip 2026-08-20 23:32:22 +02:00
vhaudiquet ac3a6a1b60 network: fix previous ips 2026-08-20 23:26:03 +02:00
vhaudiquet 207aa84670 network: allocate new ips on final segment 2026-08-20 22:31:57 +02:00
vhaudiquet 950ced8477 flux: re-order longhorn jobs for right dependencies 2026-08-19 17:14:26 +02:00
vhaudiquet bc6f92e145 flux: re-order certificates for right dependencies 2026-08-19 16:56:23 +02:00
vhaudiquet f420718943 dns(local): update p330 2026-08-17 21:32:25 +02:00
vhaudiquet fd309e4f94 network: release old IPs, allocate new IPs, swap DNS
Migrating houses is never easy...
2026-08-17 20:27:08 +02:00
vhaudiquet d8970a5f4b obsidian-livesync: set couchdb shards to 1 2026-08-16 23:50:13 +02:00
vhaudiquet 7b6d8f3dc4 obsidian-livesync: update ingress 2026-08-16 22:29:08 +02:00
vhaudiquet 7d32e91b9c obsidian-livesync: add couchdb uuid 2026-08-16 22:25:52 +02:00
vhaudiquet 8c83e6c7ab obsidian-livesync: deploy to kube 2026-08-16 22:16:47 +02:00