docs(CLAUDE.md): update scheduling topology - all 3 nodes now schedulable

TOPOLOGY CHANGE:
  - All 3 control-plane nodes now schedulable (no NoSchedule taints)
  - Pod distribution: ~59 on cp-1, ~21 on cp-2, ~23 on cp-3
  - Better resource utilization across cluster

ADDED HARD RULE:
  - Control-plane scheduling controlled via Terraform
  - terraform.tfvars → allow_scheduling = true/false
  - Never manual kubectl taint (Talos will revert)
  - Workflow: terraform apply → talosctl apply-config

IMPLEMENTATION:
  - Terraform: Set allow_scheduling=true for cp-2, cp-3
  - Applied via talosctl --mode no-reboot (no disruption)
  - Verified: kubectl get nodes shows no taints
This commit is contained in:
Story Crater Bot
2026-07-23 10:22:00 -07:00
parent 18602759c0
commit 8c32c16f79
+17 -5
View File
@@ -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.<node>.allow_scheduling` (true/false), then:
```bash
cd terraform
terraform fmt && terraform apply
talosctl apply-config --nodes <node-ip> --file ../cluster-config/<node>.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/