Backport of Fix namespaced peer service updates / deletes. into release/1.15.x (#17458)

* backport of commit dc995c18fd

* backport of commit 169a3279b6

---------

Co-authored-by: Derek Menteer <derek.menteer@hashicorp.com>
pull/17432/head
hc-github-team-consul-core 2023-05-24 17:55:16 -04:00 committed by GitHub
parent 58806aa0a8
commit 6c7c0cf66d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 3 deletions

3
.changelog/17456.txt Normal file
View File

@ -0,0 +1,3 @@
```release-note:bug
peering: Fix issue where modifying the list of exported services did not correctly replicate changes for services that exist in a non-default namespace.
```

View File

@ -282,9 +282,11 @@ func (s *Server) handleUpsertExportedServiceList(
exportedServices[snSidecarProxy] = struct{}{}
serviceNames = append(serviceNames, sn)
}
entMeta := structs.NodeEnterpriseMetaInPartition(partition)
_, serviceList, err := s.GetStore().ServiceList(nil, entMeta, peerName)
// Ensure we query services from all namespaces in this partition when we perform
// this query or else we may not propagate updates / deletes correctly.
entMeta := acl.NewEnterpriseMetaWithPartition(partition, acl.WildcardName)
_, serviceList, err := s.GetStore().ServiceList(nil, &entMeta, peerName)
if err != nil {
return err
}

View File

@ -1957,7 +1957,7 @@ func processResponse_ExportedServiceUpdates(
localEntMeta acl.EnterpriseMeta,
peerName string,
tests []PeeringProcessResponse_testCase,
) {
) *MutableStatus {
// create a peering in the state store
peerID := "1fabcd52-1d46-49b0-b1d8-71559aee47f5"
require.NoError(t, store.PeeringWrite(31, &pbpeering.PeeringWriteRequest{
@ -2038,6 +2038,7 @@ func processResponse_ExportedServiceUpdates(
run(t, tc)
})
}
return mst
}
func Test_processResponse_ExportedServiceUpdates(t *testing.T) {