fix(worker): Send a portless :authority from the push client - #795
Conversation
|
Verified against the live mesh config and on the wire. The sidecar on a running s4s2 push worker, envoy admin on 15000 (9902 is the stats adapter, not envoy): One domain each, no port variant, no catch-all, and port matching is not ignored — so What this branch actually sends, read off the HEADERS frame of a real Before the change that authority was Tests: The three are pre-existing on
|
grpc puts the whole host:port target in :authority, so a push worker dialing task-<pool>-broker-grpc:50051 through the mesh matches no route -- HttpRoute hostnames are RFC1123 names and cannot carry a port -- and envoy's 404 comes back as UNIMPLEMENTED. Setting grpc.default_authority to the target without its port makes the worker look like the broker, which reaches its worker over a portless URL and has always matched.
3d9a265 to
c2f8850
Compare
grpc puts the whole
host:porttarget in:authority, so a push worker dialingtask-<pool>-broker-grpc:50051through the mesh matches no route — HttpRoute hostnames are RFC1123 names and cannot carry a port — and envoy's 404 comes back to the worker as UNIMPLEMENTED. That is what broke getsentry/ops#23562.Setting
grpc.default_authorityto the target without its port makes the worker look like the broker, which reaches its worker over a portless URL and has always matched. Push client only; the pull client's per-pod channels are untouched.Safe to ship on its own — with getsentry/ops#23562 reverted the workers reach the broker over its ClusterIP, nothing on that path reads
:authority, and the request signature coversmethod + bodyrather than the headers.