Skip to content
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

Injection: enable support for automatic detection of native sidecars #49570

Closed

Conversation

howardjohn
Copy link
Member

Fixes #48794

@istio-testing
Copy link
Collaborator

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@istio-testing istio-testing added do-not-merge/work-in-progress Block merging of a PR because it isn't ready yet. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Feb 26, 2024
@istio-testing istio-testing added the needs-rebase Indicates a PR needs to be rebased before being merged label Feb 29, 2024
@howardjohn howardjohn force-pushed the injection/safe-native-sidecars branch from d311b2c to 156fe23 Compare March 5, 2024 19:55
@istio-testing istio-testing removed the needs-rebase Indicates a PR needs to be rebased before being merged label Mar 5, 2024
@howardjohn howardjohn marked this pull request as ready for review March 5, 2024 19:56
@howardjohn howardjohn requested review from a team as code owners March 5, 2024 19:56
@istio-testing istio-testing removed the do-not-merge/work-in-progress Block merging of a PR because it isn't ready yet. label Mar 5, 2024
return NativeSidecarModeNever
case "always", "true":
return NativeSidecarModeAlways
case "auto-beta":
Copy link
Contributor

@bleggett bleggett Mar 5, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you articulate why we need both auto-beta and auto-stable versus just auto?

That feels like a lot of knobs for a single feature (admittedly it's a critical one), and also I don't think it makes a lot of sense to have feature-level logic for opting-in depending on stability level - that should/will be defined elsewhere and can be implicit in auto.

(Yes I realize this means people who are using pure stable will not use this. That's probably fine?)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Eventually I think the default should be auto-stable. We should not default to beta k8s features, only stable ones IMO. So the possible one to remove is auto-beta IMO.

The benefit of auto-beta is that a lot of users do want to use beta k8s features, and its IMO pretty reasonable to. So what they get is a bit of safety in doing that, rather than just on.

Most of the complexity is in the detection anyways, beta vs stable is pretty simple

Copy link
Contributor

@bleggett bleggett Mar 5, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we just do

never, always and auto for now?

Whether auto should ignore k8s beta features or not probably should be controlled globally by e.g. @whitneygriffith's experimental/stable profiles and implicit in that (if you are in istio stable you do not get to use k8s experimental stuff, and if you are in istio experimental you do, it is not per-feature), and not at the feature level.

@howardjohn howardjohn force-pushed the injection/safe-native-sidecars branch from 156fe23 to 947ac7e Compare March 14, 2024 22:20
@howardjohn howardjohn force-pushed the injection/safe-native-sidecars branch from 947ac7e to 145935a Compare March 14, 2024 22:27
@istio-testing
Copy link
Collaborator

istio-testing commented Mar 14, 2024

@howardjohn: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
release-notes_istio 145935a link true /test release-notes
lint_istio 145935a link true /test lint

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/test-infra repository. I understand the commands that are listed here.

Comment on lines +225 to +230
switch v {
case "never", "false":
return NativeSidecarModeNever
case "always", "true":
return NativeSidecarModeAlways
case "auto-beta":
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From my perspective this is not improve UX, on the opposite it is increasing complexity

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it the auto-beta vs auto-stable? Or even auto would be too complex?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean auto-beta auto-stable, rare people can distinguish them

Copy link
Contributor

@bleggett bleggett Mar 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would rather it just be never/always/auto for this PR - whether we use k8s beta features or not should not be a per-feature decision anyway, and should be controlled elsewhere globally for all features (by stable profiles, etc etc).

@istio-policy-bot istio-policy-bot added the lifecycle/stale Indicates a PR or issue hasn't been manipulated by an Istio team member for a while label Apr 25, 2024
@istio-policy-bot
Copy link

🚧 This issue or pull request has been closed due to not having had activity from an Istio team member since 2024-03-25. If you feel this issue or pull request deserves attention, please reopen the issue. Please see this wiki page for more information. Thank you for your contributions.

Created by the issue and PR lifecycle manager.

@istio-policy-bot istio-policy-bot added the lifecycle/automatically-closed Indicates a PR or issue that has been closed automatically. label May 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lifecycle/automatically-closed Indicates a PR or issue that has been closed automatically. lifecycle/stale Indicates a PR or issue hasn't been manipulated by an Istio team member for a while size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Consider automatic ENABLE_NATIVE_SIDECARS support
5 participants