stack.basicstack.de/infrastructure
CTO Agent 19af6918f0 feat(os-update): reconcile Docker + label after node updates (DEV-499)
The weekly rolling OS-update cycle has been silently stripping docker.io from
worker nodes (DEV-498), breaking the Forgejo runner whose hostPath mount for
/var/run/docker.sock requires the socket to exist. Fix in two layers:

- Defensive pin: update-node.sh now runs `apt-mark manual docker.io` in the
  apt phase (whenever it is installed) so `apt-get autoremove --purge` cannot
  silently drop it during subsequent upgrades.
- Post-reboot reconciliation: new `ensure-node-docker.sh` installs docker.io
  if missing, enables + starts the systemd unit, waits for /var/run/docker.sock,
  and re-applies the `basicstack.de/docker=true` label. Wired into
  update-node.sh between kubelet-Ready and uncordon. No-op on nodes without
  the label (safe for cp-1 and the update runner).

Verified idempotent against all 5 labeled workers; `apt-mark manual docker.io`
now set on every worker (survived across reboots by design).

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-08-16 20:22:43 +00:00
..
k3s-upgrade Add k3s cluster management automation and documentation 2026-07-06 17:08:21 +00:00
networking Traefik: check in HelmChartConfig with DEV-457 changes for reproducibility 2026-08-08 14:52:29 +00:00
scripts feat(os-update): reconcile Docker + label after node updates (DEV-499) 2026-08-16 20:22:43 +00:00
ADD_WORKER_NODE.md docs: add standalone worker node addition instruction 2026-07-26 16:07:52 +00:00
CLUSTER_ACCESS.md Update k3s cluster documentation 2026-07-06 17:54:53 +00:00
CP1_UPDATE_PROCEDURE.md docs(infra): design cp-1 OS update procedure (DEV-496) 2026-08-16 19:28:52 +00:00
K3S_OPERATIONS.md Document DNS configuration and service CIDR fix 2026-07-06 18:22:53 +00:00
OS_UPDATE_PROCEDURE.md feat(os-update): reconcile Docker + label after node updates (DEV-499) 2026-08-16 20:22:43 +00:00
OS_UPDATE_ROUTINE.md Add weekly rolling OS-update procedure for k3s nodes (DEV-462) 2026-08-09 15:55:39 +00:00
README.md Add weekly rolling OS-update procedure for k3s nodes (DEV-462) 2026-08-09 15:55:39 +00:00

Infrastructure

This directory contains cluster-wide infrastructure configurations that support all applications.

Operational procedures (agent-facing)

Structure

networking/

Network-level configurations including:

  • Network Architecture - Comprehensive network architecture documentation
  • DNS Requirements - DNS records and configuration guide
  • Ingress controller configurations (Traefik)
  • Network policies
  • Load balancer configurations (k3s ServiceLB)
  • Certificate management (cert-manager, TLS)
  • Certificate reloading (Stakater Reloader)

monitoring/

Observability infrastructure:

  • Prometheus operator and configurations
  • Grafana dashboards and datasources
  • Logging stack (Loki, Promtail, etc.)
  • Alert rules and notification channels
  • Service monitors and pod monitors

Purpose

Infrastructure configurations in this directory are shared across all applications. Changes here can affect the entire cluster, so:

  1. Test thoroughly before applying
  2. Document all changes
  3. Consider the impact on existing deployments
  4. Coordinate with other team members

Adding Infrastructure Components

When adding new infrastructure components:

  1. Create appropriate subdirectories if needed
  2. Include clear documentation
  3. Define dependencies and prerequisites
  4. Provide rollback procedures
  5. Update this README with the new component