From e946709e821bb1ac67462a01cc29f26fe0daf5e5 Mon Sep 17 00:00:00 2001 From: Mathias Date: Tue, 6 Oct 2026 08:28:04 +0200 Subject: [PATCH] =?UTF-8?q?docs(claude):=20add=20Deploying=20section=20?= =?UTF-8?q?=E2=80=94=20a=20push=20does=20not=20deploy,=20bump=20the=20infr?= =?UTF-8?q?a=20manifest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Migrated from cwd-keyed auto-memory (ADR-0002, local-dev#36). Co-Authored-By: Claude Sonnet 5.5 --- CLAUDE.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index bc1a8cd..eca20c6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -27,6 +27,23 @@ docs it indexes. - **Language is Go (ADR-001).** Do not introduce Python or a second language. If you think you need one, that's a new ADR with a real justification, not a default. +## Deploying: a push does not deploy + +Tapir runs on the koala k3s cluster under Flux GitOps. Pushing here only builds the image; +`kubectl set image` is reverted by Flux drift correction within seconds. The manifest bump is +manual: Flux image-automation in `mathias/infra` covers only `supervisor`, not tapir (infra#111 +is closed, but `k3s/flux/flux-system/image-automation.yaml` has no tapir policy). + +1. CI (`.gitea/workflows/ci.yml`) builds and pushes `localhost:5000/tapir:` on the + main push. +2. In `mathias/infra`, bump `image:` in `k3s/apps/tapir/deployment.yaml` to that sha; commit to + `main` (infra's own rules and full `task check` apply). +3. On koala: `flux reconcile kustomization apps --with-source`, then + `kubectl -n tapir rollout status deploy/tapir`. Both need per-action approval in a session. +4. Confirm the running image is the new sha and the startup log shows the new code. + +Runbook and why: brain `homelab/failures/flux-reverts-kubectl-set-image-deploy-via-git`. + ## Things that look reusable but are NOT — read before "reusing" These caused real mistakes that were caught and corrected; the corrections are load-bearing.