clarify support for VirtualService in waypoints#16670
clarify support for VirtualService in waypoints#16670craigbox wants to merge 8 commits intoistio:masterfrom
Conversation
| | [`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.) |
There was a problem hiding this comment.
That's tough, so there is no stable way of managing tcp traffic in ambient.
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
exportTo is also not supported, but I think @Stevenjin8's PR covers that?
There was a problem hiding this comment.
Is workloadSelector supported?
If not we could basically say "only trafficPolicy is supported"
There was a problem hiding this comment.
istio/istio#51085 isn't clear, so I'm guessing it does work
|
https://docs.google.com/document/d/1JjsPzOMJfu_evzgiRp-aJf1KDpa9ImyYrew__y5CTao/edit?tab=t.0#heading=h.8vlgwrna7yow for the broader terminology discussion |
|
I write some feedback about our Istio Ambient migration with Virtual Service: |
|
PR needs rebase. DetailsInstructions 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 |
There was a problem hiding this comment.
| ### 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. |
There was a problem hiding this comment.
| 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 |
There was a problem hiding this comment.
| #### 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. |
There was a problem hiding this comment.
| [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. |
There was a problem hiding this comment.
| 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. |
There was a problem hiding this comment.
| 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. |
There was a problem hiding this comment.
| 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. |
There was a problem hiding this comment.
| [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. |
| ### 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. |
There was a problem hiding this comment.
| ### 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 |
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.