Skip to content

Per-pod native sidecar enablement #53452

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

Closed
dwj300 opened this issue Oct 5, 2024 · 6 comments · Fixed by #53490
Closed

Per-pod native sidecar enablement #53452

dwj300 opened this issue Oct 5, 2024 · 6 comments · Fixed by #53490

Comments

@dwj300
Copy link
Member

dwj300 commented Oct 5, 2024

(This is used to request new product features, please visit https://github.com/istio/istio/discussions for questions on using Istio)

Describe the feature request
We’d like the ability to control which pods use native sidecars, as we run a multi-cluster setup, and not all clusters are running new-enough kubernetes (1.28). Ideally this would be an annotation on the pod spec.

Describe alternatives you've considered
Waiting until all of our workload clusters are running k8s 1.28
Affected product area (please put an X in all that apply)

[ ] Ambient
[ ] Docs
[ ] Dual Stack
[x] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

Affected features (please put an X in all that apply)

[ ] Multi Cluster
[ ] Virtual Machine
[ ] Multi Control Plane

Additional context

@howardjohn
Copy link
Member

howardjohn commented Oct 7, 2024

#48794 could also solve your probably in a different manner. But per-pod is probably also useful

edit: actually not quite, only in some scenarios which probably don't apply

@dwj300
Copy link
Member Author

dwj300 commented Oct 7, 2024

I think there are (at least) two somewhat natural options for said per-pod enablement (for arguments sake, let's call it injectNativeSidecar):

  1. Add it to proxyConfig, similar to HoldApplicationUntilProxyStarts
  2. Create a new annotation, similar to sidecar.istio.io/rewriteAppHTTPProbers

Do you have a strong preference between them? I have a slight preference towards the annotation, as proxyConfig is already somewhat of a pain to merge in our tooling, but if required would be fine.

@howardjohn
Copy link
Member

My current assumption is native sidecars are going to something that we want ~universally, and we just have some transition pain due to versions. Based on that, a more temporary solution (annotation) seems appropriate. I would call it sidecar.istio.io/native-sidecar: true/false perhaps (the 'sidecar' bit is repeated which is a bit awkward, but 'native' on its own is odd as well).

dwj300 added a commit to dwj300/istio that referenced this issue Oct 9, 2024
Fixes istio#53452.

Change-Id: I2336b597b3282bef223b44d5290a602be06b2264
@dwj300
Copy link
Member Author

dwj300 commented Oct 10, 2024

note to self, use nativeSidecar instead of native-sidecar

dwj300 added a commit to airbnb/istio that referenced this issue Oct 10, 2024
Fixes istio#53452.

Change-Id: I2336b597b3282bef223b44d5290a602be06b2264
dwj300 added a commit to dwj300/istio that referenced this issue Oct 15, 2024
dwj300 added a commit to dwj300/istio that referenced this issue Oct 18, 2024
Fixes istio#53452.

Change-Id: I28303864631b54215e534f00840005df288bcfc7
airbnb-gerrit pushed a commit to airbnb/istio that referenced this issue Oct 23, 2024
@AndresPinerosZen
Copy link

Even if native sidecars are going to be most likely something enabled on the whole cluster long-term, it's important to allow people to enable a few pods initially so they can test the stability. Keep in mind that this is still a beta feature of K8s and it is risky to set the whole cluster without previous testing.

@howardjohn
Copy link
Member

Even if native sidecars are going to be most likely something enabled on the whole cluster long-term, it's important to allow people to enable a few pods initially so they can test the stability. Keep in mind that this is still a beta feature of K8s and it is risky to set the whole cluster without previous testing.

This was implemented in #53490 so you should be able to do this.

FWIW, its not easy but you can always test out global settings like this with Istio canary installs as well.

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

Successfully merging a pull request may close this issue.

4 participants