Skip to content

Commit

Permalink
Backport of [API Gateway] Fix trust domain for external peered servic…
Browse files Browse the repository at this point in the history
…es in synthesis code into release/1.15.x (#17615)

* backport of commit 63e8743

* backport of commit 896f117

---------

Co-authored-by: Andrew Stucki <[email protected]>
  • Loading branch information
hc-github-team-consul-core and Andrew Stucki authored Jun 8, 2023
1 parent 692bdb6 commit de037e5
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 3 deletions.
4 changes: 4 additions & 0 deletions .changelog/17609.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
```release-note:bug
gateways: Fixed a bug in API gateways where binding a route that only targets a service imported from a peer results
in the programmed gateway having no routes.
```
15 changes: 12 additions & 3 deletions agent/proxycfg/snapshot.go
Original file line number Diff line number Diff line change
Expand Up @@ -838,14 +838,23 @@ func (c *configSnapshotAPIGateway) ToIngress(datacenter string) (configSnapshotI

func (c *configSnapshotAPIGateway) synthesizeChains(datacenter string, listener structs.APIGatewayListener, boundListener structs.BoundAPIGatewayListener) ([]structs.IngressService, structs.Upstreams, []*structs.CompiledDiscoveryChain, error) {
chains := []*structs.CompiledDiscoveryChain{}
trustDomain := ""

// We leverage the test trust domain knowing
// that the domain will get overridden if
// there is a target to something other than an
// external/peered service. If the below
// code doesn't get a trust domain due to all the
// targets being external, the chain will
// have the domain munged anyway during synthesis.
trustDomain := connect.TestTrustDomain

DOMAIN_LOOP:
for _, chain := range c.DiscoveryChain {
for _, target := range chain.Targets {
if !target.External {
trustDomain = connect.TrustDomainForTarget(*target)
if trustDomain != "" {
domain := connect.TrustDomainForTarget(*target)
if domain != "" {
trustDomain = domain
break DOMAIN_LOOP
}
}
Expand Down

0 comments on commit de037e5

Please sign in to comment.