Skip to content

Commit a1fe711

Browse files
author
Tim Arenz
authored
Add support for -ca-path option in the connect envoy command (hashicorp#8606)
* Add support for -ca-path option in the connect envoy command * Adding changelog entry
1 parent 9fab3fe commit a1fe711

File tree

6 files changed

+178
-12
lines changed

6 files changed

+178
-12
lines changed

.changelog/8606.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:bug
2+
connect: `connect envoy` command now respects the `-ca-path` flag
3+
```

command/connect/envoy/envoy.go

+5-7
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"errors"
55
"flag"
66
"fmt"
7-
"io/ioutil"
87
"net"
98
"os"
109
"os/exec"
@@ -20,6 +19,7 @@ import (
2019
proxyCmd "github.com/hashicorp/consul/command/connect/proxy"
2120
"github.com/hashicorp/consul/command/flags"
2221
"github.com/hashicorp/consul/ipaddr"
22+
"github.com/hashicorp/consul/tlsutil"
2323
)
2424

2525
func New(ui cli.Ui) *cmd {
@@ -443,13 +443,11 @@ func (c *cmd) templateArgs() (*BootstrapTplArgs, error) {
443443
}
444444

445445
var caPEM string
446-
if httpCfg.TLSConfig.CAFile != "" {
447-
content, err := ioutil.ReadFile(httpCfg.TLSConfig.CAFile)
448-
if err != nil {
449-
return nil, fmt.Errorf("Failed to read CA file: %s", err)
450-
}
451-
caPEM = strings.Replace(string(content), "\n", "\\n", -1)
446+
pems, err := tlsutil.LoadCAs(httpCfg.TLSConfig.CAFile, httpCfg.TLSConfig.CAPath)
447+
if err != nil {
448+
return nil, err
452449
}
450+
caPEM = strings.Replace(strings.Join(pems, ""), "\n", "\\n", -1)
453451

454452
return &BootstrapTplArgs{
455453
GRPC: grpcAddr,

command/connect/envoy/envoy_test.go

+40
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,46 @@ func TestGenerateConfig(t *testing.T) {
370370
LocalAgentClusterName: xds.LocalAgentClusterName,
371371
},
372372
},
373+
{
374+
Name: "missing-ca-path",
375+
Flags: []string{"-proxy-id", "test-proxy", "-ca-path", "some/path"},
376+
WantArgs: BootstrapTplArgs{
377+
EnvoyVersion: defaultEnvoyVersion,
378+
ProxyCluster: "test-proxy",
379+
ProxyID: "test-proxy",
380+
// Should resolve IP, note this might not resolve the same way
381+
// everywhere which might make this test brittle but not sure what else
382+
// to do.
383+
GRPC: GRPC{
384+
AgentAddress: "127.0.0.1",
385+
AgentPort: "8502",
386+
},
387+
},
388+
WantErr: "lstat some/path: no such file or directory",
389+
},
390+
{
391+
Name: "existing-ca-path",
392+
Flags: []string{"-proxy-id", "test-proxy", "-ca-path", "../../../test/ca_path/"},
393+
Env: []string{"CONSUL_HTTP_SSL=1"},
394+
WantArgs: BootstrapTplArgs{
395+
EnvoyVersion: defaultEnvoyVersion,
396+
ProxyCluster: "test-proxy",
397+
ProxyID: "test-proxy",
398+
// Should resolve IP, note this might not resolve the same way
399+
// everywhere which might make this test brittle but not sure what else
400+
// to do.
401+
GRPC: GRPC{
402+
AgentAddress: "127.0.0.1",
403+
AgentPort: "8502",
404+
AgentTLS: true,
405+
},
406+
AgentCAPEM: `-----BEGIN CERTIFICATE-----\nMIIFADCCAuqgAwIBAgIBATALBgkqhkiG9w0BAQswEzERMA8GA1UEAxMIQ2VydEF1\ndGgwHhcNMTUwNTExMjI0NjQzWhcNMjUwNTExMjI0NjU0WjATMREwDwYDVQQDEwhD\nZXJ0QXV0aDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALcMByyynHsA\n+K4PJwo5+XHygaEZAhPGvHiKQK2Cbc9NDm0ZTzx0rA/dRTZlvouhDyzcJHm+6R1F\nj6zQv7iaSC3qQtJiPnPsfZ+/0XhFZ3fQWMnfDiGbZpF1kJF01ofB6vnsuocFC0zG\naGC+SZiLAzs+QMP3Bebw1elCBIeoN+8NWnRYmLsYIaYGJGBSbNo/lCpLTuinofUn\nL3ehWEGv1INwpHnSVeN0Ml2GFe23d7PUlj/wNIHgUdpUR+KEJxIP3klwtsI3QpSH\nc4VjWdf4aIcka6K3IFuw+K0PUh3xAAPnMpAQOtCZk0AhF5rlvUbevC6jADxpKxLp\nOONmvCTer4LtyNURAoBH52vbK0r/DNcTpPEFV0IP66nXUFgkk0mRKsu8HTb4IOkC\nX3K4mp18EiWUUtrHZAnNct0iIniDBqKK0yhSNhztG6VakVt/1WdQY9Ey3mNtxN1O\nthqWFKdpKUzPKYC3P6PfVpiE7+VbWTLLXba+8BPe8BxWPsVkjJqGSGnCte4COusz\nM8/7bbTgifwJfsepwFtZG53tvwjWlO46Exl30VoDNTaIGvs1fO0GqJlh2A7FN5F2\nS1rS5VYHtPK8QdmUSvyq+7JDBc1HNT5I2zsIQbNcLwDTZ5EsbU6QR7NHDJKxjv/w\nbs3eTXJSSNcFD74wRU10pXjgE5wOFu9TAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIA\nBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQHazgZ3Puiuc6K2LzgcX5b6fAC\nPzAfBgNVHSMEGDAWgBQHazgZ3Puiuc6K2LzgcX5b6fACPzALBgkqhkiG9w0BAQsD\nggIBAEmeNrSUhpHg1I8dtfqu9hCU/6IZThjtcFA+QcPkkMa+Z1k0SOtsgW8MdlcA\ngCf5g5yQZ0DdpWM9nDB6xDIhQdccm91idHgf8wmpEHUj0an4uyn2ESCt8eqrAWf7\nAClYORCASTYfguJCxcfvwtI1uqaOeCxSOdmFay79UVitVsWeonbCRGsVgBDifJxw\nG2oCQqoYAmXPM4J6syk5GHhB1O9MMq+g1+hOx9s+XHyTui9FL4V+IUO1ygVqEQB5\nPSiRBvcIsajSGVao+vK0gf2XfcXzqr3y3NhBky9rFMp1g+ykb2yWekV4WiROJlCj\nTsWwWZDRyjiGahDbho/XW8JciouHZhJdjhmO31rqW3HdFviCTdXMiGk3GQIzz/Jg\nP+enOaHXoY9lcxzDvY9z1BysWBgNvNrMnVge/fLP9o+a0a0PRIIVl8T0Ef3zeg1O\nCLCSy/1Vae5Tx63ZTFvGFdOSusYkG9rlAUHXZE364JRCKzM9Bz0bM+t+LaO0MaEb\nYoxcXEPU+gB2IvmARpInN3oHexR6ekuYHVTRGdWrdmuHFzc7eFwygRqTFdoCCU+G\nQZEkd+lOEyv0zvQqYg+Jp0AEGz2B2zB53uBVECtn0EqrSdPtRzUBSByXVs6QhSXn\neVmy+z3U3MecP63X6oSPXekqSyZFuegXpNNuHkjNoL4ep2ix\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIEtzCCA5+gAwIBAgIJAIewRMI8OnvTMA0GCSqGSIb3DQEBBQUAMIGYMQswCQYD\nVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xHDAa\nBgNVBAoTE0hhc2hpQ29ycCBUZXN0IENlcnQxDDAKBgNVBAsTA0RldjEWMBQGA1UE\nAxMNdGVzdC5pbnRlcm5hbDEgMB4GCSqGSIb3DQEJARYRdGVzdEBpbnRlcm5hbC5j\nb20wHhcNMTQwNDA3MTkwMTA4WhcNMjQwNDA0MTkwMTA4WjCBmDELMAkGA1UEBhMC\nVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMRwwGgYDVQQK\nExNIYXNoaUNvcnAgVGVzdCBDZXJ0MQwwCgYDVQQLEwNEZXYxFjAUBgNVBAMTDXRl\nc3QuaW50ZXJuYWwxIDAeBgkqhkiG9w0BCQEWEXRlc3RAaW50ZXJuYWwuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxrs6JK4NpiOItxrpNR/1ppUU\nmH7p2BgLCBZ6eHdclle9J56i68adt8J85zaqphCfz6VDP58DsFx+N50PZyjQaDsU\nd0HejRqfHRMtg2O+UQkv4Z66+Vo+gc6uGuANi2xMtSYDVTAqqzF48OOPQDgYkzcG\nxcFZzTRFFZt2vPnyHj8cHcaFo/NMNVh7C3yTXevRGNm9u2mrbxCEeiHzFC2WUnvg\nU2jQuC7Fhnl33Zd3B6d3mQH6O23ncmwxTcPUJe6xZaIRrDuzwUcyhLj5Z3faag/f\npFIIcHSiHRfoqHLGsGg+3swId/zVJSSDHr7pJUu7Cre+vZa63FqDaooqvnisrQID\nAQABo4IBADCB/TAdBgNVHQ4EFgQUo/nrOfqvbee2VklVKIFlyQEbuJUwgc0GA1Ud\nIwSBxTCBwoAUo/nrOfqvbee2VklVKIFlyQEbuJWhgZ6kgZswgZgxCzAJBgNVBAYT\nAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEcMBoGA1UE\nChMTSGFzaGlDb3JwIFRlc3QgQ2VydDEMMAoGA1UECxMDRGV2MRYwFAYDVQQDEw10\nZXN0LmludGVybmFsMSAwHgYJKoZIhvcNAQkBFhF0ZXN0QGludGVybmFsLmNvbYIJ\nAIewRMI8OnvTMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADa9fV9h\ngjapBlkNmu64WX0Ufub5dsJrdHS8672P30S7ILB7Mk0W8sL65IezRsZnG898yHf9\n2uzmz5OvNTM9K380g7xFlyobSVq+6yqmmSAlA/ptAcIIZT727P5jig/DB7fzJM3g\njctDlEGOmEe50GQXc25VKpcpjAsNQi5ER5gowQ0v3IXNZs+yU+LvxLHc0rUJ/XSp\nlFCAMOqd5uRoMOejnT51G6krvLNzPaQ3N9jQfNVY4Q0zfs0M+6dRWvqfqB9Vyq8/\nPOLMld+HyAZEBk9zK3ZVIXx6XS4dkDnSNR91njLq7eouf6M7+7s/oMQZZRtAfQ6r\nwlW975rYa1ZqEdA=\n-----END CERTIFICATE-----\n`,
407+
AdminAccessLogPath: "/dev/null",
408+
AdminBindAddress: "127.0.0.1",
409+
AdminBindPort: "19000",
410+
LocalAgentClusterName: xds.LocalAgentClusterName,
411+
},
412+
},
373413
{
374414
Name: "custom-bootstrap",
375415
Flags: []string{"-proxy-id", "test-proxy"},
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
{
2+
"admin": {
3+
"access_log_path": "/dev/null",
4+
"address": {
5+
"socket_address": {
6+
"address": "127.0.0.1",
7+
"port_value": 19000
8+
}
9+
}
10+
},
11+
"node": {
12+
"cluster": "test-proxy",
13+
"id": "test-proxy",
14+
"metadata": {
15+
"namespace": "default",
16+
"envoy_version": "1.15.0"
17+
}
18+
},
19+
"static_resources": {
20+
"clusters": [
21+
{
22+
"name": "local_agent",
23+
"connect_timeout": "1s",
24+
"type": "STATIC",
25+
"tls_context": {
26+
"common_tls_context": {
27+
"validation_context": {
28+
"trusted_ca": {
29+
"inline_string": "-----BEGIN CERTIFICATE-----\nMIIFADCCAuqgAwIBAgIBATALBgkqhkiG9w0BAQswEzERMA8GA1UEAxMIQ2VydEF1\ndGgwHhcNMTUwNTExMjI0NjQzWhcNMjUwNTExMjI0NjU0WjATMREwDwYDVQQDEwhD\nZXJ0QXV0aDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALcMByyynHsA\n+K4PJwo5+XHygaEZAhPGvHiKQK2Cbc9NDm0ZTzx0rA/dRTZlvouhDyzcJHm+6R1F\nj6zQv7iaSC3qQtJiPnPsfZ+/0XhFZ3fQWMnfDiGbZpF1kJF01ofB6vnsuocFC0zG\naGC+SZiLAzs+QMP3Bebw1elCBIeoN+8NWnRYmLsYIaYGJGBSbNo/lCpLTuinofUn\nL3ehWEGv1INwpHnSVeN0Ml2GFe23d7PUlj/wNIHgUdpUR+KEJxIP3klwtsI3QpSH\nc4VjWdf4aIcka6K3IFuw+K0PUh3xAAPnMpAQOtCZk0AhF5rlvUbevC6jADxpKxLp\nOONmvCTer4LtyNURAoBH52vbK0r/DNcTpPEFV0IP66nXUFgkk0mRKsu8HTb4IOkC\nX3K4mp18EiWUUtrHZAnNct0iIniDBqKK0yhSNhztG6VakVt/1WdQY9Ey3mNtxN1O\nthqWFKdpKUzPKYC3P6PfVpiE7+VbWTLLXba+8BPe8BxWPsVkjJqGSGnCte4COusz\nM8/7bbTgifwJfsepwFtZG53tvwjWlO46Exl30VoDNTaIGvs1fO0GqJlh2A7FN5F2\nS1rS5VYHtPK8QdmUSvyq+7JDBc1HNT5I2zsIQbNcLwDTZ5EsbU6QR7NHDJKxjv/w\nbs3eTXJSSNcFD74wRU10pXjgE5wOFu9TAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIA\nBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQHazgZ3Puiuc6K2LzgcX5b6fAC\nPzAfBgNVHSMEGDAWgBQHazgZ3Puiuc6K2LzgcX5b6fACPzALBgkqhkiG9w0BAQsD\nggIBAEmeNrSUhpHg1I8dtfqu9hCU/6IZThjtcFA+QcPkkMa+Z1k0SOtsgW8MdlcA\ngCf5g5yQZ0DdpWM9nDB6xDIhQdccm91idHgf8wmpEHUj0an4uyn2ESCt8eqrAWf7\nAClYORCASTYfguJCxcfvwtI1uqaOeCxSOdmFay79UVitVsWeonbCRGsVgBDifJxw\nG2oCQqoYAmXPM4J6syk5GHhB1O9MMq+g1+hOx9s+XHyTui9FL4V+IUO1ygVqEQB5\nPSiRBvcIsajSGVao+vK0gf2XfcXzqr3y3NhBky9rFMp1g+ykb2yWekV4WiROJlCj\nTsWwWZDRyjiGahDbho/XW8JciouHZhJdjhmO31rqW3HdFviCTdXMiGk3GQIzz/Jg\nP+enOaHXoY9lcxzDvY9z1BysWBgNvNrMnVge/fLP9o+a0a0PRIIVl8T0Ef3zeg1O\nCLCSy/1Vae5Tx63ZTFvGFdOSusYkG9rlAUHXZE364JRCKzM9Bz0bM+t+LaO0MaEb\nYoxcXEPU+gB2IvmARpInN3oHexR6ekuYHVTRGdWrdmuHFzc7eFwygRqTFdoCCU+G\nQZEkd+lOEyv0zvQqYg+Jp0AEGz2B2zB53uBVECtn0EqrSdPtRzUBSByXVs6QhSXn\neVmy+z3U3MecP63X6oSPXekqSyZFuegXpNNuHkjNoL4ep2ix\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIEtzCCA5+gAwIBAgIJAIewRMI8OnvTMA0GCSqGSIb3DQEBBQUAMIGYMQswCQYD\nVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xHDAa\nBgNVBAoTE0hhc2hpQ29ycCBUZXN0IENlcnQxDDAKBgNVBAsTA0RldjEWMBQGA1UE\nAxMNdGVzdC5pbnRlcm5hbDEgMB4GCSqGSIb3DQEJARYRdGVzdEBpbnRlcm5hbC5j\nb20wHhcNMTQwNDA3MTkwMTA4WhcNMjQwNDA0MTkwMTA4WjCBmDELMAkGA1UEBhMC\nVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMRwwGgYDVQQK\nExNIYXNoaUNvcnAgVGVzdCBDZXJ0MQwwCgYDVQQLEwNEZXYxFjAUBgNVBAMTDXRl\nc3QuaW50ZXJuYWwxIDAeBgkqhkiG9w0BCQEWEXRlc3RAaW50ZXJuYWwuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxrs6JK4NpiOItxrpNR/1ppUU\nmH7p2BgLCBZ6eHdclle9J56i68adt8J85zaqphCfz6VDP58DsFx+N50PZyjQaDsU\nd0HejRqfHRMtg2O+UQkv4Z66+Vo+gc6uGuANi2xMtSYDVTAqqzF48OOPQDgYkzcG\nxcFZzTRFFZt2vPnyHj8cHcaFo/NMNVh7C3yTXevRGNm9u2mrbxCEeiHzFC2WUnvg\nU2jQuC7Fhnl33Zd3B6d3mQH6O23ncmwxTcPUJe6xZaIRrDuzwUcyhLj5Z3faag/f\npFIIcHSiHRfoqHLGsGg+3swId/zVJSSDHr7pJUu7Cre+vZa63FqDaooqvnisrQID\nAQABo4IBADCB/TAdBgNVHQ4EFgQUo/nrOfqvbee2VklVKIFlyQEbuJUwgc0GA1Ud\nIwSBxTCBwoAUo/nrOfqvbee2VklVKIFlyQEbuJWhgZ6kgZswgZgxCzAJBgNVBAYT\nAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEcMBoGA1UE\nChMTSGFzaGlDb3JwIFRlc3QgQ2VydDEMMAoGA1UECxMDRGV2MRYwFAYDVQQDEw10\nZXN0LmludGVybmFsMSAwHgYJKoZIhvcNAQkBFhF0ZXN0QGludGVybmFsLmNvbYIJ\nAIewRMI8OnvTMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADa9fV9h\ngjapBlkNmu64WX0Ufub5dsJrdHS8672P30S7ILB7Mk0W8sL65IezRsZnG898yHf9\n2uzmz5OvNTM9K380g7xFlyobSVq+6yqmmSAlA/ptAcIIZT727P5jig/DB7fzJM3g\njctDlEGOmEe50GQXc25VKpcpjAsNQi5ER5gowQ0v3IXNZs+yU+LvxLHc0rUJ/XSp\nlFCAMOqd5uRoMOejnT51G6krvLNzPaQ3N9jQfNVY4Q0zfs0M+6dRWvqfqB9Vyq8/\nPOLMld+HyAZEBk9zK3ZVIXx6XS4dkDnSNR91njLq7eouf6M7+7s/oMQZZRtAfQ6r\nwlW975rYa1ZqEdA=\n-----END CERTIFICATE-----\n"
30+
}
31+
}
32+
}
33+
},
34+
"http2_protocol_options": {},
35+
"hosts": [
36+
{
37+
"socket_address": {
38+
"address": "127.0.0.1",
39+
"port_value": 8502
40+
}
41+
}
42+
]
43+
}
44+
]
45+
},
46+
"stats_config": {
47+
"stats_tags": [
48+
{
49+
"regex": "^cluster\\.((?:([^.]+)~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+\\.[^.]+\\.[^.]+\\.consul\\.)",
50+
"tag_name": "consul.custom_hash"
51+
},
52+
{
53+
"regex": "^cluster\\.((?:[^.]+~)?(?:([^.]+)\\.)?[^.]+\\.[^.]+\\.[^.]+\\.[^.]+\\.[^.]+\\.consul\\.)",
54+
"tag_name": "consul.service_subset"
55+
},
56+
{
57+
"regex": "^cluster\\.((?:[^.]+~)?(?:[^.]+\\.)?([^.]+)\\.[^.]+\\.[^.]+\\.[^.]+\\.[^.]+\\.consul\\.)",
58+
"tag_name": "consul.service"
59+
},
60+
{
61+
"regex": "^cluster\\.((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.([^.]+)\\.[^.]+\\.[^.]+\\.[^.]+\\.consul\\.)",
62+
"tag_name": "consul.namespace"
63+
},
64+
{
65+
"regex": "^cluster\\.((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.([^.]+)\\.[^.]+\\.[^.]+\\.consul\\.)",
66+
"tag_name": "consul.datacenter"
67+
},
68+
{
69+
"regex": "^cluster\\.((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+\\.([^.]+)\\.[^.]+\\.consul\\.)",
70+
"tag_name": "consul.routing_type"
71+
},
72+
{
73+
"regex": "^cluster\\.((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+\\.[^.]+\\.([^.]+)\\.consul\\.)",
74+
"tag_name": "consul.trust_domain"
75+
},
76+
{
77+
"regex": "^cluster\\.(((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+)\\.[^.]+\\.[^.]+\\.consul\\.)",
78+
"tag_name": "consul.target"
79+
},
80+
{
81+
"regex": "^cluster\\.(((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+\\.[^.]+\\.[^.]+)\\.consul\\.)",
82+
"tag_name": "consul.full_target"
83+
},
84+
{
85+
"tag_name": "local_cluster",
86+
"fixed_value": "test-proxy"
87+
}
88+
],
89+
"use_all_default_tags": true
90+
},
91+
"dynamic_resources": {
92+
"lds_config": {
93+
"ads": {}
94+
},
95+
"cds_config": {
96+
"ads": {}
97+
},
98+
"ads_config": {
99+
"api_type": "GRPC",
100+
"grpc_services": {
101+
"initial_metadata": [
102+
{
103+
"key": "x-consul-token",
104+
"value": ""
105+
}
106+
],
107+
"envoy_grpc": {
108+
"cluster_name": "local_agent"
109+
}
110+
}
111+
}
112+
},
113+
"layered_runtime": {
114+
"layers": [
115+
{
116+
"name": "static_layer",
117+
"static_layer": {
118+
"envoy.deprecated_features:envoy.api.v2.Cluster.tls_context": true,
119+
"envoy.deprecated_features:envoy.config.trace.v2.ZipkinConfig.HTTP_JSON_V1": true,
120+
"envoy.deprecated_features:envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.operation_name": true
121+
}
122+
}
123+
]
124+
}
125+
}

tlsutil/config.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ func (c *Configurator) Update(config Config) error {
238238
if err != nil {
239239
return err
240240
}
241-
pems, err := loadCAs(config.CAFile, config.CAPath)
241+
pems, err := LoadCAs(config.CAFile, config.CAPath)
242242
if err != nil {
243243
return err
244244
}
@@ -420,7 +420,7 @@ func loadKeyPair(certFile, keyFile string) (*tls.Certificate, error) {
420420
return &cert, nil
421421
}
422422

423-
func loadCAs(caFile, caPath string) ([]string, error) {
423+
func LoadCAs(caFile, caPath string) ([]string, error) {
424424
if caFile == "" && caPath == "" {
425425
return nil, nil
426426
}

tlsutil/config_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -519,7 +519,7 @@ func TestConfigurator_ErrorPropagation(t *testing.T) {
519519
if !v.excludeCheck {
520520
cert, err := v.config.KeyPair()
521521
require.NoError(t, err, info)
522-
pems, err := loadCAs(v.config.CAFile, v.config.CAPath)
522+
pems, err := LoadCAs(v.config.CAFile, v.config.CAPath)
523523
require.NoError(t, err, info)
524524
pool, err := pool(pems)
525525
require.NoError(t, err, info)
@@ -562,7 +562,7 @@ func TestConfigurator_CommonTLSConfigServerNameNodeName(t *testing.T) {
562562
}
563563
}
564564

565-
func TestConfigurator_loadCAs(t *testing.T) {
565+
func TestConfigurator_LoadCAs(t *testing.T) {
566566
type variant struct {
567567
cafile, capath string
568568
shouldErr bool
@@ -579,7 +579,7 @@ func TestConfigurator_loadCAs(t *testing.T) {
579579
{"../test/ca/root.cer", "../test/ca_path", false, false, 1},
580580
}
581581
for i, v := range variants {
582-
pems, err1 := loadCAs(v.cafile, v.capath)
582+
pems, err1 := LoadCAs(v.cafile, v.capath)
583583
pool, err2 := pool(pems)
584584
info := fmt.Sprintf("case %d", i)
585585
if v.shouldErr {

0 commit comments

Comments
 (0)