diff --git a/CLAUDE.md b/CLAUDE.md index a2945b7..4479cee 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,13 +4,14 @@ | Node | IP | Zone | Scheduling | Storage | |------|----|----|-----------|---------| -| `talos-cp-1` | .213 | az-a | schedulable (all workloads) | Longhorn replica | -| `talos-cp-2` | .163 | az-b | dedicated (`NoSchedule`) | Longhorn replica | -| `talos-cp-3` | .166 | az-c | dedicated (`NoSchedule`) | Longhorn replica | +| `talos-cp-1` | .213 | az-a | schedulable | Longhorn replica | +| `talos-cp-2` | .163 | az-b | schedulable | Longhorn replica | +| `talos-cp-3` | .166 | az-c | schedulable | Longhorn replica | 3 voting etcd members peering on the LAN. All 3 nodes run Longhorn with 3-replica -HA storage (verified: all 17 PVCs have replicas across all nodes). Only `talos-cp-1` -is schedulable for workloads (cp-2/cp-3 are control-plane only). Full detail + gotchas +HA storage (verified: all 17 PVCs have replicas across all nodes). All 3 nodes are +schedulable for workloads (no `NoSchedule` taints) for better resource utilization. +Pod distribution: ~59 pods on cp-1, ~21 on cp-2, ~23 on cp-3. Full detail + gotchas in `USAGE.md` and memory `reference_talos_etcd_and_ca_gotchas`. ## Deployment Model: ArgoCD GitOps (helmfile is retired) @@ -48,6 +49,17 @@ the dedicated CPs (.163/.166), never the data node. template — without it Talos advertises on the WireGuard IP and new members hang as non-promoting etcd learners. +🔴 **Control-plane scheduling controlled via Terraform.** To enable/disable workload +scheduling on a control-plane node, edit `terraform/terraform.tfvars` → +`controlplane_configs..allow_scheduling` (true/false), then: +```bash +cd terraform +terraform fmt && terraform apply +talosctl apply-config --nodes --file ../cluster-config/.yaml --mode no-reboot +``` +Do NOT manually `kubectl taint` — Talos will revert on next reconcile. All changes +must flow through Terraform to persist across reboots. + 🔴 **ALWAYS run `terraform fmt` after any terraform code changes.** Before commit: ```bash terraform fmt -recursive terraform/