kubernetes-sigs / kubernetes-sigs/cluster-api
uninitialized taint should always be dropped
- Dominant language
- Go
- Stars
- 4.3k
- Forks
- 1.6k
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 113
Description
**Detailed Description**
https://github.com/kubernetes-sigs/cluster-api/pull/7993 introduced the `node.cluster.x-k8s.io/uninitialized:NoSchedule` taint. This taint is applied by default to the nodes when CAPBK is used as the bootstrap provider. CAPI drops this taint from the nodes after the nodes are initialized (labels are synced).
This issue is to audit and ensure that the node is dropped by CAPI when using any of the Machine/MachinePool solutions.
- [x] Machines
- [x] MachinePoll
- [ ] MachinePool Machines
[A clear and concise description of what you want to happen.]
**Anything else you would like to add:**
More context on the taint: The taint was introduced to solve the delay problem when syncing label to nodes to avoid unnecessarily scheduling workloads on wrong nodes.
Part of proposal: [Label Sync Between Machines and underlying Kubernetes Nodes](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20220927-label-sync-between-machine-and-nodes.md)
/kind feature
Contributor guide
Research direction
Read the label-sync proposal and trace the MachinePool Machines reconciliation path in Cluster API, focusing on how initialization and node taints are handled. Confirm the uninitialized NoSchedule taint is removed after labels are synced, and add or update coverage for this MachinePool case.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- infrastructure
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100