From 8c32c16f79649fd10eb0655d36f94b5639907475 Mon Sep 17 00:00:00 2001 From: Story Crater Bot <19826264+Riotpiaole@users.noreply.github.com> Date: Thu, 23 Jul 2026 10:22:00 -0700 Subject: [PATCH] docs(CLAUDE.md): update scheduling topology - all 3 nodes now schedulable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- CLAUDE.md | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) 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/