Node scheduling policy: default-deny via taints, allowlist kai-server #12
Labels
No labels
burndown-2026-06
coherence-core
consult
headless
interactive
P0
P1
P2
P3
P4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
coilyco-flight-deck/infrastructure#12
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally filed by @coilysiren on 2026-05-22T13:24:40Z - https://github.com/coilysiren/infrastructure/issues/277
Requirement - The k3s cluster should be allowlist / default-deny at the node level. Right now only
kai-servershould take scheduled workloads. The desktop-tower nodes (kai-desktop-tower,kai-desktop-tower-wsl) are flaky WSL2 nodes, and a workload landing on one stalls things - the SigNoz clickhouse-operator (#273) scheduled ontokai-desktop-tower-wsl, ran but never reconciled, and blocked the whole ClickHouse bringup.Current state - Both WSL nodes are now
cordoned as an interim measure. Cordon is imperative and can be lost if a node re-registers, so it is not the durable answer.Durable ask - Taint both WSL nodes
NoSchedule. A tainted node rejects any pod that does not carry a matching toleration, so the allowlist becomes "workloads that explicitly tolerate the taint."kai-serverstays untainted and is the default home for everything.Implementation options - Node taints are not cleanly a static
kubectl applymanifest in vanilla k8s (Node objects are controller-managed). Realistic shapes:--node-taintflag set in each WSL node's k3s systemd unit. Most durable - survives node re-registration natively. The infra repo already manages systemd ExecStart args.kubectl taint, plus a checked-in YAML file recording the intended taints as the source of truth. Closest thing to the "Kubernetes manifest YAML file" framing.Recommend the k3s
--node-taintflag for durability, with a checked-in taints YAML as the declared intent.Caveat - Taints are cluster-wide. The
node-exporterDaemonSet currently targets the WSL nodes (already failing there withCreateContainerError). Decide whether it gets a toleration or is allowed to stop on those nodes.Backlog burndown 2026-06-17: closing low-priority (P3/P4) to bring the open count to a manageable level. Nothing lost — reopen if this resurfaces. Batch tag:
burndown-2026-06.