L7 configuration support for terminating gateways
- Dominant language
- Go
- Stars
- 30.1k
- Forks
- 4.6k
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 43
Description
#### Feature Description
Terminating gateways do not fully support L7 configuration based on service resolvers.
This is because filters that are specified in resolvers are evaluated against Connect proxies rather than the services themselves.
A workaround for this is that tags or metadata for an external service could be added to the terminating gateway's registration.
An issue with that workaround is that there could be metadata key collisions between services. For example, with a common service keys like `version` or `environment`. Different services fronted by a gateway that need to specify different versions or environments would need to have unique metadata keys like `api_version` or `api_env`.
We should look into reworking how filters are evaluated such that we filter on attributes of the actual service registrations rather than the proxy registrations in calls to the `/health/connect/:service` endpoint.
#### Use Case(s)
This change would enable things like splitting traffic between service instances that are fronted by a terminating gateway and instances that are fronted by a sidecar proxy.
Contributor guide
Assessment
This issue has not been assessed yet.