Open hamishforbes opened 2 years ago
Hey @hamishforbes
Apologies for the extremely late reply. I wanted to follow up and clarify that this wasn't neccesarily a bug -- we currently don't expose escape hatch overrides in service-defaults. We're tracking this feature through https://github.com/hashicorp/consul/issues/12040 and in the interm we're looking at increasing the base max connections to alleviate some of the burden on operators to upkeep large amounts of replicas as a workaround.
I'll keep this open till this is resolved.
Hi, this isn't about escape hatch overrides though.
This is about the standard Upstream Config service-defaults not being applied when services are configured via prepared queries
Overview of the Issue
I'm trying to use
service-defaults
config entries to increase the Envoy sidecar Max Connection limits as documented here: https://www.consul.io/docs/connect/config-entries/service-defaultsMy upstreams are defined using prepared queries (because I need to lookup specific instances of services via tag).
UpstreamConfig defaults appear to be ignored for any upstreams defined using prepared queries rather than the plain service lookup.
Reproduction Steps
Kubernetes manifests and terraform example I used to create config entries and prepared query https://gist.github.com/hamishforbes/39aeecc466a3b314a7d628f07f005948
tl;dr: 2 upstreams on the client pod, one for
server
and one forprepared_query:test_server
The prepared query just looks for
server
services taggedtest
.The
service-defaults
entry for theclient
service setsUpstreamConfig.Defaults.Limits.MaxConnections = 2000
The upstream cluster for the prepared query does not pickup the configuration but the plain cluster does
The prepared query returns the same service as the plain lookup (snipped some output for brevity)
Consul info for both Client and Server
Consul 1.10.4 client and server
consul-k8s integration installed via Helm - v0.37.0