mirror of https://github.com/status-im/consul.git
NET-6079 - wire up sidecarproxy golden file inputs into xds controller - sources (#19241)
* NET-5397 - wire up golden tests from sidecar-proxy controller for xds controller and xdsv2 * WIP * WIP * everything matching except leafCerts. need to mock those * single port destinations working except mixed destinations * golden test input to xds controller tests for destinations * proposed fix for failover group naming errors * clean up test to use helper. * clean up test to use helper. * fix test file * add docstring for test function. * add docstring for test function. * fix linting error * fixing test after route fix merged into main * first source test works * WIP * modify all source files * source tests pass * fixing tests after bug fix in main
This commit is contained in:
parent
9417fc2867
commit
59d4962564
|
@ -1019,7 +1019,7 @@ func TestXdsController(t *testing.T) {
|
||||||
func (suite *xdsControllerTestSuite) TestReconcile_SidecarProxyGoldenFileInputs() {
|
func (suite *xdsControllerTestSuite) TestReconcile_SidecarProxyGoldenFileInputs() {
|
||||||
path := "../sidecarproxy/builder/testdata"
|
path := "../sidecarproxy/builder/testdata"
|
||||||
cases := []string{
|
cases := []string{
|
||||||
// destinations
|
// destinations - please add in alphabetical order
|
||||||
"destination/l4-single-destination-ip-port-bind-address",
|
"destination/l4-single-destination-ip-port-bind-address",
|
||||||
"destination/l4-single-destination-unix-socket-bind-address",
|
"destination/l4-single-destination-unix-socket-bind-address",
|
||||||
"destination/l4-single-implicit-destination-tproxy",
|
"destination/l4-single-implicit-destination-tproxy",
|
||||||
|
@ -1031,8 +1031,18 @@ func (suite *xdsControllerTestSuite) TestReconcile_SidecarProxyGoldenFileInputs(
|
||||||
"destination/multiport-l4-and-l7-single-implicit-destination-tproxy",
|
"destination/multiport-l4-and-l7-single-implicit-destination-tproxy",
|
||||||
"destination/multiport-l4-and-l7-single-implicit-destination-with-multiple-workloads-tproxy",
|
"destination/multiport-l4-and-l7-single-implicit-destination-with-multiple-workloads-tproxy",
|
||||||
|
|
||||||
//sources
|
//sources - please add in alphabetical order
|
||||||
|
"source/l4-multiple-workload-addresses-with-specific-ports",
|
||||||
|
"source/l4-multiple-workload-addresses-without-ports",
|
||||||
|
"source/l4-single-workload-address-without-ports",
|
||||||
|
"source/l7-expose-paths",
|
||||||
|
"source/local-and-inbound-connections",
|
||||||
|
"source/multiport-l4-multiple-workload-addresses-with-specific-ports",
|
||||||
|
"source/multiport-l4-multiple-workload-addresses-without-ports",
|
||||||
|
"source/multiport-l4-workload-with-only-mesh-port",
|
||||||
|
"source/multiport-l7-multiple-workload-addresses-with-specific-ports",
|
||||||
|
"source/multiport-l7-multiple-workload-addresses-without-ports",
|
||||||
|
"source/multiport-l7-multiple-workload-addresses-without-ports",
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, name := range cases {
|
for _, name := range cases {
|
||||||
|
|
|
@ -0,0 +1,101 @@
|
||||||
|
{
|
||||||
|
"clusters": {
|
||||||
|
"local_app:port1": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "local_app:port1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"endpoints": {
|
||||||
|
"local_app:port1": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 8080
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"identity": {
|
||||||
|
"name": "test-identity",
|
||||||
|
"tenancy": {
|
||||||
|
"namespace": "default",
|
||||||
|
"partition": "default",
|
||||||
|
"peerName": "local"
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"group": "auth",
|
||||||
|
"groupVersion": "v2beta1",
|
||||||
|
"kind": "WorkloadIdentity"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"listeners": [
|
||||||
|
{
|
||||||
|
"capabilities": [
|
||||||
|
"CAPABILITY_L4_TLS_INSPECTION"
|
||||||
|
],
|
||||||
|
"direction": "DIRECTION_INBOUND",
|
||||||
|
"hostPort": {
|
||||||
|
"host": "10.0.0.2",
|
||||||
|
"port": 20000
|
||||||
|
},
|
||||||
|
"name": "public_listener",
|
||||||
|
"routers": [
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l4": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:port1"
|
||||||
|
},
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"trafficPermissions": {
|
||||||
|
"allowPermissions": [
|
||||||
|
{
|
||||||
|
"principals": [
|
||||||
|
{
|
||||||
|
"spiffe": {
|
||||||
|
"regex": "^spiffe://foo.consul/ap/default/ns/default/identity/foo$"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~port1"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"trustBundles": {
|
||||||
|
"local": {
|
||||||
|
"roots": [
|
||||||
|
"some-root",
|
||||||
|
"some-other-root"
|
||||||
|
],
|
||||||
|
"trustDomain": "some-trust-domain"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"leafCertificates": {
|
||||||
|
"test-identity": {
|
||||||
|
"cert": "-----BEGIN CERTIFICATE-----\nMIICDjCCAbWgAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDEwlUZXN0IENB\nIDEwHhcNMjMxMDE2MTYxMzI5WhcNMjMxMDE2MTYyMzI5WjAAMFkwEwYHKoZIzj0C\nAQYIKoZIzj0DAQcDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9\nta/bGT+5orZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJaOCAQowggEGMA4GA1UdDwEB\n/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/\nBAIwADApBgNVHQ4EIgQg3ogXVz9cqaK2B6xdiJYMa5NtT0KkYv7BA2dR7h9EcwUw\nKwYDVR0jBCQwIoAgq+C1mPlPoGa4lt7sSft1goN5qPGyBIB/3mUHJZKSFY8wbwYD\nVR0RAQH/BGUwY4Zhc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9hcC9kZWZhdWx0L25zL2RlZmF1bHQvaWRlbnRpdHkv\ndGVzdC1pZGVudGl0eTAKBggqhkjOPQQDAgNHADBEAiB6L+t5bzRrBPhiQYNeA7fF\nUCuLWrdjW4Xbv3SLg0IKMgIgfRC5hEx+DqzQxTCP4sexX3hVWMjKoWmHdwiUcg+K\n/IE=\n-----END CERTIFICATE-----\n",
|
||||||
|
"key": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIFIFkTIL1iUV4O/RpveVHzHs7ZzhSkvYIzbdXDttz9EooAoGCCqGSM49\nAwEHoUQDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9ta/bGT+5\norZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJQ==\n-----END EC PRIVATE KEY-----\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,89 @@
|
||||||
|
{
|
||||||
|
"clusters": {
|
||||||
|
"local_app:port1": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "local_app:port1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"endpoints": {
|
||||||
|
"local_app:port1": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 8080
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"identity": {
|
||||||
|
"name": "test-identity",
|
||||||
|
"tenancy": {
|
||||||
|
"namespace": "default",
|
||||||
|
"partition": "default",
|
||||||
|
"peerName": "local"
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"group": "auth",
|
||||||
|
"groupVersion": "v2beta1",
|
||||||
|
"kind": "WorkloadIdentity"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"listeners": [
|
||||||
|
{
|
||||||
|
"capabilities": [
|
||||||
|
"CAPABILITY_L4_TLS_INSPECTION"
|
||||||
|
],
|
||||||
|
"direction": "DIRECTION_INBOUND",
|
||||||
|
"hostPort": {
|
||||||
|
"host": "10.0.0.1",
|
||||||
|
"port": 20000
|
||||||
|
},
|
||||||
|
"name": "public_listener",
|
||||||
|
"routers": [
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l4": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:port1"
|
||||||
|
},
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"trafficPermissions": {}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~port1"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"trustBundles": {
|
||||||
|
"local": {
|
||||||
|
"roots": [
|
||||||
|
"some-root",
|
||||||
|
"some-other-root"
|
||||||
|
],
|
||||||
|
"trustDomain": "some-trust-domain"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"leafCertificates": {
|
||||||
|
"test-identity": {
|
||||||
|
"cert": "-----BEGIN CERTIFICATE-----\nMIICDjCCAbWgAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDEwlUZXN0IENB\nIDEwHhcNMjMxMDE2MTYxMzI5WhcNMjMxMDE2MTYyMzI5WjAAMFkwEwYHKoZIzj0C\nAQYIKoZIzj0DAQcDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9\nta/bGT+5orZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJaOCAQowggEGMA4GA1UdDwEB\n/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/\nBAIwADApBgNVHQ4EIgQg3ogXVz9cqaK2B6xdiJYMa5NtT0KkYv7BA2dR7h9EcwUw\nKwYDVR0jBCQwIoAgq+C1mPlPoGa4lt7sSft1goN5qPGyBIB/3mUHJZKSFY8wbwYD\nVR0RAQH/BGUwY4Zhc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9hcC9kZWZhdWx0L25zL2RlZmF1bHQvaWRlbnRpdHkv\ndGVzdC1pZGVudGl0eTAKBggqhkjOPQQDAgNHADBEAiB6L+t5bzRrBPhiQYNeA7fF\nUCuLWrdjW4Xbv3SLg0IKMgIgfRC5hEx+DqzQxTCP4sexX3hVWMjKoWmHdwiUcg+K\n/IE=\n-----END CERTIFICATE-----\n",
|
||||||
|
"key": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIFIFkTIL1iUV4O/RpveVHzHs7ZzhSkvYIzbdXDttz9EooAoGCCqGSM49\nAwEHoUQDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9ta/bGT+5\norZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJQ==\n-----END EC PRIVATE KEY-----\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,89 @@
|
||||||
|
{
|
||||||
|
"clusters": {
|
||||||
|
"local_app:port1": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "local_app:port1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"endpoints": {
|
||||||
|
"local_app:port1": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 8080
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"identity": {
|
||||||
|
"name": "test-identity",
|
||||||
|
"tenancy": {
|
||||||
|
"namespace": "default",
|
||||||
|
"partition": "default",
|
||||||
|
"peerName": "local"
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"group": "auth",
|
||||||
|
"groupVersion": "v2beta1",
|
||||||
|
"kind": "WorkloadIdentity"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"listeners": [
|
||||||
|
{
|
||||||
|
"capabilities": [
|
||||||
|
"CAPABILITY_L4_TLS_INSPECTION"
|
||||||
|
],
|
||||||
|
"direction": "DIRECTION_INBOUND",
|
||||||
|
"hostPort": {
|
||||||
|
"host": "10.0.0.1",
|
||||||
|
"port": 20000
|
||||||
|
},
|
||||||
|
"name": "public_listener",
|
||||||
|
"routers": [
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l4": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:port1"
|
||||||
|
},
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"trafficPermissions": {}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~port1"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"trustBundles": {
|
||||||
|
"local": {
|
||||||
|
"roots": [
|
||||||
|
"some-root",
|
||||||
|
"some-other-root"
|
||||||
|
],
|
||||||
|
"trustDomain": "some-trust-domain"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"leafCertificates": {
|
||||||
|
"test-identity": {
|
||||||
|
"cert": "-----BEGIN CERTIFICATE-----\nMIICDjCCAbWgAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDEwlUZXN0IENB\nIDEwHhcNMjMxMDE2MTYxMzI5WhcNMjMxMDE2MTYyMzI5WjAAMFkwEwYHKoZIzj0C\nAQYIKoZIzj0DAQcDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9\nta/bGT+5orZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJaOCAQowggEGMA4GA1UdDwEB\n/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/\nBAIwADApBgNVHQ4EIgQg3ogXVz9cqaK2B6xdiJYMa5NtT0KkYv7BA2dR7h9EcwUw\nKwYDVR0jBCQwIoAgq+C1mPlPoGa4lt7sSft1goN5qPGyBIB/3mUHJZKSFY8wbwYD\nVR0RAQH/BGUwY4Zhc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9hcC9kZWZhdWx0L25zL2RlZmF1bHQvaWRlbnRpdHkv\ndGVzdC1pZGVudGl0eTAKBggqhkjOPQQDAgNHADBEAiB6L+t5bzRrBPhiQYNeA7fF\nUCuLWrdjW4Xbv3SLg0IKMgIgfRC5hEx+DqzQxTCP4sexX3hVWMjKoWmHdwiUcg+K\n/IE=\n-----END CERTIFICATE-----\n",
|
||||||
|
"key": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIFIFkTIL1iUV4O/RpveVHzHs7ZzhSkvYIzbdXDttz9EooAoGCCqGSM49\nAwEHoUQDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9ta/bGT+5\norZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJQ==\n-----END EC PRIVATE KEY-----\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
210
internal/mesh/internal/controllers/xds/testdata/source/l7-expose-paths.golden
vendored
Normal file
210
internal/mesh/internal/controllers/xds/testdata/source/l7-expose-paths.golden
vendored
Normal file
|
@ -0,0 +1,210 @@
|
||||||
|
{
|
||||||
|
"clusters": {
|
||||||
|
"exposed_cluster_9090": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "exposed_cluster_9090"
|
||||||
|
},
|
||||||
|
"exposed_cluster_9091": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "exposed_cluster_9091"
|
||||||
|
},
|
||||||
|
"local_app:port1": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "local_app:port1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"endpoints": {
|
||||||
|
"exposed_cluster_9090": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 9090
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"exposed_cluster_9091": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 9091
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"local_app:port1": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 8080
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"identity": {
|
||||||
|
"name": "test-identity",
|
||||||
|
"tenancy": {
|
||||||
|
"namespace": "default",
|
||||||
|
"partition": "default",
|
||||||
|
"peerName": "local"
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"group": "auth",
|
||||||
|
"groupVersion": "v2beta1",
|
||||||
|
"kind": "WorkloadIdentity"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"listeners": [
|
||||||
|
{
|
||||||
|
"capabilities": [
|
||||||
|
"CAPABILITY_L4_TLS_INSPECTION"
|
||||||
|
],
|
||||||
|
"direction": "DIRECTION_INBOUND",
|
||||||
|
"hostPort": {
|
||||||
|
"host": "10.0.0.1",
|
||||||
|
"port": 20000
|
||||||
|
},
|
||||||
|
"name": "public_listener",
|
||||||
|
"routers": [
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l4": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:port1"
|
||||||
|
},
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"trafficPermissions": {}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~port1"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"direction": "DIRECTION_INBOUND",
|
||||||
|
"hostPort": {
|
||||||
|
"host": "10.0.0.1",
|
||||||
|
"port": 1234
|
||||||
|
},
|
||||||
|
"name": "exposed_path_health1234",
|
||||||
|
"routers": [
|
||||||
|
{
|
||||||
|
"l7": {
|
||||||
|
"route": {
|
||||||
|
"name": "exposed_path_route_health1234"
|
||||||
|
},
|
||||||
|
"statPrefix": "exposed_path_route_health1234",
|
||||||
|
"staticRoute": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"direction": "DIRECTION_INBOUND",
|
||||||
|
"hostPort": {
|
||||||
|
"host": "10.0.0.1",
|
||||||
|
"port": 1235
|
||||||
|
},
|
||||||
|
"name": "exposed_path_GetHealth1235",
|
||||||
|
"routers": [
|
||||||
|
{
|
||||||
|
"l7": {
|
||||||
|
"protocol": "L7_PROTOCOL_HTTP2",
|
||||||
|
"route": {
|
||||||
|
"name": "exposed_path_route_GetHealth1235"
|
||||||
|
},
|
||||||
|
"statPrefix": "exposed_path_route_GetHealth1235",
|
||||||
|
"staticRoute": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"routes": {
|
||||||
|
"exposed_path_route_GetHealth1235": {
|
||||||
|
"virtualHosts": [
|
||||||
|
{
|
||||||
|
"domains": [
|
||||||
|
"*"
|
||||||
|
],
|
||||||
|
"name": "exposed_path_route_GetHealth1235",
|
||||||
|
"routeRules": [
|
||||||
|
{
|
||||||
|
"destination": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "exposed_cluster_9091"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"pathMatch": {
|
||||||
|
"exact": "GetHealth"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"exposed_path_route_health1234": {
|
||||||
|
"virtualHosts": [
|
||||||
|
{
|
||||||
|
"domains": [
|
||||||
|
"*"
|
||||||
|
],
|
||||||
|
"name": "exposed_path_route_health1234",
|
||||||
|
"routeRules": [
|
||||||
|
{
|
||||||
|
"destination": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "exposed_cluster_9090"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"pathMatch": {
|
||||||
|
"exact": "/health"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"trustBundles": {
|
||||||
|
"local": {
|
||||||
|
"roots": [
|
||||||
|
"some-root",
|
||||||
|
"some-other-root"
|
||||||
|
],
|
||||||
|
"trustDomain": "some-trust-domain"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"leafCertificates": {
|
||||||
|
"test-identity": {
|
||||||
|
"cert": "-----BEGIN CERTIFICATE-----\nMIICDjCCAbWgAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDEwlUZXN0IENB\nIDEwHhcNMjMxMDE2MTYxMzI5WhcNMjMxMDE2MTYyMzI5WjAAMFkwEwYHKoZIzj0C\nAQYIKoZIzj0DAQcDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9\nta/bGT+5orZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJaOCAQowggEGMA4GA1UdDwEB\n/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/\nBAIwADApBgNVHQ4EIgQg3ogXVz9cqaK2B6xdiJYMa5NtT0KkYv7BA2dR7h9EcwUw\nKwYDVR0jBCQwIoAgq+C1mPlPoGa4lt7sSft1goN5qPGyBIB/3mUHJZKSFY8wbwYD\nVR0RAQH/BGUwY4Zhc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9hcC9kZWZhdWx0L25zL2RlZmF1bHQvaWRlbnRpdHkv\ndGVzdC1pZGVudGl0eTAKBggqhkjOPQQDAgNHADBEAiB6L+t5bzRrBPhiQYNeA7fF\nUCuLWrdjW4Xbv3SLg0IKMgIgfRC5hEx+DqzQxTCP4sexX3hVWMjKoWmHdwiUcg+K\n/IE=\n-----END CERTIFICATE-----\n",
|
||||||
|
"key": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIFIFkTIL1iUV4O/RpveVHzHs7ZzhSkvYIzbdXDttz9EooAoGCCqGSM49\nAwEHoUQDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9ta/bGT+5\norZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJQ==\n-----END EC PRIVATE KEY-----\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
301
internal/mesh/internal/controllers/xds/testdata/source/local-and-inbound-connections.golden
vendored
Normal file
301
internal/mesh/internal/controllers/xds/testdata/source/local-and-inbound-connections.golden
vendored
Normal file
|
@ -0,0 +1,301 @@
|
||||||
|
{
|
||||||
|
"clusters": {
|
||||||
|
"exposed_cluster_9090": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "exposed_cluster_9090"
|
||||||
|
},
|
||||||
|
"exposed_cluster_9091": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "exposed_cluster_9091"
|
||||||
|
},
|
||||||
|
"local_app:port1": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {
|
||||||
|
"config": {
|
||||||
|
"connectTimeout": "6s",
|
||||||
|
"circuitBreakers": {
|
||||||
|
"upstreamLimits": {
|
||||||
|
"maxConnections": 123
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "local_app:port1"
|
||||||
|
},
|
||||||
|
"local_app:port3": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {
|
||||||
|
"config": {
|
||||||
|
"connectTimeout": "8s",
|
||||||
|
"circuitBreakers": {
|
||||||
|
"upstreamLimits": {
|
||||||
|
"maxConnections": 123
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "local_app:port3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"endpoints": {
|
||||||
|
"exposed_cluster_9090": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 9090
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"exposed_cluster_9091": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 9091
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"local_app:port1": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 8080
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"local_app:port3": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 8081
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"identity": {
|
||||||
|
"name": "test-identity",
|
||||||
|
"tenancy": {
|
||||||
|
"namespace": "default",
|
||||||
|
"partition": "default",
|
||||||
|
"peerName": "local"
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"group": "auth",
|
||||||
|
"groupVersion": "v2beta1",
|
||||||
|
"kind": "WorkloadIdentity"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"listeners": [
|
||||||
|
{
|
||||||
|
"capabilities": [
|
||||||
|
"CAPABILITY_L4_TLS_INSPECTION"
|
||||||
|
],
|
||||||
|
"direction": "DIRECTION_INBOUND",
|
||||||
|
"hostPort": {
|
||||||
|
"host": "10.0.0.1",
|
||||||
|
"port": 20000
|
||||||
|
},
|
||||||
|
"name": "public_listener",
|
||||||
|
"balanceConnections": "BALANCE_CONNECTIONS_EXACT",
|
||||||
|
"routers": [
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l4": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:port1"
|
||||||
|
},
|
||||||
|
"maxInboundConnections": "123",
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"trafficPermissions": {}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~port1"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l7": {
|
||||||
|
"route": {
|
||||||
|
"name": "public_listener:port3"
|
||||||
|
},
|
||||||
|
"maxInboundConnections": "123",
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"staticRoute": true,
|
||||||
|
"trafficPermissions": {}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~port3"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"direction": "DIRECTION_INBOUND",
|
||||||
|
"hostPort": {
|
||||||
|
"host": "10.0.0.1",
|
||||||
|
"port": 1234
|
||||||
|
},
|
||||||
|
"name": "exposed_path_health1234",
|
||||||
|
"routers": [
|
||||||
|
{
|
||||||
|
"l7": {
|
||||||
|
"route": {
|
||||||
|
"name": "exposed_path_route_health1234"
|
||||||
|
},
|
||||||
|
"statPrefix": "exposed_path_route_health1234",
|
||||||
|
"staticRoute": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"direction": "DIRECTION_INBOUND",
|
||||||
|
"hostPort": {
|
||||||
|
"host": "10.0.0.1",
|
||||||
|
"port": 1235
|
||||||
|
},
|
||||||
|
"name": "exposed_path_GetHealth1235",
|
||||||
|
"routers": [
|
||||||
|
{
|
||||||
|
"l7": {
|
||||||
|
"protocol": "L7_PROTOCOL_HTTP2",
|
||||||
|
"route": {
|
||||||
|
"name": "exposed_path_route_GetHealth1235"
|
||||||
|
},
|
||||||
|
"statPrefix": "exposed_path_route_GetHealth1235",
|
||||||
|
"staticRoute": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"routes": {
|
||||||
|
"exposed_path_route_GetHealth1235": {
|
||||||
|
"virtualHosts": [
|
||||||
|
{
|
||||||
|
"domains": [
|
||||||
|
"*"
|
||||||
|
],
|
||||||
|
"name": "exposed_path_route_GetHealth1235",
|
||||||
|
"routeRules": [
|
||||||
|
{
|
||||||
|
"destination": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "exposed_cluster_9091"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"pathMatch": {
|
||||||
|
"exact": "GetHealth"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"exposed_path_route_health1234": {
|
||||||
|
"virtualHosts": [
|
||||||
|
{
|
||||||
|
"domains": [
|
||||||
|
"*"
|
||||||
|
],
|
||||||
|
"name": "exposed_path_route_health1234",
|
||||||
|
"routeRules": [
|
||||||
|
{
|
||||||
|
"destination": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "exposed_cluster_9090"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"pathMatch": {
|
||||||
|
"exact": "/health"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"public_listener:port3": {
|
||||||
|
"virtualHosts": [
|
||||||
|
{
|
||||||
|
"domains": [
|
||||||
|
"*"
|
||||||
|
],
|
||||||
|
"name": "public_listener:port3",
|
||||||
|
"routeRules": [
|
||||||
|
{
|
||||||
|
"destination": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:port3"
|
||||||
|
},
|
||||||
|
"destinationConfiguration": {
|
||||||
|
"timeoutConfig": {
|
||||||
|
"timeout": "9s"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"pathMatch": {
|
||||||
|
"prefix": "/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"trustBundles": {
|
||||||
|
"local": {
|
||||||
|
"roots": [
|
||||||
|
"some-root",
|
||||||
|
"some-other-root"
|
||||||
|
],
|
||||||
|
"trustDomain": "some-trust-domain"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"leafCertificates": {
|
||||||
|
"test-identity": {
|
||||||
|
"cert": "-----BEGIN CERTIFICATE-----\nMIICDjCCAbWgAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDEwlUZXN0IENB\nIDEwHhcNMjMxMDE2MTYxMzI5WhcNMjMxMDE2MTYyMzI5WjAAMFkwEwYHKoZIzj0C\nAQYIKoZIzj0DAQcDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9\nta/bGT+5orZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJaOCAQowggEGMA4GA1UdDwEB\n/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/\nBAIwADApBgNVHQ4EIgQg3ogXVz9cqaK2B6xdiJYMa5NtT0KkYv7BA2dR7h9EcwUw\nKwYDVR0jBCQwIoAgq+C1mPlPoGa4lt7sSft1goN5qPGyBIB/3mUHJZKSFY8wbwYD\nVR0RAQH/BGUwY4Zhc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9hcC9kZWZhdWx0L25zL2RlZmF1bHQvaWRlbnRpdHkv\ndGVzdC1pZGVudGl0eTAKBggqhkjOPQQDAgNHADBEAiB6L+t5bzRrBPhiQYNeA7fF\nUCuLWrdjW4Xbv3SLg0IKMgIgfRC5hEx+DqzQxTCP4sexX3hVWMjKoWmHdwiUcg+K\n/IE=\n-----END CERTIFICATE-----\n",
|
||||||
|
"key": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIFIFkTIL1iUV4O/RpveVHzHs7ZzhSkvYIzbdXDttz9EooAoGCCqGSM49\nAwEHoUQDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9ta/bGT+5\norZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJQ==\n-----END EC PRIVATE KEY-----\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,129 @@
|
||||||
|
{
|
||||||
|
"clusters": {
|
||||||
|
"local_app:admin-port": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "local_app:admin-port"
|
||||||
|
},
|
||||||
|
"local_app:api-port": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "local_app:api-port"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"endpoints": {
|
||||||
|
"local_app:admin-port": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 8080
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"local_app:api-port": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 9090
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"identity": {
|
||||||
|
"name": "test-identity",
|
||||||
|
"tenancy": {
|
||||||
|
"namespace": "default",
|
||||||
|
"partition": "default",
|
||||||
|
"peerName": "local"
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"group": "auth",
|
||||||
|
"groupVersion": "v2beta1",
|
||||||
|
"kind": "WorkloadIdentity"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"listeners": [
|
||||||
|
{
|
||||||
|
"capabilities": [
|
||||||
|
"CAPABILITY_L4_TLS_INSPECTION"
|
||||||
|
],
|
||||||
|
"direction": "DIRECTION_INBOUND",
|
||||||
|
"hostPort": {
|
||||||
|
"host": "10.0.0.3",
|
||||||
|
"port": 20000
|
||||||
|
},
|
||||||
|
"name": "public_listener",
|
||||||
|
"routers": [
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l4": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:admin-port"
|
||||||
|
},
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"trafficPermissions": {}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~admin-port"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l4": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:api-port"
|
||||||
|
},
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"trafficPermissions": {}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~api-port"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"trustBundles": {
|
||||||
|
"local": {
|
||||||
|
"roots": [
|
||||||
|
"some-root",
|
||||||
|
"some-other-root"
|
||||||
|
],
|
||||||
|
"trustDomain": "some-trust-domain"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"leafCertificates": {
|
||||||
|
"test-identity": {
|
||||||
|
"cert": "-----BEGIN CERTIFICATE-----\nMIICDjCCAbWgAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDEwlUZXN0IENB\nIDEwHhcNMjMxMDE2MTYxMzI5WhcNMjMxMDE2MTYyMzI5WjAAMFkwEwYHKoZIzj0C\nAQYIKoZIzj0DAQcDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9\nta/bGT+5orZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJaOCAQowggEGMA4GA1UdDwEB\n/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/\nBAIwADApBgNVHQ4EIgQg3ogXVz9cqaK2B6xdiJYMa5NtT0KkYv7BA2dR7h9EcwUw\nKwYDVR0jBCQwIoAgq+C1mPlPoGa4lt7sSft1goN5qPGyBIB/3mUHJZKSFY8wbwYD\nVR0RAQH/BGUwY4Zhc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9hcC9kZWZhdWx0L25zL2RlZmF1bHQvaWRlbnRpdHkv\ndGVzdC1pZGVudGl0eTAKBggqhkjOPQQDAgNHADBEAiB6L+t5bzRrBPhiQYNeA7fF\nUCuLWrdjW4Xbv3SLg0IKMgIgfRC5hEx+DqzQxTCP4sexX3hVWMjKoWmHdwiUcg+K\n/IE=\n-----END CERTIFICATE-----\n",
|
||||||
|
"key": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIFIFkTIL1iUV4O/RpveVHzHs7ZzhSkvYIzbdXDttz9EooAoGCCqGSM49\nAwEHoUQDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9ta/bGT+5\norZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJQ==\n-----END EC PRIVATE KEY-----\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,129 @@
|
||||||
|
{
|
||||||
|
"clusters": {
|
||||||
|
"local_app:admin-port": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "local_app:admin-port"
|
||||||
|
},
|
||||||
|
"local_app:api-port": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "local_app:api-port"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"endpoints": {
|
||||||
|
"local_app:admin-port": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 8080
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"local_app:api-port": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 9090
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"identity": {
|
||||||
|
"name": "test-identity",
|
||||||
|
"tenancy": {
|
||||||
|
"namespace": "default",
|
||||||
|
"partition": "default",
|
||||||
|
"peerName": "local"
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"group": "auth",
|
||||||
|
"groupVersion": "v2beta1",
|
||||||
|
"kind": "WorkloadIdentity"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"listeners": [
|
||||||
|
{
|
||||||
|
"capabilities": [
|
||||||
|
"CAPABILITY_L4_TLS_INSPECTION"
|
||||||
|
],
|
||||||
|
"direction": "DIRECTION_INBOUND",
|
||||||
|
"hostPort": {
|
||||||
|
"host": "10.0.0.1",
|
||||||
|
"port": 20000
|
||||||
|
},
|
||||||
|
"name": "public_listener",
|
||||||
|
"routers": [
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l4": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:admin-port"
|
||||||
|
},
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"trafficPermissions": {}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~admin-port"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l4": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:api-port"
|
||||||
|
},
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"trafficPermissions": {}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~api-port"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"trustBundles": {
|
||||||
|
"local": {
|
||||||
|
"roots": [
|
||||||
|
"some-root",
|
||||||
|
"some-other-root"
|
||||||
|
],
|
||||||
|
"trustDomain": "some-trust-domain"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"leafCertificates": {
|
||||||
|
"test-identity": {
|
||||||
|
"cert": "-----BEGIN CERTIFICATE-----\nMIICDjCCAbWgAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDEwlUZXN0IENB\nIDEwHhcNMjMxMDE2MTYxMzI5WhcNMjMxMDE2MTYyMzI5WjAAMFkwEwYHKoZIzj0C\nAQYIKoZIzj0DAQcDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9\nta/bGT+5orZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJaOCAQowggEGMA4GA1UdDwEB\n/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/\nBAIwADApBgNVHQ4EIgQg3ogXVz9cqaK2B6xdiJYMa5NtT0KkYv7BA2dR7h9EcwUw\nKwYDVR0jBCQwIoAgq+C1mPlPoGa4lt7sSft1goN5qPGyBIB/3mUHJZKSFY8wbwYD\nVR0RAQH/BGUwY4Zhc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9hcC9kZWZhdWx0L25zL2RlZmF1bHQvaWRlbnRpdHkv\ndGVzdC1pZGVudGl0eTAKBggqhkjOPQQDAgNHADBEAiB6L+t5bzRrBPhiQYNeA7fF\nUCuLWrdjW4Xbv3SLg0IKMgIgfRC5hEx+DqzQxTCP4sexX3hVWMjKoWmHdwiUcg+K\n/IE=\n-----END CERTIFICATE-----\n",
|
||||||
|
"key": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIFIFkTIL1iUV4O/RpveVHzHs7ZzhSkvYIzbdXDttz9EooAoGCCqGSM49\nAwEHoUQDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9ta/bGT+5\norZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJQ==\n-----END EC PRIVATE KEY-----\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,129 @@
|
||||||
|
{
|
||||||
|
"clusters": {
|
||||||
|
"local_app:admin-port": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "local_app:admin-port"
|
||||||
|
},
|
||||||
|
"local_app:api-port": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "local_app:api-port"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"endpoints": {
|
||||||
|
"local_app:admin-port": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 8080
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"local_app:api-port": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 9090
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"identity": {
|
||||||
|
"name": "test-identity",
|
||||||
|
"tenancy": {
|
||||||
|
"namespace": "default",
|
||||||
|
"partition": "default",
|
||||||
|
"peerName": "local"
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"group": "auth",
|
||||||
|
"groupVersion": "v2beta1",
|
||||||
|
"kind": "WorkloadIdentity"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"listeners": [
|
||||||
|
{
|
||||||
|
"capabilities": [
|
||||||
|
"CAPABILITY_L4_TLS_INSPECTION"
|
||||||
|
],
|
||||||
|
"direction": "DIRECTION_INBOUND",
|
||||||
|
"hostPort": {
|
||||||
|
"host": "10.0.0.1",
|
||||||
|
"port": 20000
|
||||||
|
},
|
||||||
|
"name": "public_listener",
|
||||||
|
"routers": [
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l4": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:admin-port"
|
||||||
|
},
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"trafficPermissions": {}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~admin-port"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l4": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:api-port"
|
||||||
|
},
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"trafficPermissions": {}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~api-port"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"trustBundles": {
|
||||||
|
"local": {
|
||||||
|
"roots": [
|
||||||
|
"some-root",
|
||||||
|
"some-other-root"
|
||||||
|
],
|
||||||
|
"trustDomain": "some-trust-domain"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"leafCertificates": {
|
||||||
|
"test-identity": {
|
||||||
|
"cert": "-----BEGIN CERTIFICATE-----\nMIICDjCCAbWgAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDEwlUZXN0IENB\nIDEwHhcNMjMxMDE2MTYxMzI5WhcNMjMxMDE2MTYyMzI5WjAAMFkwEwYHKoZIzj0C\nAQYIKoZIzj0DAQcDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9\nta/bGT+5orZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJaOCAQowggEGMA4GA1UdDwEB\n/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/\nBAIwADApBgNVHQ4EIgQg3ogXVz9cqaK2B6xdiJYMa5NtT0KkYv7BA2dR7h9EcwUw\nKwYDVR0jBCQwIoAgq+C1mPlPoGa4lt7sSft1goN5qPGyBIB/3mUHJZKSFY8wbwYD\nVR0RAQH/BGUwY4Zhc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9hcC9kZWZhdWx0L25zL2RlZmF1bHQvaWRlbnRpdHkv\ndGVzdC1pZGVudGl0eTAKBggqhkjOPQQDAgNHADBEAiB6L+t5bzRrBPhiQYNeA7fF\nUCuLWrdjW4Xbv3SLg0IKMgIgfRC5hEx+DqzQxTCP4sexX3hVWMjKoWmHdwiUcg+K\n/IE=\n-----END CERTIFICATE-----\n",
|
||||||
|
"key": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIFIFkTIL1iUV4O/RpveVHzHs7ZzhSkvYIzbdXDttz9EooAoGCCqGSM49\nAwEHoUQDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9ta/bGT+5\norZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJQ==\n-----END EC PRIVATE KEY-----\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
{
|
||||||
|
"clusters": {
|
||||||
|
"black-hole-cluster": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "black-hole-cluster"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"identity": {
|
||||||
|
"name": "test-identity",
|
||||||
|
"tenancy": {
|
||||||
|
"namespace": "default",
|
||||||
|
"partition": "default",
|
||||||
|
"peerName": "local"
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"group": "auth",
|
||||||
|
"groupVersion": "v2beta1",
|
||||||
|
"kind": "WorkloadIdentity"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"listeners": [
|
||||||
|
{
|
||||||
|
"capabilities": [
|
||||||
|
"CAPABILITY_L4_TLS_INSPECTION"
|
||||||
|
],
|
||||||
|
"direction": "DIRECTION_INBOUND",
|
||||||
|
"hostPort": {
|
||||||
|
"host": "10.0.0.1",
|
||||||
|
"port": 20000
|
||||||
|
},
|
||||||
|
"name": "public_listener",
|
||||||
|
"routers": [
|
||||||
|
{
|
||||||
|
"l4": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "black-hole-cluster"
|
||||||
|
},
|
||||||
|
"statPrefix": "public_listener"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"trustBundles": {
|
||||||
|
"local": {
|
||||||
|
"roots": [
|
||||||
|
"some-root",
|
||||||
|
"some-other-root"
|
||||||
|
],
|
||||||
|
"trustDomain": "some-trust-domain"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"leafCertificates": {
|
||||||
|
"test-identity": {
|
||||||
|
"cert": "-----BEGIN CERTIFICATE-----\nMIICDjCCAbWgAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDEwlUZXN0IENB\nIDEwHhcNMjMxMDE2MTYxMzI5WhcNMjMxMDE2MTYyMzI5WjAAMFkwEwYHKoZIzj0C\nAQYIKoZIzj0DAQcDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9\nta/bGT+5orZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJaOCAQowggEGMA4GA1UdDwEB\n/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/\nBAIwADApBgNVHQ4EIgQg3ogXVz9cqaK2B6xdiJYMa5NtT0KkYv7BA2dR7h9EcwUw\nKwYDVR0jBCQwIoAgq+C1mPlPoGa4lt7sSft1goN5qPGyBIB/3mUHJZKSFY8wbwYD\nVR0RAQH/BGUwY4Zhc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9hcC9kZWZhdWx0L25zL2RlZmF1bHQvaWRlbnRpdHkv\ndGVzdC1pZGVudGl0eTAKBggqhkjOPQQDAgNHADBEAiB6L+t5bzRrBPhiQYNeA7fF\nUCuLWrdjW4Xbv3SLg0IKMgIgfRC5hEx+DqzQxTCP4sexX3hVWMjKoWmHdwiUcg+K\n/IE=\n-----END CERTIFICATE-----\n",
|
||||||
|
"key": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIFIFkTIL1iUV4O/RpveVHzHs7ZzhSkvYIzbdXDttz9EooAoGCCqGSM49\nAwEHoUQDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9ta/bGT+5\norZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJQ==\n-----END EC PRIVATE KEY-----\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,182 @@
|
||||||
|
{
|
||||||
|
"clusters": {
|
||||||
|
"local_app:admin-port": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "local_app:admin-port"
|
||||||
|
},
|
||||||
|
"local_app:api-port": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "local_app:api-port"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"endpoints": {
|
||||||
|
"local_app:admin-port": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 8080
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"local_app:api-port": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 9090
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"identity": {
|
||||||
|
"name": "test-identity",
|
||||||
|
"tenancy": {
|
||||||
|
"namespace": "default",
|
||||||
|
"partition": "default",
|
||||||
|
"peerName": "local"
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"group": "auth",
|
||||||
|
"groupVersion": "v2beta1",
|
||||||
|
"kind": "WorkloadIdentity"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"listeners": [
|
||||||
|
{
|
||||||
|
"capabilities": [
|
||||||
|
"CAPABILITY_L4_TLS_INSPECTION"
|
||||||
|
],
|
||||||
|
"direction": "DIRECTION_INBOUND",
|
||||||
|
"hostPort": {
|
||||||
|
"host": "10.0.0.3",
|
||||||
|
"port": 20000
|
||||||
|
},
|
||||||
|
"name": "public_listener",
|
||||||
|
"routers": [
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l7": {
|
||||||
|
"route": {
|
||||||
|
"name": "public_listener:admin-port"
|
||||||
|
},
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"staticRoute": true,
|
||||||
|
"trafficPermissions": {}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~admin-port"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l7": {
|
||||||
|
"protocol": "L7_PROTOCOL_HTTP2",
|
||||||
|
"route": {
|
||||||
|
"name": "public_listener:api-port"
|
||||||
|
},
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"staticRoute": true,
|
||||||
|
"trafficPermissions": {}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~api-port"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"routes": {
|
||||||
|
"public_listener:admin-port": {
|
||||||
|
"virtualHosts": [
|
||||||
|
{
|
||||||
|
"domains": [
|
||||||
|
"*"
|
||||||
|
],
|
||||||
|
"name": "public_listener:admin-port",
|
||||||
|
"routeRules": [
|
||||||
|
{
|
||||||
|
"destination": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:admin-port"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"pathMatch": {
|
||||||
|
"prefix": "/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"public_listener:api-port": {
|
||||||
|
"virtualHosts": [
|
||||||
|
{
|
||||||
|
"domains": [
|
||||||
|
"*"
|
||||||
|
],
|
||||||
|
"name": "public_listener:api-port",
|
||||||
|
"routeRules": [
|
||||||
|
{
|
||||||
|
"destination": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:api-port"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"pathMatch": {
|
||||||
|
"prefix": "/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"trustBundles": {
|
||||||
|
"local": {
|
||||||
|
"roots": [
|
||||||
|
"some-root",
|
||||||
|
"some-other-root"
|
||||||
|
],
|
||||||
|
"trustDomain": "some-trust-domain"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"leafCertificates": {
|
||||||
|
"test-identity": {
|
||||||
|
"cert": "-----BEGIN CERTIFICATE-----\nMIICDjCCAbWgAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDEwlUZXN0IENB\nIDEwHhcNMjMxMDE2MTYxMzI5WhcNMjMxMDE2MTYyMzI5WjAAMFkwEwYHKoZIzj0C\nAQYIKoZIzj0DAQcDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9\nta/bGT+5orZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJaOCAQowggEGMA4GA1UdDwEB\n/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/\nBAIwADApBgNVHQ4EIgQg3ogXVz9cqaK2B6xdiJYMa5NtT0KkYv7BA2dR7h9EcwUw\nKwYDVR0jBCQwIoAgq+C1mPlPoGa4lt7sSft1goN5qPGyBIB/3mUHJZKSFY8wbwYD\nVR0RAQH/BGUwY4Zhc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9hcC9kZWZhdWx0L25zL2RlZmF1bHQvaWRlbnRpdHkv\ndGVzdC1pZGVudGl0eTAKBggqhkjOPQQDAgNHADBEAiB6L+t5bzRrBPhiQYNeA7fF\nUCuLWrdjW4Xbv3SLg0IKMgIgfRC5hEx+DqzQxTCP4sexX3hVWMjKoWmHdwiUcg+K\n/IE=\n-----END CERTIFICATE-----\n",
|
||||||
|
"key": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIFIFkTIL1iUV4O/RpveVHzHs7ZzhSkvYIzbdXDttz9EooAoGCCqGSM49\nAwEHoUQDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9ta/bGT+5\norZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJQ==\n-----END EC PRIVATE KEY-----\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,248 @@
|
||||||
|
{
|
||||||
|
"clusters": {
|
||||||
|
"local_app:admin-port": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "local_app:admin-port"
|
||||||
|
},
|
||||||
|
"local_app:api-port": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "local_app:api-port"
|
||||||
|
},
|
||||||
|
"local_app:grpc-port": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "local_app:grpc-port"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"endpoints": {
|
||||||
|
"local_app:admin-port": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 8080
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"local_app:api-port": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 9090
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"local_app:grpc-port": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 9091
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"identity": {
|
||||||
|
"name": "test-identity",
|
||||||
|
"tenancy": {
|
||||||
|
"namespace": "default",
|
||||||
|
"partition": "default",
|
||||||
|
"peerName": "local"
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"group": "auth",
|
||||||
|
"groupVersion": "v2beta1",
|
||||||
|
"kind": "WorkloadIdentity"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"listeners": [
|
||||||
|
{
|
||||||
|
"capabilities": [
|
||||||
|
"CAPABILITY_L4_TLS_INSPECTION"
|
||||||
|
],
|
||||||
|
"direction": "DIRECTION_INBOUND",
|
||||||
|
"hostPort": {
|
||||||
|
"host": "10.0.0.1",
|
||||||
|
"port": 20000
|
||||||
|
},
|
||||||
|
"name": "public_listener",
|
||||||
|
"routers": [
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l7": {
|
||||||
|
"route": {
|
||||||
|
"name": "public_listener:admin-port"
|
||||||
|
},
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"staticRoute": true,
|
||||||
|
"trafficPermissions": {}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~admin-port"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l7": {
|
||||||
|
"protocol": "L7_PROTOCOL_HTTP2",
|
||||||
|
"route": {
|
||||||
|
"name": "public_listener:api-port"
|
||||||
|
},
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"staticRoute": true,
|
||||||
|
"trafficPermissions": {}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~api-port"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l7": {
|
||||||
|
"protocol": "L7_PROTOCOL_GRPC",
|
||||||
|
"route": {
|
||||||
|
"name": "public_listener:grpc-port"
|
||||||
|
},
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"staticRoute": true,
|
||||||
|
"trafficPermissions": {}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~grpc-port"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"routes": {
|
||||||
|
"public_listener:admin-port": {
|
||||||
|
"virtualHosts": [
|
||||||
|
{
|
||||||
|
"domains": [
|
||||||
|
"*"
|
||||||
|
],
|
||||||
|
"name": "public_listener:admin-port",
|
||||||
|
"routeRules": [
|
||||||
|
{
|
||||||
|
"destination": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:admin-port"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"pathMatch": {
|
||||||
|
"prefix": "/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"public_listener:api-port": {
|
||||||
|
"virtualHosts": [
|
||||||
|
{
|
||||||
|
"domains": [
|
||||||
|
"*"
|
||||||
|
],
|
||||||
|
"name": "public_listener:api-port",
|
||||||
|
"routeRules": [
|
||||||
|
{
|
||||||
|
"destination": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:api-port"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"pathMatch": {
|
||||||
|
"prefix": "/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"public_listener:grpc-port": {
|
||||||
|
"virtualHosts": [
|
||||||
|
{
|
||||||
|
"domains": [
|
||||||
|
"*"
|
||||||
|
],
|
||||||
|
"name": "public_listener:grpc-port",
|
||||||
|
"routeRules": [
|
||||||
|
{
|
||||||
|
"destination": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:grpc-port"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"pathMatch": {
|
||||||
|
"prefix": "/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"trustBundles": {
|
||||||
|
"local": {
|
||||||
|
"roots": [
|
||||||
|
"some-root",
|
||||||
|
"some-other-root"
|
||||||
|
],
|
||||||
|
"trustDomain": "some-trust-domain"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"leafCertificates": {
|
||||||
|
"test-identity": {
|
||||||
|
"cert": "-----BEGIN CERTIFICATE-----\nMIICDjCCAbWgAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDEwlUZXN0IENB\nIDEwHhcNMjMxMDE2MTYxMzI5WhcNMjMxMDE2MTYyMzI5WjAAMFkwEwYHKoZIzj0C\nAQYIKoZIzj0DAQcDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9\nta/bGT+5orZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJaOCAQowggEGMA4GA1UdDwEB\n/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/\nBAIwADApBgNVHQ4EIgQg3ogXVz9cqaK2B6xdiJYMa5NtT0KkYv7BA2dR7h9EcwUw\nKwYDVR0jBCQwIoAgq+C1mPlPoGa4lt7sSft1goN5qPGyBIB/3mUHJZKSFY8wbwYD\nVR0RAQH/BGUwY4Zhc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9hcC9kZWZhdWx0L25zL2RlZmF1bHQvaWRlbnRpdHkv\ndGVzdC1pZGVudGl0eTAKBggqhkjOPQQDAgNHADBEAiB6L+t5bzRrBPhiQYNeA7fF\nUCuLWrdjW4Xbv3SLg0IKMgIgfRC5hEx+DqzQxTCP4sexX3hVWMjKoWmHdwiUcg+K\n/IE=\n-----END CERTIFICATE-----\n",
|
||||||
|
"key": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIFIFkTIL1iUV4O/RpveVHzHs7ZzhSkvYIzbdXDttz9EooAoGCCqGSM49\nAwEHoUQDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9ta/bGT+5\norZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJQ==\n-----END EC PRIVATE KEY-----\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,248 @@
|
||||||
|
{
|
||||||
|
"clusters": {
|
||||||
|
"local_app:admin-port": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "local_app:admin-port"
|
||||||
|
},
|
||||||
|
"local_app:api-port": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "local_app:api-port"
|
||||||
|
},
|
||||||
|
"local_app:grpc-port": {
|
||||||
|
"endpointGroup": {
|
||||||
|
"static": {}
|
||||||
|
},
|
||||||
|
"name": "local_app:grpc-port"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"endpoints": {
|
||||||
|
"local_app:admin-port": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 8080
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"local_app:api-port": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 9090
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"local_app:grpc-port": {
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"hostPort": {
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 9091
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"identity": {
|
||||||
|
"name": "test-identity",
|
||||||
|
"tenancy": {
|
||||||
|
"namespace": "default",
|
||||||
|
"partition": "default",
|
||||||
|
"peerName": "local"
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"group": "auth",
|
||||||
|
"groupVersion": "v2beta1",
|
||||||
|
"kind": "WorkloadIdentity"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"listeners": [
|
||||||
|
{
|
||||||
|
"capabilities": [
|
||||||
|
"CAPABILITY_L4_TLS_INSPECTION"
|
||||||
|
],
|
||||||
|
"direction": "DIRECTION_INBOUND",
|
||||||
|
"hostPort": {
|
||||||
|
"host": "10.0.0.1",
|
||||||
|
"port": 20000
|
||||||
|
},
|
||||||
|
"name": "public_listener",
|
||||||
|
"routers": [
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l7": {
|
||||||
|
"route": {
|
||||||
|
"name": "public_listener:admin-port"
|
||||||
|
},
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"staticRoute": true,
|
||||||
|
"trafficPermissions": {}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~admin-port"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l7": {
|
||||||
|
"protocol": "L7_PROTOCOL_HTTP2",
|
||||||
|
"route": {
|
||||||
|
"name": "public_listener:api-port"
|
||||||
|
},
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"staticRoute": true,
|
||||||
|
"trafficPermissions": {}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~api-port"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inboundTls": {
|
||||||
|
"inboundMesh": {
|
||||||
|
"identityKey": "test-identity",
|
||||||
|
"validationContext": {
|
||||||
|
"trustBundlePeerNameKeys": [
|
||||||
|
"local"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"l7": {
|
||||||
|
"protocol": "L7_PROTOCOL_GRPC",
|
||||||
|
"route": {
|
||||||
|
"name": "public_listener:grpc-port"
|
||||||
|
},
|
||||||
|
"statPrefix": "public_listener",
|
||||||
|
"staticRoute": true,
|
||||||
|
"trafficPermissions": {}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"alpnProtocols": [
|
||||||
|
"consul~grpc-port"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"routes": {
|
||||||
|
"public_listener:admin-port": {
|
||||||
|
"virtualHosts": [
|
||||||
|
{
|
||||||
|
"domains": [
|
||||||
|
"*"
|
||||||
|
],
|
||||||
|
"name": "public_listener:admin-port",
|
||||||
|
"routeRules": [
|
||||||
|
{
|
||||||
|
"destination": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:admin-port"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"pathMatch": {
|
||||||
|
"prefix": "/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"public_listener:api-port": {
|
||||||
|
"virtualHosts": [
|
||||||
|
{
|
||||||
|
"domains": [
|
||||||
|
"*"
|
||||||
|
],
|
||||||
|
"name": "public_listener:api-port",
|
||||||
|
"routeRules": [
|
||||||
|
{
|
||||||
|
"destination": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:api-port"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"pathMatch": {
|
||||||
|
"prefix": "/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"public_listener:grpc-port": {
|
||||||
|
"virtualHosts": [
|
||||||
|
{
|
||||||
|
"domains": [
|
||||||
|
"*"
|
||||||
|
],
|
||||||
|
"name": "public_listener:grpc-port",
|
||||||
|
"routeRules": [
|
||||||
|
{
|
||||||
|
"destination": {
|
||||||
|
"cluster": {
|
||||||
|
"name": "local_app:grpc-port"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"match": {
|
||||||
|
"pathMatch": {
|
||||||
|
"prefix": "/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"trustBundles": {
|
||||||
|
"local": {
|
||||||
|
"roots": [
|
||||||
|
"some-root",
|
||||||
|
"some-other-root"
|
||||||
|
],
|
||||||
|
"trustDomain": "some-trust-domain"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"leafCertificates": {
|
||||||
|
"test-identity": {
|
||||||
|
"cert": "-----BEGIN CERTIFICATE-----\nMIICDjCCAbWgAwIBAgIBAjAKBggqhkjOPQQDAjAUMRIwEAYDVQQDEwlUZXN0IENB\nIDEwHhcNMjMxMDE2MTYxMzI5WhcNMjMxMDE2MTYyMzI5WjAAMFkwEwYHKoZIzj0C\nAQYIKoZIzj0DAQcDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9\nta/bGT+5orZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJaOCAQowggEGMA4GA1UdDwEB\n/wQEAwIDuDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/\nBAIwADApBgNVHQ4EIgQg3ogXVz9cqaK2B6xdiJYMa5NtT0KkYv7BA2dR7h9EcwUw\nKwYDVR0jBCQwIoAgq+C1mPlPoGa4lt7sSft1goN5qPGyBIB/3mUHJZKSFY8wbwYD\nVR0RAQH/BGUwY4Zhc3BpZmZlOi8vMTExMTExMTEtMjIyMi0zMzMzLTQ0NDQtNTU1\nNTU1NTU1NTU1LmNvbnN1bC9hcC9kZWZhdWx0L25zL2RlZmF1bHQvaWRlbnRpdHkv\ndGVzdC1pZGVudGl0eTAKBggqhkjOPQQDAgNHADBEAiB6L+t5bzRrBPhiQYNeA7fF\nUCuLWrdjW4Xbv3SLg0IKMgIgfRC5hEx+DqzQxTCP4sexX3hVWMjKoWmHdwiUcg+K\n/IE=\n-----END CERTIFICATE-----\n",
|
||||||
|
"key": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIFIFkTIL1iUV4O/RpveVHzHs7ZzhSkvYIzbdXDttz9EooAoGCCqGSM49\nAwEHoUQDQgAErErAIosDPheZQGbxFQ4hYC/e9Fi4MG9z/zjfCnCq/oK9ta/bGT+5\norZqTmdN/ICsKQDhykxZ2u/Xr6845zhcJQ==\n-----END EC PRIVATE KEY-----\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue