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:
@@ -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/
|
||||
|
||||
Reference in New Issue
Block a user