kubernetes-sigs / kubernetes-sigs/cluster-api

uninitialized taint should always be dropped

Open
#8,258 16 comments 0 reactions 0 assignees View on GitHub
area/machinepool help wanted kind/feature priority/important-longterm triage/accepted
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.