consider changing how upstream overrides interact with the discovery chain compiler
- Dominant language
- Go
- Stars
- 30.1k
- Forks
- 4.6k
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 43
Description
When https://github.com/hashicorp/consul/pull/6225 was introduced to align the old mechanism for configuring some connect upstream fields with the newer discovery chain it was done by feeding 3 optional fields down into the discovery chain compiler: `OverrideProtocol`, `OverrideMeshGateway`, and `OverrideConnectTimeout`.
* `OverrideProtocol` substantially affects the compiler output, so this seems reasonable.
* `OverrideMeshGateway` slightly affects the compiler output, overriding the computed mesh gateway mode for every resolver
* `OverrideConnectTimeout` trivially affects the compiler output, just changing the value of the connect timeout on every resolver.
All 3 cause the generated CDS xDS clusters to be prefixed by a hash of the override values (to avoid incorrect sharing situations described on #6225).
It would be nice to figure out if any of these chain hacks could be done entirely _after_ compilation without too much trouble (like `OverrideConnectTimeout`).
Contributor guide
Assessment
This issue has not been assessed yet.