Skip to content

clarify support for VirtualService in waypoints#16670

Open
craigbox wants to merge 8 commits intoistio:masterfrom
craigbox:ambient-docs
Open

clarify support for VirtualService in waypoints#16670
craigbox wants to merge 8 commits intoistio:masterfrom
craigbox:ambient-docs

Conversation

@craigbox
Copy link
Contributor

Update the ambient docs to clarify that waypoint support for VirtualService is alpha, why that is, and what that means you have to think about during a migration.

@craigbox craigbox requested a review from a team as a code owner July 15, 2025 01:27
@istio-testing istio-testing added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Jul 15, 2025
@craigbox craigbox requested review from howardjohn and linsun July 15, 2025 01:28
@craigbox craigbox added the cherrypick/release-1.26 Set this label on a PR to auto-merge it to the release-1.26 branch label Jul 28, 2025
| [`TLSRoute`](https://gateway-api.sigs.k8s.io/guides/tls) | Alpha | `parentRefs` |
| [`TCPRoute`](https://gateway-api.sigs.k8s.io/guides/tcp/) | Alpha | `parentRefs` |

(TLS and TCP routing are stable features in Istio, but support for these objects remains at Alpha because the Gateway API objects are still in the experimental channel.)
Copy link
Contributor

Choose a reason for hiding this comment

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

That's tough, so there is no stable way of managing tcp traffic in ambient.

Copy link
Contributor

Choose a reason for hiding this comment

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

Yep - and it's really because Gateway API is (rightly) hesitant about pushing those APIs forward without implementations that are championing those use-case.


Gateway API has no ability to address [subsets](/docs/reference/config/networking/destination-rule/#Subset). Instead, you must define additional Services which have a more granular selector than the original.

The other features of DestinationRule are supported.
Copy link
Contributor

Choose a reason for hiding this comment

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

exportTo is also not supported, but I think @Stevenjin8's PR covers that?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Is workloadSelector supported?
If not we could basically say "only trafficPolicy is supported"

Copy link
Contributor Author

Choose a reason for hiding this comment

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

istio/istio#51085 isn't clear, so I'm guessing it does work

@craigbox
Copy link
Contributor Author

@craigbox craigbox requested a review from dhawton August 11, 2025 22:57
@YvesEarnix
Copy link

I write some feedback about our Istio Ambient migration with Virtual Service:
Feedback on Ambient migration project

@istio-testing istio-testing added the needs-rebase Indicates a PR needs to be rebased before being merged label Feb 17, 2026
@istio-testing
Copy link
Contributor

PR needs rebase.

Details

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.


Some Istio APIs are deliberately not supported by waypoints in ambient mode. These APIs can still be used with [classic Istio Gateways](/docs/tasks/traffic-management/ingress/ingress-control/) in an ambient mesh.

### VirtualService
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
### VirtualService
### `VirtualService`


Istio's classic traffic routing API is not supported for configuring waypoint traffic routing, though it works in some circumstances.

Any use of VirtualService with waypoints is considered Alpha, and may be subject to change in future releases.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
Any use of VirtualService with waypoints is considered Alpha, and may be subject to change in future releases.
Any use of `VirtualService` with waypoints is considered Alpha, and may be subject to change in future releases.

Any use of VirtualService with waypoints is considered Alpha, and may be subject to change in future releases.
Istio's maintainers do not intend to remove this support, but will not be progressing it to [any further feature phase](/docs/releases/feature-stages).

#### Migrating from VirtualService to Gateway API routes
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
#### Migrating from VirtualService to Gateway API routes
#### Migrating from `VirtualService` to Gateway API routes


#### Migrating from VirtualService to Gateway API routes

[Only a single VirtualService](/docs/reference/config/analysis/ist0109/) can be used for mesh traffic matching a certain hostname. However, multiple Gateway API routes can refer to the same host.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
[Only a single VirtualService](/docs/reference/config/analysis/ist0109/) can be used for mesh traffic matching a certain hostname. However, multiple Gateway API routes can refer to the same host.
[Only a single `VirtualService`](/docs/reference/config/analysis/ist0109/) can be used for mesh traffic matching a certain hostname. However, multiple Gateway API routes can refer to the same host.


[Only a single VirtualService](/docs/reference/config/analysis/ist0109/) can be used for mesh traffic matching a certain hostname. However, multiple Gateway API routes can refer to the same host.

This is especially relevant when you are migrating from VirtualService to Gateway API routes. If you create one or more HTTPRoutes which specify a Service that is also in use with a VirtualService, the HTTPRoute/s will apply and the VirtualService will not.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
This is especially relevant when you are migrating from VirtualService to Gateway API routes. If you create one or more HTTPRoutes which specify a Service that is also in use with a VirtualService, the HTTPRoute/s will apply and the VirtualService will not.
This is especially relevant when you are migrating from `VirtualService` to Gateway API routes. If you create one or more `HTTPRoute` resources which specify a `Service` that is also in use with a `VirtualService`, the `HTTPRoute` will apply and the `VirtualService` will not.


#### DestinationRule subsets

Gateway API has no ability to address [subsets](/docs/reference/config/networking/destination-rule/#Subset). Instead, you must define additional Services which have a more granular selector than the original.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
Gateway API has no ability to address [subsets](/docs/reference/config/networking/destination-rule/#Subset). Instead, you must define additional Services which have a more granular selector than the original.
Gateway API has no ability to address [subsets](/docs/reference/config/networking/destination-rule/#Subset). Instead, you must define additional `Service`s which have a more granular selector than the original.


Gateway API has no ability to address [subsets](/docs/reference/config/networking/destination-rule/#Subset). Instead, you must define additional Services which have a more granular selector than the original.

The other features of DestinationRule are supported.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
The other features of DestinationRule are supported.
The other features of `DestinationRule` are supported.


#### Classic Istio Gateways

[Classic Istio Gateways](/docs/reference/config/networking/gateway/) can be used to route traffic into an ambient mesh. These can still be configured with VirtualService (i.e. where the `gateways` field refers to a named ingress gateway), alongside waypoints which are configured with Gateway API routes.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
[Classic Istio Gateways](/docs/reference/config/networking/gateway/) can be used to route traffic into an ambient mesh. These can still be configured with VirtualService (i.e. where the `gateways` field refers to a named ingress gateway), alongside waypoints which are configured with Gateway API routes.
[Classic Istio Gateways](/docs/reference/config/networking/gateway/) can be used to route traffic into an ambient mesh. These can still be configured with `VirtualService` (i.e. where the `gateways` field refers to a named ingress gateway), alongside waypoints which are configured with Gateway API routes.

Comment on lines +164 to +166
### EnvoyFilter

EnvoyFilter is Istio's break-glass API for advanced configuration of Envoy proxies. Please note that **EnvoyFilter is not currently supported for any existing Istio version with waypoint proxies**. While it may be possible to use EnvoyFilter with waypoints in limited scenarios, its use is not supported, and is actively discouraged by the maintainers. The alpha API may break in future releases as it evolves. We expect official support will be provided at a later date.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
### EnvoyFilter
EnvoyFilter is Istio's break-glass API for advanced configuration of Envoy proxies. Please note that **EnvoyFilter is not currently supported for any existing Istio version with waypoint proxies**. While it may be possible to use EnvoyFilter with waypoints in limited scenarios, its use is not supported, and is actively discouraged by the maintainers. The alpha API may break in future releases as it evolves. We expect official support will be provided at a later date.
### `EnvoyFilter`
`EnvoyFilter` is Istio's break-glass API for advanced configuration of Envoy proxies. Please note that EnvoyFilter is not currently supported for any existing Istio version with waypoint proxies. While it may be possible to use `EnvoyFilter` with waypoints in limited scenarios, its use is not supported, and is actively discouraged by the maintainers. The alpha API may break in future releases as it evolves. We expect official support will be provided at a later date.

httpbin.foo.svc.cluster.local
httpbin.org
HTTPRoute
HTTPRoutes
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
HTTPRoutes

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

Labels

cherrypick/release-1.26 Set this label on a PR to auto-merge it to the release-1.26 branch needs-rebase Indicates a PR needs to be rebased before being merged size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants