-
Notifications
You must be signed in to change notification settings - Fork 39.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Promote EphemeralContainers feature to GA #111402
Conversation
Skipping CI for Draft Pull Request. |
/triage accepted |
a7fbf51
to
e7c8961
Compare
/retest |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On a cursory look, this LGTM. I'll have a closer look tomorrow, when it is not so late here :)
I'm assuming the e2e and integration tests are fine as they are today. Is that right?
👍 Thanks!
I think so. There's integration coverage for the API operations and e2e for ephemeral container creation that's part of NodeConformance. I have some additional test work lined up:
If you have more suggestions I'm happy to add follow up items. I would try to avoid blocking this PR since test freeze is later than code freeze. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This mostly LGTM. Did a more detailed pass now. I assume the questions I have asked will have the expected answer so this is probably is fine as it is :)
We should keep in mind that this should go in tandem with the validation fixes IIUC (no strong opinion if keeping them in separate PRs vs having it all in one).
func AllFeatureEnabledContainers() ContainerType { | ||
containerType := AllContainers | ||
if !utilfeature.DefaultFeatureGate.Enabled(features.EphemeralContainers) { | ||
containerType &= ^EphemeralContainers | ||
} | ||
return containerType | ||
return AllContainers |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
idem for the comment in the other definition of AllFeatureEnabledContainers()
containerType := AllContainers | ||
if !utilfeature.DefaultFeatureGate.Enabled(features.EphemeralContainers) { | ||
containerType &= ^EphemeralContainers | ||
} | ||
return containerType | ||
return AllContainers |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want to keep this function now?
Is this a function that was added back then by ephemeralContainers or is it one of these abstractions that we always had "just in case" and we want to keep it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We added the container visitor during ephemeral containers because it tipped complexity of visiting all containers over a threshold. We can retire AllFeatureEnabledContainers()
if we don't think we're ever going to add another type of container.
If we do it, I recommend decoupling from this feature graduation and do it early in the next dev cycle so we don't cause a bunch of conflicts for people racing the the merge window.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SGTM :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd probably keep the method, just in case, but agree that either way, it shouldn't be changed in this PR
/lgtm |
@dchen1107 ptal |
/lgtm |
Hi Jordan, this should be ready for you now. Thanks! /assign @liggitt |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/approve
for API changes
containerType := AllContainers | ||
if !utilfeature.DefaultFeatureGate.Enabled(features.EphemeralContainers) { | ||
containerType &= ^EphemeralContainers | ||
} | ||
return containerType | ||
return AllContainers |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd probably keep the method, just in case, but agree that either way, it shouldn't be changed in this PR
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: dchen1107, liggitt, mrunalp, verb The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@verb: |
See #111194 for an example of a detailed release note |
@sftim 👍 Thanks for the example. I've updated the release note in the details of this PR. |
- Ephemeral Containers have been promoted to GA as of Kubernetes 1.27 and this feature gate has been removed See: kubernetes/kubernetes#111402 - Having it set prevents Kind clusters from starting successfully with versions >= 1.27 Authored-by: Tim Downey <[email protected]>
- Ephemeral Containers have been promoted to GA as of Kubernetes 1.27 and this feature gate has been removed See: kubernetes/kubernetes#111402 - Having it set prevents Kind clusters from starting successfully with versions >= 1.27 Authored-by: Tim Downey <[email protected]>
What type of PR is this?
/kind feature
/sig node
/priority important-longterm
What this PR does / why we need it:
This promotes the EphemeralContainers feature to GA, updates documentation and removes feature gate checks.
Which issue(s) this PR fixes:
Fixes #111030
Special notes for your reviewer:
The graduation criteria from KEP #277 are:
validateEphemeralContainers
adds a superfluous index to ephemeral container spec pathsNotes:
Does this PR introduce a user-facing change?
Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: