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

Add service_protocol field to Sidecar API #3452

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

wtzhang23
Copy link

@wtzhang23 wtzhang23 commented Mar 4, 2025

Istio supports Ingress Sidecar Termination, which allows configuring sidecars to terminate using certs provisioned elsewhere given that the ENABLE_TLS_ON_SIDECAR_INGRESS feature flag is set to true. This helps new users of Istio take advantage of Istio features such as inbound stats collection and injected EnvoyFilters while migrating their infrastructure stacks over the span of multiple years. Note that migration cannot be accelerated as it requires onboarding every client, and we have many services that have a high fan-in count (e.g. configuration services, facades over user databases).

However, the current implementation only supports passing traffic to the service over HTTP/1.1. As gRPC and other HTTP2-based protocols gain popularity, this means that users cannot use this feature out-of-the-box. EnvoyFilters can be used to patch this.

This PR proposes an ergonomic change which allows specifying the service_protocol that differs from the protocol specified in the sidecar port. The following changes (original closed PR) show how this would be implemented:

  • If blank, continue as was before
  • If the sidecar protocol is HTTPS, allow service_protocol to be either http or http2
  • If the sidecar protocol is TLS, allow service_protocol to be a TCP protocol (e.g. Redis)
  • Else, the sidecar protocol must match the sidecar port protocol if specified.

@wtzhang23 wtzhang23 requested a review from a team as a code owner March 4, 2025 15:05
@istio-policy-bot
Copy link

😊 Welcome @wtzhang23! This is either your first contribution to the Istio api repo, or it's been
a while since you've been here.

You can learn more about the Istio working groups, Code of Conduct, and contribution guidelines
by referring to Contributing to Istio.

Thanks for contributing!

Courtesy of your friendly welcome wagon.

@istio-testing istio-testing added the size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. label Mar 4, 2025
@istio-testing
Copy link
Collaborator

Hi @wtzhang23. Thanks for your PR.

I'm waiting for a istio 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.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs-ok-to-test size/XS Denotes a PR that changes 0-9 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants