-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Description
This issue is for tracking progress of implementation for the taints propagation proposal:
- https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20250513-propogate-taints.md
We plan to split the implementation across Cluster API v1.12 and v1.13, which is considered safe because the changes will be feature-gated.
1.12:
- Machines (@chrischdi) :
- Implement MachineSpec API changes (including validation)
- Implement Machine controller changes
- Implement unit-test coverage
- PR: ✨ taint propagation: machine related API changes, conversion and feature gate #12936
- Implement e2e-test coverage for taints (@chrischdi)
- Maybe fits into the MD Rollout test, make sure its easily portable to ClusterClass rollout test later on
- PR: 🌱 taint propagation: e2e coverage via md rollout test #12966
- Check the repository for the handling of the
NodeDrainTimeoutSecondsfield (prior art in-place propagation to Machine) and if same was applied for the Taints field.
1.13
-
We should look into numeric taints and gt/lt operator and figure out what that means for this feature (xref: KEP-5471: Extend tolerations operators kubernetes/kubernetes#134665)
- Note: This does not effect Machine Taints at all
-
CABPK: implement merging behavior
- discuss desired behavior: add to kubeadm config (which results in adding as --register-with-taints for kubelet / re-registration issue) or not
- Note: the proposed behavior was documented here https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20250513-propogate-taints.md#behavior-with-cluster-api-bootstrap-provider-kubeadms-taints-fields but there were concerns if we should do that
- discuss desired behavior: add to kubeadm config (which results in adding as --register-with-taints for kubelet / re-registration issue) or not
-
ControlPlane contract:
- PR: ✨ KCP: Implement support for machine taints #13181
- Implement ControlPlane contract changes
- Implement KCP changes to fulfill the contract
- Implement test coverage (extend the e2e used for MachineDeployments)
- Check the repository for the handling of the
NodeDrainTimeoutSecondsfield (prior art in-place propagation to Machine) and if same was applied for the Taints field.
-
topology:
-
Implement Cluster related API changes
-
Implement ClusterClass related API changes
-
Check the repository for the handling of the
NodeDrainTimeoutSecondsfield (prior art in-place propagation to Machine) and if same was applied for the Taints field.
-
Migrate e2e test coverage for taints from non-topology to topology
- PR: [WIP] ✨ topology: implement support for taints #13192
- probably fits at the existing ClusterClass rollout test
- we might want to keep the existing coverage for non-topology
-
Migrate tracking annotation names to contain a internal prefix (for labels, annotations and taints tracking)
-
Add documentation to the book below 1.11 Experimental Features (via a subpage)
Additional work:
- Cluster autoscaler to be aware of the taints field
- MachinePool: implement MachinePool controller changes
- Note: maybe should be tracked in MachinePool graduation tracking issue (edited)