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

Switch to Istio native sidecars #536

Closed
mjnagel opened this issue Jul 3, 2024 · 2 comments · Fixed by #1032
Closed

Switch to Istio native sidecars #536

mjnagel opened this issue Jul 3, 2024 · 2 comments · Fixed by #1032
Assignees
Labels
enhancement New feature or request istio Issues related to istio components / resources

Comments

@mjnagel
Copy link
Contributor

mjnagel commented Jul 3, 2024

Is your feature request related to a problem? Please describe.

Currently we use istio's sidecars across all pods in the mesh. Due to existing istio issues we have also implemented a Pepr watch action to handle properly terminating sidecars for jobs. If we switch to "native" sidecars we will no longer need this action and may have some other benefits with regards to init containers accessing the network (common with things that validate dependencies that may be in cluster).

Describe the solution you'd like

Istio should be deployed with native sidecars by default (ENABLE_NATIVE_SIDECARS env on pilot). When upgrading this should be a seamless rollout - unsure if we will need to cycle all pods or something similar here (may be worth evaluating this issue first).

Definition of done:

  • Native sidecars are enabled by default in uds core
  • Sidecar termination watch is removed from pepr code
  • On an upgrade all pods are properly migrated to native sidecars
  • Documentation may need an update to ensure our k8s version pre-req is captured (this would require 1.29, i.e. non-EOL versions)

Describe alternatives you've considered

We could continue to use non-native sidecars + our pepr capability.

Additional context

This functionality in kubernetes is available in 1.28 behind a feature flag, and 1.29 by default. We should be fairly safe to enable this but should document this requirement well (maybe in our k8s/distro support page). In theory someone could use overrides to switch to non-native sidecars but they would be missing our pepr capability unless we maintain that behind a flag as well.

@mjnagel mjnagel added enhancement New feature or request istio Issues related to istio components / resources labels Jul 3, 2024
@adam-defenseunicorns
Copy link

@mjnagel
Copy link
Contributor Author

mjnagel commented Nov 6, 2024

On an upgrade all pods are properly migrated to native sidecars

This will mostly be a change to our injection/killPods logic. In particular we will want to make sure we are filtering for the istio container as an initContainer now (here). We will also likely need something extra to modify the logic around when we kill pods (here), such as an annotation on the namespace indicating whether it has been migrated to native sidecars or not.

@mjnagel mjnagel assigned mjnagel and UnicornChance and unassigned mjnagel Nov 8, 2024
@UnicornChance UnicornChance linked a pull request Nov 20, 2024 that will close this issue
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request istio Issues related to istio components / resources
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants