diff --git a/agent/proxycfg/testing_upstreams.go b/agent/proxycfg/testing_upstreams.go index 4a99bb023b..f9b77c4d62 100644 --- a/agent/proxycfg/testing_upstreams.go +++ b/agent/proxycfg/testing_upstreams.go @@ -13,7 +13,6 @@ import ( "github.com/hashicorp/consul/agent/connect" "github.com/hashicorp/consul/agent/consul/discoverychain" "github.com/hashicorp/consul/agent/structs" - "github.com/hashicorp/consul/proto/private/pbcommon" "github.com/hashicorp/consul/proto/private/pbpeering" ) @@ -100,60 +99,6 @@ func setupTestVariationConfigEntriesAndSnapshot( Nodes: TestGatewayNodesDC2(t), }, }) - case "order-by-locality-failover": - cluster1UID := UpstreamID{ - Name: "db", - Peer: "cluster-01", - EnterpriseMeta: acl.NewEnterpriseMetaWithPartition(dbUID.PartitionOrDefault(), ""), - } - cluster2UID := UpstreamID{ - Name: "db", - Peer: "cluster-02", - EnterpriseMeta: acl.NewEnterpriseMetaWithPartition(dbUID.PartitionOrDefault(), ""), - } - chainID := makeChainID(structs.DiscoveryTargetOpts{Service: "db-v2"}) - events = append(events, - UpdateEvent{ - CorrelationID: "upstream-target:" + chainID + ":" + dbUID.String(), - Result: &structs.IndexedCheckServiceNodes{ - Nodes: TestUpstreamNodesAlternate(t), - }, - }, - UpdateEvent{ - CorrelationID: "peer-trust-bundle:cluster-01", - Result: &pbpeering.TrustBundleReadResponse{ - Bundle: &pbpeering.PeeringTrustBundle{ - PeerName: "peer1", - TrustDomain: "peer1.domain", - ExportedPartition: "peer1ap", - RootPEMs: []string{"peer1-root-1"}, - }, - }, - }, - UpdateEvent{ - CorrelationID: "peer-trust-bundle:cluster-02", - Result: &pbpeering.TrustBundleReadResponse{ - Bundle: &pbpeering.PeeringTrustBundle{ - PeerName: "peer2", - TrustDomain: "peer2.domain", - ExportedPartition: "peer2ap", - RootPEMs: []string{"peer2-root-2"}, - }, - }, - }, - UpdateEvent{ - CorrelationID: "upstream-peer:" + cluster1UID.String(), - Result: &structs.IndexedCheckServiceNodes{ - Nodes: structs.CheckServiceNodes{structs.TestCheckNodeServiceWithNameInPeer(t, "db", "dc1", "cluster-01", "10.40.1.1", false, cluster1UID.EnterpriseMeta)}, - }, - }, - UpdateEvent{ - CorrelationID: "upstream-peer:" + cluster2UID.String(), - Result: &structs.IndexedCheckServiceNodes{ - Nodes: structs.CheckServiceNodes{structs.TestCheckNodeServiceWithNameInPeer(t, "db", "dc2", "cluster-02", "10.40.1.2", false, cluster2UID.EnterpriseMeta)}, - }, - }, - ) case "failover-to-cluster-peer": uid := UpstreamID{ Name: "db", @@ -312,8 +257,8 @@ func setupTestVariationConfigEntriesAndSnapshot( case "lb-resolver": case "register-to-terminating-gateway": default: - t.Fatalf("unexpected variation: %q", variation) - return nil + extraEvents := extraUpdateEvents(t, variation, dbUID) + events = append(events, extraEvents...) } return events @@ -433,49 +378,6 @@ func setupTestVariationDiscoveryChain( }, }, ) - case "order-by-locality-failover": - peers = append(peers, - &pbpeering.Peering{ - Name: "cluster-01", - Remote: &pbpeering.RemoteInfo{ - Locality: &pbcommon.Locality{Region: "us-west-1"}, - }, - }, - &pbpeering.Peering{ - Name: "cluster-02", - Remote: &pbpeering.RemoteInfo{ - Locality: &pbcommon.Locality{Region: "us-west-2"}, - }, - }) - cluster1Target := structs.ServiceResolverFailoverTarget{ - Peer: "cluster-01", - } - cluster2Target := structs.ServiceResolverFailoverTarget{ - Peer: "cluster-02", - } - - entries = append(entries, - &structs.ServiceResolverConfigEntry{ - Kind: structs.ServiceResolver, - Name: "db", - EnterpriseMeta: entMeta, - ConnectTimeout: 33 * time.Second, - RequestTimeout: 33 * time.Second, - Failover: map[string]structs.ServiceResolverFailover{ - "*": { - Policy: &structs.ServiceResolverFailoverPolicy{ - Mode: "order-by-locality", - Regions: []string{"us-west-2", "us-west-1"}, - }, - Targets: []structs.ServiceResolverFailoverTarget{ - cluster1Target, - cluster2Target, - {Service: "db-v2"}, - }, - }, - }, - }, - ) case "redirect-to-cluster-peer": redirect := &structs.ServiceResolverRedirect{ Peer: "cluster-01", @@ -1024,8 +926,10 @@ func setupTestVariationDiscoveryChain( }, ) default: - t.Fatalf("unexpected variation: %q", variation) - return nil + e, p := extraDiscoChainConfig(t, variation, entMeta) + + entries = append(entries, e...) + peers = append(peers, p...) } if len(additionalEntries) > 0 { diff --git a/agent/proxycfg/testing_upstreams_oss.go b/agent/proxycfg/testing_upstreams_oss.go new file mode 100644 index 0000000000..3b8e22d0bd --- /dev/null +++ b/agent/proxycfg/testing_upstreams_oss.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +//go:build !consulent +// +build !consulent + +package proxycfg + +import ( + "github.com/mitchellh/go-testing-interface" + + "github.com/hashicorp/consul/acl" + "github.com/hashicorp/consul/agent/structs" + "github.com/hashicorp/consul/proto/private/pbpeering" +) + +func extraDiscoChainConfig(t testing.T, variation string, entMeta acl.EnterpriseMeta) ([]structs.ConfigEntry, []*pbpeering.Peering) { + t.Fatalf("unexpected variation: %q", variation) + return nil, nil +} + +func extraUpdateEvents(t testing.T, variation string, dbUID UpstreamID) []UpdateEvent { + t.Fatalf("unexpected variation: %q", variation) + return nil +}