hashicorp / hashicorp/consul

L7 configuration support for terminating gateways

Open
#8,196 3 comments 5 reactions 0 assignees View on GitHub
theme/connect theme/terminating-gw
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.