A teaching-first, single-cluster GitOps setup: Talos Linux + Argo CD with an app-of-apps layout, MetalLB pre-installed for real LoadBalancer IPs on bare metal, a demo app, and a progressive docs/ walkthrough with a CLAUDE.md tutor persona and guided bootstrap checklist. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2.0 KiB
Network map
Every real IP address this cluster hands out, and exactly what's reachable
there. This file isn't a template with the rest of the repo — it's a log
of your actual setup, meant to be updated every time an address is
assigned or changed, so you (or Claude) never have to reverse-engineer
"wait, what's running on .241 again?" from kubectl output.
Keep this current. If you're working with Claude and an IP changes — a new app gets a
LoadBalanceraddress, the MetalLB pool is resized, Argo CD's address changes — ask it to update this file, or just point it here after any networking change. SeeCLAUDE.mdfor the standing instruction that tells Claude to do this on its own when it makes such a change itself.
MetalLB pool
| Range | EDIT ME — e.g. 192.168.1.240-192.168.1.250 |
| Configured in | apps/metallb/templates/ipaddresspool.yaml |
Allocated addresses
| Address | What | Namespace | Port(s) | URL | Source |
|---|---|---|---|---|---|
<NODE_IP> |
Talos node — Kubernetes API server | — | 6443 | https://<NODE_IP>:6443 |
Not from the MetalLB pool — the node's own address, set in talos/README.md |
EDIT ME |
Argo CD UI/API (argocd-server) |
argocd |
443 | https://EDIT ME |
Patched to LoadBalancer by hand — see docs/05-metallb.md |
EDIT ME |
Demo app | demo |
80 | http://EDIT ME |
apps/demo/service.yaml |
Add a row here every time you add a new app with a LoadBalancer Service
(see docs/07-adding-new-apps.md). Leave the URL
column's port number off only when it's the protocol default (80 for
http://, 443 for https://) — include it otherwise.
Free in the pool
Addresses from the range above that aren't spoken for yet. Update this alongside the table above so it's obvious at a glance what's safe to hand to the next app.
EDIT ME