Skip to content

Remove SeparateTaintEvictionController feature gate - #141789

Open
wasylkowski-a wants to merge 1 commit into
kubernetes:masterfrom
wasylkowski-a:remove-separate-taint-eviction-controller
Open

Remove SeparateTaintEvictionController feature gate#141789
wasylkowski-a wants to merge 1 commit into
kubernetes:masterfrom
wasylkowski-a:remove-separate-taint-eviction-controller

Conversation

@wasylkowski-a

Copy link
Copy Markdown
Contributor

What type of PR is this?

/kind cleanup
/sig scheduling

What this PR does / why we need it:

Removes the SeparateTaintEvictionController feature gate from Kubernetes. The feature gate graduated to GA in v1.34 and has completed the required 3-release version emulation deprecation window.

This PR:

  • Removes SeparateTaintEvictionController feature gate from pkg/features/kube_features.go.
  • Removes required feature gate check on newTaintEvictionControllerDescriptor in cmd/kube-controller-manager/app/core.go.
  • Removes legacy embedded taint manager in NodeLifecycleController (pkg/controller/nodelifecycle/node_lifecycle_controller.go).
  • Updates unit tests in cmd/kube-controller-manager/app/controllermanager_test.go to test standalone taint eviction controller directly without feature gating.
  • Cleans up integration tests in test/integration/node/lifecycle_test.go.
  • Updates compatibility lifecycle reference documentation (versioned_feature_list.yaml and feature_list.md).

Which issue(s) this PR fixes:

KEP: kubernetes/enhancements#3902

Special notes for your reviewer:

AI was used in preparing and verifying this change. The author carefully reviewed the code before submitting the PR.

Does this PR introduce a user-facing change?

action required: Removed the `SeparateTaintEvictionController` feature gate from `kube-controller-manager` as the separate taint eviction controller is now permanently enabled.

@kubernetes-prow kubernetes-prow Bot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. release-note-action-required Denotes a PR that introduces potentially breaking changes that require user action. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. sig/scheduling Categorizes an issue or PR as relevant to SIG Scheduling. labels Sep 2, 2026
@github-project-automation github-project-automation Bot moved this to Needs Triage in SIG Scheduling Sep 2, 2026
@kubernetes-prow

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: wasylkowski-a
Once this PR has been reviewed and has the lgtm label, please assign deads2k, sergeykanzhelev for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@kubernetes-prow kubernetes-prow Bot added area/test needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Sep 2, 2026
@kubernetes-prow

Copy link
Copy Markdown
Contributor

This issue is currently awaiting triage.

If a SIG or subproject determines this is a relevant issue, they will accept it by applying the triage/accepted label and provide further guidance.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@kubernetes-prow kubernetes-prow Bot added sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. sig/apps Categorizes an issue or PR as relevant to SIG Apps. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. sig/node Categorizes an issue or PR as relevant to SIG Node. labels Sep 2, 2026
@kubernetes-prow

Copy link
Copy Markdown
Contributor

Hi @wasylkowski-a. Thanks for your PR.

I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work.

Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@kubernetes-prow kubernetes-prow Bot added needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. sig/testing Categorizes an issue or PR as relevant to SIG Testing. labels Sep 2, 2026
@github-project-automation github-project-automation Bot moved this to Needs Triage in SIG Apps Sep 2, 2026
@wasylkowski-a

Copy link
Copy Markdown
Contributor Author

/assign @jdzikowski

@jdzikowski

Copy link
Copy Markdown
Contributor

/ok-to-test

@kubernetes-prow kubernetes-prow Bot added the ok-to-test Indicates a non-member PR verified by an org member that is safe to test. label Sep 2, 2026
@kubernetes-prow kubernetes-prow Bot removed the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Sep 2, 2026
@wasylkowski-a
wasylkowski-a force-pushed the remove-separate-taint-eviction-controller branch from f3159eb to dbbdba5 Compare September 2, 2026 08:50
@wasylkowski-a

wasylkowski-a commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

Fixed formatting.

