Commit Graph
1137 Commits
Author SHA1 Message Date
vhaudiquet bd3143065c feat(caddy): mount the s3.rhema.rs certificate 2026-10-16 09:06:11 +02:00
vhaudiquet e33b82671a revert: restore the caddy values gutted by a bad s3 volume edit 2026-10-16 09:04:31 +02:00
vhaudiquet 844c8f8abe fix(caddy): the s3 certificate volume references its secret 2026-10-16 09:03:55 +02:00
vhaudiquet 93054f962a feat(caddy): mount the s3.rhema.rs certificate 2026-10-16 09:01:46 +02:00
vhaudiquet 9aeecee770 feat(get-rhema): expose the S3 API publicly for release uploads
The release runners cannot resolve the in-cluster Service name, so the
binary uploads died on DNS. s3.rhema.rs fronts the same Garage through
Caddy and Traefik, with its own certificate, matching the web face's
shape (Caddy terminates, Traefik routes, bucket by path).
2026-10-16 08:56:34 +02:00
vhaudiquet 9d53dd0fc6 rhema(kube): deploy rhema.rs and get.rhema.rs 2026-10-15 22:32:14 +02:00
vhaudiquet 5058982605 dns: manage rhema.rs via cloudflare 2026-10-15 22:28:50 +02:00
vhaudiquet bb443f3311 kyverno-policies(kube): exclude longhorn instance-manager pods from cpu stripping
The longhorn instance-manager and engine-image pods carry
longhorn.io/component labels, not app, so the exclusions never matched.
Kyverno stripped their cpu requests at admission, longhorn-manager saw a
spec mismatch and deleted the pod in a loop, and after any node reboot
all longhorn volumes stayed detached with every workload stuck in
ContainerCreating. Match the real labels instead.
2026-10-14 17:43:14 +02:00
renovate[bot]andvhaudiquet 7ac3b46b3c chore(kube): bump caddy Docker tag to v2.11.7 2026-10-11 00:03:43 +02:00
renovate[bot]andvhaudiquet bc905c78bc chore(kube): bump chart Helm release cert-manager-webhook-ovh to v0.9.18 2026-10-11 00:03:34 +02:00
renovate[bot]andvhaudiquet d97180783a chore(kube): bump chart Helm release radicale to v2.1.4 2026-10-11 00:03:23 +02:00
renovate[bot]andvhaudiquet 60759d4e4a chore(kube): bump stalwartlabs/stalwart Docker tag to v0.16.25 2026-10-11 00:03:05 +02:00
vhaudiquet a1ce8d3880 rhema-claw(kube): deploy 2026-10-10 13:49:22 +02:00
vhaudiquet 8c7a905d39 saggar(kube): weekly full syncs on the embedded garages
Garage's hourly full-sync cycles were the InvalidAccessKeyId source:
while a key-table sync runs, auth lookups transiently fail, and the
edge job's prune step kept landing inside the window (one sync ran
87 minutes). Both embedded stores get a weekly interval.
2026-10-06 06:20:19 +02:00
renovate[bot]andvhaudiquet d72a76e416 chore(kube): bump chart Helm release radicale to v2.1.2 2026-10-04 23:39:30 +02:00
renovate[bot]andvhaudiquet 992415e4f1 chore(kube): bump caddy Docker tag to v2.11.6 2026-10-04 23:39:17 +02:00
renovate[bot]andvhaudiquet d21f92eb4b chore(kube): bump chart Helm release stalwart to v0.7.21 2026-10-04 23:39:03 +02:00
renovate[bot]andvhaudiquet a8ff5d1b10 chore(kube): bump stalwartlabs/stalwart Docker tag to v0.16.24 2026-10-04 23:38:53 +02:00
vhaudiquet 9629597703 get-saggar(kube): deploy
The saggar-dist chart: a single-node Garage hosting the distribution
bucket — public read-only website on get.saggar.dev (the host label
is what Garage's vhost routing resolves the bucket from), S3 write
surface staying cluster-internal for the publish workflow. Same edge
path as the other saggar hosts: dns A record, cert-manager
certificate, caddy route. Chart repo and packages auth carry over
from the saggar release.
2026-10-04 23:14:09 +02:00
vhaudiquet 89420bae2f saggar(kube): set the device login's web origin (auth.uiUrl) 2026-10-01 21:25:56 +02:00
vhaudiquet b8879b2025 saggar(kube): expose docs.saggar.dev
The chart's docs book (static nginx) was up in-cluster only: give its
ingress a host, with the same edge path as the api host — dns A
record, cert-manager certificate and caddy route.
2026-10-01 19:39:26 +02:00
vhaudiquet 32207635fe gitea(kube): raise limits to receive a kernel tree
index-pack on ~12M objects OOMKilled the 1Gi container mid push, and
500m of CPU stretched the receive for many minutes before that.
Bump to 6Gi / 4 cores; the node has ~40Gi free.
2026-09-30 23:03:47 +02:00
vhaudiquet e6ab21317a traefik(kube): raise web entrypoint read timeout to 5m
Traefik v3 defaults respondingTimeouts.readTimeout to 60s counted
over the whole request body, so large HTTP git pushes get a 504 the
moment they pass one minute. writeTimeout stays unset: a cap there
would cut long-lived SSE streams mid-flight.
2026-09-30 23:03:42 +02:00
vhaudiquet ae8a4ddb27 saggar(kube): deploy
Flux HelmRelease of the saggar hub (chart saggar-hub >=0.2.0-0,
CI-published on the gitea saggar org, appVersion pinned to the image
commit) with the web UI. Engine on api.saggar.dev for the CLI and the
docker/apt registries, UI on saggar.dev — new cert, caddy route and
dns A record for the api host, TLS terminating at Caddy as usual.
Login via the home Gitea as an OIDC provider; private registry and
helm repo auth share one packages token.
2026-09-30 22:30:47 +02:00
vhaudiquet c83b4550ed Merge branch 'main' of https://github.com/vhaudiquet/homeprod
* 'main' of https://github.com/vhaudiquet/homeprod:
  chore(kube): bump chart Helm release cert-manager-webhook-ovh to v0.9.17
  chore(kube): bump chart Helm release notesnook to v1.0.38
  chore(kube): bump chart Helm release stalwart to v0.7.19
  chore(kube): bump chart postgres Docker tag to v0.20.6
  chore(kube): bump chart redis Docker tag to v0.35.4
  chore(kube): bump stalwartlabs/stalwart Docker tag to v0.16.23
2026-09-28 01:24:28 +02:00
vhaudiquet 50d992b727 saggar.dev(kube): deploy
- cert-manager-webhook-porkbun via Flux (chart 2.0.7, octabits fork)
- porkbun DNS-01 solver on letsencrypt-production for saggar.dev
- porkbun API credentials secret (sops)
- saggar.dev apex Certificate + Caddy site block -> traefik
2026-09-28 01:14:58 +02:00
vhaudiquet fc6db118d3 dns: manage saggar.dev via porkbun provider
- new saggar.dev zone (apex A -> 82.64.154.58) targeting porkbun
- replace '*' zone glob with explicit per-zone targets (cloudflare
  for vhaudiquet.fr/buildpath.win, porkbun for saggar.dev)
- CI: switch to octodns/octodns image + install cloudflare/porkbun
  provider modules
2026-09-28 01:05:00 +02:00
renovate[bot]andvhaudiquet 7e5fa8a5b5 chore(kube): bump chart Helm release cert-manager-webhook-ovh to v0.9.17 2026-09-26 19:34:36 +02:00
renovate[bot]andvhaudiquet 30845bb249 chore(kube): bump chart Helm release notesnook to v1.0.38 2026-09-26 19:34:25 +02:00
renovate[bot]andvhaudiquet 52ac77a74e chore(kube): bump chart Helm release stalwart to v0.7.19 2026-09-26 19:34:04 +02:00
renovate[bot]andvhaudiquet e189bc66ea chore(kube): bump chart postgres Docker tag to v0.20.6 2026-09-26 19:33:47 +02:00
renovate[bot]andvhaudiquet 008238922b chore(kube): bump chart redis Docker tag to v0.35.4 2026-09-26 19:31:12 +02:00
renovate[bot]andvhaudiquet 82d646d399 chore(kube): bump stalwartlabs/stalwart Docker tag to v0.16.23 2026-09-26 14:19:15 +02:00
vhaudiquet 818ed232e4 dns: add pkgatlas.vhaudiquet.fr A record
Caddy's wildcard *.vhaudiquet.fr vhost already routes the host to the
in-cluster Traefik and on to the pkgatlas ingress.
2026-09-24 22:00:21 +02:00
vhaudiquet b2f656c757 pkgatlas(kube): deploy
Flux HelmRelease tracking the CI-published chart (>=0.4.0-0, timestamped
versions, appVersion pinned to the image commit). Ingress host
pkgatlas.vhaudiquet.fr via traefik; TLS terminates at Caddy with the
*.vhaudiquet.fr wildcard, so the new @pkgatlas route proxies to Traefik
like the other public vhosts.
2026-09-24 21:57:42 +02:00
vhaudiquet 3f986b65ab gitea(kube): fix valkey memory limits 2026-09-22 22:35:36 +02:00
vhaudiquet e354a56e15 gitea(kube): bump pvc storage to 30Gi 2026-09-22 21:58:25 +02:00
vhaudiquet bd5fab7419 syncthing(kube): deploy 2026-09-22 00:30:42 +02:00
kosmosandvhaudiquet e242b2ddce openclaw: allow LAN egress on all ports
The operator's managed policy is default-deny with egress limited to DNS
and TCP 443, so reaching a LAN service on any other port is dropped.
Measured against 10.4.1.222 from inside the pod: 443 returns RST while
7020 times out, so routing is fine and the port is what gets refused.

Add a supplementary egress policy admitting 10.0.0.0/8, excluding the
service (10.96.0.0/12) and pod (10.244.0.0/16) CIDRs so this does not
grant every pod a path out. No port list: the point is arbitrary LAN
services. Registered in the directory kustomization alongside the
existing mail and radicale egress policies.
2026-09-20 17:33:35 +02:00
renovate[bot]andvhaudiquet 0d81f4a5d2 chore(kube): bump chart postgres Docker tag to v0.20.5 2026-09-19 20:56:00 +02:00
renovate[bot]andvhaudiquet 56e5992536 chore(kube): bump chart Helm release radicale to v2.1.1 2026-09-19 20:55:45 +02:00
renovate[bot]andvhaudiquet 77a5225358 chore(kube): bump chart Helm release kyverno to v3.9.1 2026-09-19 20:55:33 +02:00
renovate[bot]andvhaudiquet 7fd1a5e52f chore(deps): update terraform docker to v3.9.0 2026-09-19 20:54:58 +02:00
renovate[bot]andvhaudiquet 23748ee4fc chore(kube): bump chart Helm release stalwart to v0.7.18 2026-09-19 20:54:40 +02:00
renovate[bot]andvhaudiquet 45c3970a27 chore(kube): bump chart redis Docker tag to v0.35.1 2026-09-19 20:54:25 +02:00
renovate[bot]andvhaudiquet fdb2634a46 chore(kube): bump stalwartlabs/stalwart Docker tag to v0.16.22 2026-09-19 20:54:03 +02: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
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