Fix virtual services being included in intention topology as downstreams. (#17099)
This commit is contained in:
parent
2409c32e20
commit
136adf52da
|
@ -1079,7 +1079,11 @@ func (s *Store) intentionTopologyTxn(
|
|||
}
|
||||
addSvcs(tempServices)
|
||||
|
||||
if !downstreams {
|
||||
// Query the virtual ip table as well to include virtual services that don't have a registered instance yet.
|
||||
// We only need to do this for upstreams currently, so that tproxy can find which discovery chains should be
|
||||
// contacted for failover scenarios. Virtual services technically don't need to be considered as downstreams,
|
||||
// because they will take on the identity of the calling service, rather than the chain itself.
|
||||
vipIndex, vipServices, err := servicesVirtualIPsTxn(tx)
|
||||
if err != nil {
|
||||
return index, nil, fmt.Errorf("failed to list service virtual IPs: %v", err)
|
||||
|
@ -1090,6 +1094,7 @@ func (s *Store) intentionTopologyTxn(
|
|||
if vipIndex > index {
|
||||
index = vipIndex
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// destinations can only ever be upstream, since they are only allowed as intention destination.
|
||||
index, tempServices, err = serviceNamesOfKindTxn(tx, ws, structs.ServiceKindDestination, *wildcardMeta)
|
||||
|
|
Loading…
Reference in New Issue