Comment thread pkg/features/kube_features.go Outdated
Comment thread pkg/features/kube_features.go Outdated
Comment thread pkg/features/kube_features.go Outdated
Comment thread cmd/kube-controller-manager/app/controllermanager_test.go Outdated
@jdzikowski

Copy link
Copy Markdown
Contributor

/lgtm

@kubernetes-prow kubernetes-prow Bot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Sep 2, 2026
@kubernetes-prow

Copy link
Copy Markdown
Contributor

LGTM label has been added.

DetailsGit tree hash: 93477601d433e69b8cfec409582135c394feaf04

Removes the SeparateTaintEvictionController feature gate from Kubernetes.
The feature graduated to GA in v1.34 and has completed the required
3-release version emulation deprecation window.

/kind cleanup
/sig scheduling

### Summary
- Removed `SeparateTaintEvictionController` feature gate from `pkg/features/kube_features.go`.
- Removed required feature gate from `newTaintEvictionControllerDescriptor` in `cmd/kube-controller-manager/app/core.go`.
- Removed legacy embedded taint eviction controller from `NodeLifecycleController` in `pkg/controller/nodelifecycle/node_lifecycle_controller.go`.
- Removed feature gate tests from `cmd/kube-controller-manager/app/controllermanager_test.go`.
- Cleaned up integration tests in `test/integration/node/lifecycle_test.go`.
- Updated compatibility lifecycle reference files.

*AI Assistance*: Code changes, verification runs, and tests were assisted by AI.

```release-note
action required: Removed the `SeparateTaintEvictionController` feature gate from `kube-controller-manager` as the separate taint eviction controller is now permanently enabled.
```
@wasylkowski-a
wasylkowski-a force-pushed the remove-separate-taint-eviction-controller branch from dbbdba5 to 939de0e Compare September 2, 2026 09:02
@kubernetes-prow kubernetes-prow Bot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Sep 2, 2026
@kubernetes-prow
kubernetes-prow Bot requested a review from jdzikowski September 2, 2026 09:02
@pacoxu

pacoxu commented Sep 2, 2026

Copy link
Copy Markdown
Member

action required: Removed the SeparateTaintEvictionController feature gate from kube-controller-manager as the separate taint eviction controller is now permanently enabled.

The wording “the separate taint eviction controller is now permanently enabled” may be misleading. The standalone implementation is now permanent, but the controller itself can still be disabled using --controllers=-taint-eviction-controller.

A suggested release note is like below.

action required: Removed the `SeparateTaintEvictionController` feature gate from `kube-controller-manager`. Remove this gate from existing `--feature-gates` configuration before upgrading. Taint-based eviction is now permanently implemented by the standalone taint eviction controller, which can still be disabled using `--controllers=-taint-eviction-controller`.

Also, please follow up in the kubernetes/website repository’s dev-1.38 branch to mark this feature gate as removed and update any current references accordingly. Documentation for --controllers=-taint-eviction-controller should remain, as that option is still supported.

/cc @yuanchen8911 @atosatto
feature owners

@pacoxu

pacoxu commented Sep 2, 2026

Copy link
Copy Markdown
Member

/lgtm

@kubernetes-prow kubernetes-prow Bot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Sep 2, 2026
@kubernetes-prow

Copy link
Copy Markdown
Contributor

LGTM label has been added.

DetailsGit tree hash: c1303c3d11f83001f43f55e95bd1ed0f86b96329

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/test cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. lgtm "Looks good to me", indicates that a PR is ready to be merged. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. release-note-action-required Denotes a PR that introduces potentially breaking changes that require user action. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/apps Categorizes an issue or PR as relevant to SIG Apps. sig/node Categorizes an issue or PR as relevant to SIG Node. sig/scheduling Categorizes an issue or PR as relevant to SIG Scheduling. sig/testing Categorizes an issue or PR as relevant to SIG Testing. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

Status: Needs Triage
Status: Needs Triage

Development

Successfully merging this pull request may close these issues.

3 participants