Removes the Paperclip deployment (namespace paperclip, CNPG cluster
pclp-pg, ingresses, image automation, server image build) and the
infrastructure that existed only for its agents:
- agent sandbox: paperclip-renner namespace and CNPs, the
kubernetes-sigs/agent-sandbox controller with its namespace, CNP and
Renovate rules
- agent-runtime-{go,ops} images and the build-agent-runtime pipeline
- matrix bridge (Element <-> Paperclip agents) and synapse's appservice
registration mount
- monitoring loki-read-gateway (only called by the paperclip Role)
- MQTT account agents-read and the controller's RBAC in ns paperclip
- the OpenBao secret-exists-check policy file
- agent admits in the wiki, lidarr, shelly-manager, mosquitto and
hubble-relay CNPs; the paperclip-api Gitea webhook host; the wiki API
key; the ClusterSecretStore namespace entry; the pclp-pg RECOVERY row
- the Paperclip design spec and plan
Authentik group "Paperclip Users" is switched to state: absent so the
blueprint deletes it. package-retention's EXCLUDE_PACKAGES becomes
optional, since its only value was the agent-runtime prefix.
The shelly-manager api-proxy sidecar stays: mqtt-account-controller
calls shelly-manager-api too.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
50 lines
2.0 KiB
Markdown
50 lines
2.0 KiB
Markdown
# homelab
|
||
|
||
GitOps source for the Renner homelab cluster. Flux applies `master` to
|
||
production, so every merge is a production change. Changes go in by pull
|
||
request only; see [CONTRIBUTING.md](CONTRIBUTING.md) for YAML conventions.
|
||
|
||
## Change rules that protect Home Assistant
|
||
|
||
Owner decision (REN-240, REN-243). Home Assistant runs the house, so it
|
||
gets two rules on top of normal review.
|
||
|
||
### 1. Disruptive work runs only 02:00–05:00 Europe/Berlin
|
||
|
||
Planned work that can restart Home Assistant or disrupt the cluster is
|
||
merged and applied only between **02:00 and 05:00 Europe/Berlin**. That
|
||
covers:
|
||
|
||
- node drain, node reboot, Talos upgrade
|
||
- CNI (Cilium, Multus) and cluster-wide network policy
|
||
- storage (Rook/Ceph, CSI, snapshot controller, CNPG operator)
|
||
- Flux core (`kubernetes/clusters/*/flux-system/`, Flux controllers)
|
||
- Authentik
|
||
- OpenBao, including secret rotation that restarts consumers
|
||
- anything in `kubernetes/apps/home-assistant/`
|
||
|
||
A PR in this list states in its description that it waits for the window.
|
||
Flux applies on merge, so "wait for the window" means **merge** in the
|
||
window, not just apply. If unsure whether a change is disruptive, treat it
|
||
as disruptive.
|
||
|
||
Not covered: Home Assistant image bumps by Flux image automation. They stay
|
||
fully automatic by owner decision. If one breaks Home Assistant, roll it
|
||
back with [RUNBOOK-home-assistant-image-rollback.md](kubernetes/RUNBOOK-home-assistant-image-rollback.md).
|
||
An incident rollback is not planned work; the owner decides its timing.
|
||
|
||
### 2. HA-impact review before merge
|
||
|
||
Every PR that touches `kubernetes/apps/home-assistant/`, or makes a
|
||
cluster-wide disruptive change from the list above, needs an **HA-impact
|
||
review** before merge: a named reviewer states in the PR what Home
|
||
Assistant will notice (restart, lost integration, lost history, none) and
|
||
approves.
|
||
|
||
- Reviewer: Hestia, the Home Assistant maintainer.
|
||
- Until Hestia exists: the owner does the HA-impact review.
|
||
|
||
This is in addition to the normal review and merge by Argus. Argus does
|
||
not merge such a PR without the HA-impact approval.
|
||
|