mirror of https://github.com/hashicorp/consul
WIP
parent
79eadd1afd
commit
d269c63a99
|
@ -1020,48 +1020,47 @@ func (suite *xdsControllerTestSuite) TestBuildExplicitDestinations() {
|
|||
//get service data
|
||||
serviceData := &pbcatalog.Service{}
|
||||
var vp uint32 = 7000
|
||||
svcNames := map[string]map[string]string
|
||||
requiredEps := make(map[string]*pbproxystate.EndpointRef)
|
||||
|
||||
// get service name and ports
|
||||
for name := range pst.RequiredEndpoints {
|
||||
for name := range pst.ProxyState.Clusters {
|
||||
if name == "null_route_cluster" {
|
||||
continue
|
||||
}
|
||||
vp++
|
||||
nameSplit := strings.Split(name, ".")
|
||||
port := nameSplit[0]
|
||||
svcNames[nameSplit[1]] = name
|
||||
svcName := nameSplit[1]
|
||||
serviceData.Ports = append(serviceData.Ports, &pbcatalog.ServicePort{
|
||||
TargetPort: port,
|
||||
VirtualPort: vp,
|
||||
Protocol: pbcatalog.Protocol_PROTOCOL_TCP,
|
||||
})
|
||||
}
|
||||
|
||||
svc := resourcetest.Resource(pbcatalog.ServiceType, svcName).
|
||||
WithData(suite.T(), &pbcatalog.Service{}).
|
||||
Write(suite.T(), suite.client)
|
||||
svc := resourcetest.Resource(pbcatalog.ServiceType, svcName).
|
||||
WithData(suite.T(), &pbcatalog.Service{}).
|
||||
Write(suite.T(), suite.client)
|
||||
|
||||
eps := resourcetest.Resource(pbcatalog.ServiceEndpointsType, svcName).
|
||||
WithData(suite.T(), &pbcatalog.ServiceEndpoints{Endpoints: []*pbcatalog.Endpoint{
|
||||
{
|
||||
Ports: map[string]*pbcatalog.WorkloadPort{
|
||||
"mesh": {
|
||||
Port: 20000,
|
||||
Protocol: pbcatalog.Protocol_PROTOCOL_MESH,
|
||||
eps := resourcetest.Resource(pbcatalog.ServiceEndpointsType, svcName).
|
||||
WithData(suite.T(), &pbcatalog.ServiceEndpoints{Endpoints: []*pbcatalog.Endpoint{
|
||||
{
|
||||
Ports: map[string]*pbcatalog.WorkloadPort{
|
||||
"mesh": {
|
||||
Port: 20000,
|
||||
Protocol: pbcatalog.Protocol_PROTOCOL_MESH,
|
||||
},
|
||||
},
|
||||
Addresses: []*pbcatalog.WorkloadAddress{
|
||||
{
|
||||
Host: "10.1.1.1",
|
||||
Ports: []string{"mesh"},
|
||||
},
|
||||
},
|
||||
},
|
||||
Addresses: []*pbcatalog.WorkloadAddress{
|
||||
{
|
||||
Host: "10.1.1.1",
|
||||
Ports: []string{"mesh"},
|
||||
},
|
||||
},
|
||||
},
|
||||
}}).
|
||||
WithOwner(svc.Id).
|
||||
Write(suite.T(), suite.client)
|
||||
//
|
||||
requiredEps := make(map[string]*pbproxystate.EndpointRef)
|
||||
for epName := range pst.RequiredEndpoints {
|
||||
requiredEps[epName] = &pbproxystate.EndpointRef{
|
||||
}}).
|
||||
WithOwner(svc.Id).
|
||||
Write(suite.T(), suite.client)
|
||||
requiredEps[name] = &pbproxystate.EndpointRef{
|
||||
Id: eps.Id,
|
||||
Port: "mesh",
|
||||
}
|
||||
|
@ -1093,7 +1092,9 @@ func (suite *xdsControllerTestSuite) TestBuildExplicitDestinations() {
|
|||
|
||||
require.NotNil(suite.T(), proxyStateTemplate)
|
||||
|
||||
actual := prototest.ProtoToJSON(suite.T(), proxyStateTemplate.Data)
|
||||
reconciledPS := suite.updater.Get(proxyStateTemplate.Id.Name)
|
||||
actual := prototest.ProtoToJSON(suite.T(), reconciledPS)
|
||||
|
||||
expected := golden.Get(suite.T(), actual, name+".golden")
|
||||
|
||||
require.JSONEq(suite.T(), expected, actual)
|
||||
|
|
|
@ -1,162 +1,114 @@
|
|||
{
|
||||
"proxyState": {
|
||||
"clusters": {
|
||||
"null_route_cluster": {
|
||||
"endpointGroup": {
|
||||
"static": {
|
||||
"config": {
|
||||
"connectTimeout": "10s"
|
||||
}
|
||||
"clusters": {
|
||||
"null_route_cluster": {
|
||||
"endpointGroup": {
|
||||
"static": {
|
||||
"config": {
|
||||
"connectTimeout": "10s"
|
||||
}
|
||||
},
|
||||
"name": "null_route_cluster"
|
||||
},
|
||||
"tcp.api-1.default.dc1.internal.foo.consul": {
|
||||
"altStatName": "tcp.api-1.default.dc1.internal.foo.consul",
|
||||
"endpointGroup": {
|
||||
"dynamic": {
|
||||
"config": {
|
||||
"connectTimeout": "5s",
|
||||
"disablePanicThreshold": true
|
||||
},
|
||||
"outboundTls": {
|
||||
"alpnProtocols": [
|
||||
"consul~tcp"
|
||||
],
|
||||
"outboundMesh": {
|
||||
"identityKey": "test-identity",
|
||||
"sni": "api-1.default.dc1.internal.foo.consul",
|
||||
"validationContext": {
|
||||
"spiffeIds": [
|
||||
"spiffe://foo.consul/ap/default/ns/default/identity/api1-identity"
|
||||
],
|
||||
"trustBundlePeerNameKey": "local"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "tcp.api-1.default.dc1.internal.foo.consul"
|
||||
},
|
||||
"tcp.api-2.default.dc1.internal.foo.consul": {
|
||||
"altStatName": "tcp.api-2.default.dc1.internal.foo.consul",
|
||||
"endpointGroup": {
|
||||
"dynamic": {
|
||||
"config": {
|
||||
"connectTimeout": "5s",
|
||||
"disablePanicThreshold": true
|
||||
},
|
||||
"outboundTls": {
|
||||
"alpnProtocols": [
|
||||
"consul~tcp"
|
||||
],
|
||||
"outboundMesh": {
|
||||
"identityKey": "test-identity",
|
||||
"sni": "api-2.default.dc1.internal.foo.consul",
|
||||
"validationContext": {
|
||||
"spiffeIds": [
|
||||
"spiffe://foo.consul/ap/default/ns/default/identity/api2-identity"
|
||||
],
|
||||
"trustBundlePeerNameKey": "local"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "tcp.api-2.default.dc1.internal.foo.consul"
|
||||
}
|
||||
},
|
||||
"identity": {
|
||||
"name": "test-identity",
|
||||
"tenancy": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"peerName": "local"
|
||||
},
|
||||
"type": {
|
||||
"group": "auth",
|
||||
"groupVersion": "v2beta1",
|
||||
"kind": "WorkloadIdentity"
|
||||
}
|
||||
},
|
||||
"listeners": [
|
||||
{
|
||||
"direction": "DIRECTION_OUTBOUND",
|
||||
"hostPort": {
|
||||
"host": "1.1.1.1",
|
||||
"port": 1234
|
||||
},
|
||||
"name": "default/local/default/api-1:tcp:1.1.1.1:1234",
|
||||
"routers": [
|
||||
{
|
||||
"l4": {
|
||||
"statPrefix": "upstream.tcp.api-1.default.default.dc1",
|
||||
"weightedClusters": {
|
||||
"clusters": [
|
||||
{
|
||||
"name": "tcp.api-2.default.dc1.internal.foo.consul",
|
||||
"weight": 60
|
||||
},
|
||||
{
|
||||
"name": "tcp.api-1.default.dc1.internal.foo.consul",
|
||||
"weight": 40
|
||||
},
|
||||
{
|
||||
"name": "null_route_cluster",
|
||||
"weight": 10
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"requiredEndpoints": {
|
||||
"tcp.api-1.default.dc1.internal.foo.consul": {
|
||||
"id": {
|
||||
"name": "api-1",
|
||||
"tenancy": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"peerName": "local"
|
||||
},
|
||||
"type": {
|
||||
"group": "catalog",
|
||||
"groupVersion": "v2beta1",
|
||||
"kind": "ServiceEndpoints"
|
||||
}
|
||||
},
|
||||
"port": "mesh"
|
||||
"name": "null_route_cluster"
|
||||
},
|
||||
"tcp.api-1.default.dc1.internal.foo.consul": {
|
||||
"altStatName": "tcp.api-1.default.dc1.internal.foo.consul",
|
||||
"endpointGroup": {
|
||||
"dynamic": {
|
||||
"config": {
|
||||
"connectTimeout": "5s",
|
||||
"disablePanicThreshold": true
|
||||
},
|
||||
"outboundTls": {
|
||||
"alpnProtocols": [
|
||||
"consul~tcp"
|
||||
],
|
||||
"outboundMesh": {
|
||||
"identityKey": "test-identity",
|
||||
"sni": "api-1.default.dc1.internal.foo.consul",
|
||||
"validationContext": {
|
||||
"spiffeIds": [
|
||||
"spiffe://foo.consul/ap/default/ns/default/identity/api1-identity"
|
||||
],
|
||||
"trustBundlePeerNameKey": "local"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "tcp.api-1.default.dc1.internal.foo.consul"
|
||||
},
|
||||
"tcp.api-2.default.dc1.internal.foo.consul": {
|
||||
"id": {
|
||||
"name": "api-2",
|
||||
"tenancy": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"peerName": "local"
|
||||
},
|
||||
"type": {
|
||||
"group": "catalog",
|
||||
"groupVersion": "v2beta1",
|
||||
"kind": "ServiceEndpoints"
|
||||
"altStatName": "tcp.api-2.default.dc1.internal.foo.consul",
|
||||
"endpointGroup": {
|
||||
"dynamic": {
|
||||
"config": {
|
||||
"connectTimeout": "5s",
|
||||
"disablePanicThreshold": true
|
||||
},
|
||||
"outboundTls": {
|
||||
"alpnProtocols": [
|
||||
"consul~tcp"
|
||||
],
|
||||
"outboundMesh": {
|
||||
"identityKey": "test-identity",
|
||||
"sni": "api-2.default.dc1.internal.foo.consul",
|
||||
"validationContext": {
|
||||
"spiffeIds": [
|
||||
"spiffe://foo.consul/ap/default/ns/default/identity/api2-identity"
|
||||
],
|
||||
"trustBundlePeerNameKey": "local"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"port": "mesh"
|
||||
"name": "tcp.api-2.default.dc1.internal.foo.consul"
|
||||
}
|
||||
},
|
||||
"requiredLeafCertificates": {
|
||||
"test-identity": {
|
||||
"name": "test-identity",
|
||||
"identity": {
|
||||
"name": "test-identity",
|
||||
"tenancy": {
|
||||
"namespace": "default",
|
||||
"partition": "default"
|
||||
"partition": "default",
|
||||
"peerName": "local"
|
||||
},
|
||||
"type": {
|
||||
"group": "auth",
|
||||
"groupVersion": "v2beta1",
|
||||
"kind": "WorkloadIdentity"
|
||||
}
|
||||
},
|
||||
"requiredTrustBundles": {
|
||||
"local": {
|
||||
"peer": "local"
|
||||
"listeners": [
|
||||
{
|
||||
"direction": "DIRECTION_OUTBOUND",
|
||||
"hostPort": {
|
||||
"host": "1.1.1.1",
|
||||
"port": 1234
|
||||
},
|
||||
"name": "default/local/default/api-1:tcp:1.1.1.1:1234",
|
||||
"routers": [
|
||||
{
|
||||
"l4": {
|
||||
"statPrefix": "upstream.tcp.api-1.default.default.dc1",
|
||||
"weightedClusters": {
|
||||
"clusters": [
|
||||
{
|
||||
"name": "tcp.api-2.default.dc1.internal.foo.consul",
|
||||
"weight": 60
|
||||
},
|
||||
{
|
||||
"name": "tcp.api-1.default.dc1.internal.foo.consul",
|
||||
"weight": 40
|
||||
},
|
||||
{
|
||||
"name": "null_route_cluster",
|
||||
"weight": 10
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
Loading…
Reference in New Issue