add envoy version 1.12.2 and 1.13.0 to the matrix (#7240)

* add 1.12.2

* add envoy 1.13.0

* Introduce -envoy-version to get 1.10.0 passing.

* update old version and fix consul-exec case

* add envoy_version and fix check

* Update Envoy CLI tests to account for the 1.13 compatibility changes.

Co-authored-by: Matt Keeler <mkeeler@users.noreply.github.com>
This commit is contained in:
Hans Hasselberg 2020-02-10 20:53:04 +01:00 committed by GitHub
parent 0b1902f03f
commit 9cb7adb304
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 298 additions and 50 deletions

View File

@ -525,14 +525,13 @@ jobs:
- store_test_results: - store_test_results:
path: ui-v2/test-results path: ui-v2/test-results
# Envoy integration tests. Require docker dev binary to be built already envoy-integration-test-1.10.0:
envoy-integration-test-1.8.0:
docker: docker:
# We only really need bash and docker-compose which is installed on all # We only really need bash and docker-compose which is installed on all
# Circle images but pick Go since we have to pick one of them. # Circle images but pick Go since we have to pick one of them.
- image: *GOLANG_IMAGE - image: *GOLANG_IMAGE
environment: environment:
ENVOY_VERSIONS: "1.8.0" ENVOY_VERSIONS: "1.10.0"
steps: &ENVOY_INTEGRATION_TEST_STEPS steps: &ENVOY_INTEGRATION_TEST_STEPS
- checkout - checkout
# Get go binary from workspace # Get go binary from workspace
@ -552,25 +551,25 @@ jobs:
path: ./test/integration/connect/envoy/workdir/logs path: ./test/integration/connect/envoy/workdir/logs
destination: container-logs destination: container-logs
envoy-integration-test-1.9.1: envoy-integration-test-1.11.2:
docker: docker:
- image: *GOLANG_IMAGE - image: *GOLANG_IMAGE
environment: environment:
ENVOY_VERSIONS: "1.9.1" ENVOY_VERSIONS: "1.11.2"
steps: *ENVOY_INTEGRATION_TEST_STEPS steps: *ENVOY_INTEGRATION_TEST_STEPS
envoy-integration-test-1.10.0: envoy-integration-test-1.12.2:
docker: docker:
- image: *GOLANG_IMAGE - image: *GOLANG_IMAGE
environment: environment:
ENVOY_VERSIONS: "1.10.0" ENVOY_VERSIONS: "1.12.2"
steps: *ENVOY_INTEGRATION_TEST_STEPS steps: *ENVOY_INTEGRATION_TEST_STEPS
envoy-integration-test-1.11.1: envoy-integration-test-1.13.0:
docker: docker:
- image: *GOLANG_IMAGE - image: *GOLANG_IMAGE
environment: environment:
ENVOY_VERSIONS: "1.11.1" ENVOY_VERSIONS: "1.13.0"
steps: *ENVOY_INTEGRATION_TEST_STEPS steps: *ENVOY_INTEGRATION_TEST_STEPS
# run tests on vault ca provider integration tests # run tests on vault ca provider integration tests
@ -656,16 +655,16 @@ workflows:
- nomad-integration-0_8: - nomad-integration-0_8:
requires: requires:
- dev-build - dev-build
- envoy-integration-test-1.8.0:
requires:
- dev-build
- envoy-integration-test-1.9.1:
requires:
- dev-build
- envoy-integration-test-1.10.0: - envoy-integration-test-1.10.0:
requires: requires:
- dev-build - dev-build
- envoy-integration-test-1.11.1: - envoy-integration-test-1.11.2:
requires:
- dev-build
- envoy-integration-test-1.12.2:
requires:
- dev-build
- envoy-integration-test-1.13.0:
requires: requires:
- dev-build - dev-build
- vault-ca-provider: - vault-ca-provider:

View File

@ -96,6 +96,10 @@ type BootstrapTplArgs struct {
// Namespace is the Consul Enterprise Namespace of the proxy service instance as // Namespace is the Consul Enterprise Namespace of the proxy service instance as
// registered with the Consul agent. // registered with the Consul agent.
Namespace string Namespace string
// EnvoyVersion is the envoy version, which is necessary to generate the
// correct configuration.
EnvoyVersion string
} }
const bootstrapTemplate = `{ const bootstrapTemplate = `{
@ -112,7 +116,8 @@ const bootstrapTemplate = `{
"cluster": "{{ .ProxyCluster }}", "cluster": "{{ .ProxyCluster }}",
"id": "{{ .ProxyID }}", "id": "{{ .ProxyID }}",
"metadata": { "metadata": {
"namespace": "{{if ne .Namespace ""}}{{ .Namespace }}{{else}}default{{end}}" "namespace": "{{if ne .Namespace ""}}{{ .Namespace }}{{else}}default{{end}}",
"envoy_version": "{{ .EnvoyVersion }}"
} }
}, },
"static_resources": { "static_resources": {
@ -190,6 +195,20 @@ const bootstrapTemplate = `{
} }
} }
} }
{{- if ne .EnvoyVersion "1.10.0"}}
},
"layered_runtime":{
"layers": [
{
"name": "static_layer",
"static_layer": {
"envoy.deprecated_features:envoy.api.v2.Cluster.tls_context": true,
"envoy.deprecated_features:envoy.config.trace.v2.ZipkinConfig.HTTP_JSON_V1": true,
"envoy.deprecated_features:envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.operation_name": true
}
}
]
{{- end }}
} }
} }
` `

View File

@ -56,6 +56,7 @@ type cmd struct {
bootstrap bool bootstrap bool
disableCentralConfig bool disableCentralConfig bool
grpcAddr string grpcAddr string
envoyVersion string
// mesh gateway registration information // mesh gateway registration information
register bool register bool
@ -110,6 +111,9 @@ func (c *cmd) init() {
"Set the agent's gRPC address and port (in http(s)://host:port format). "+ "Set the agent's gRPC address and port (in http(s)://host:port format). "+
"Alternatively, you can specify CONSUL_GRPC_ADDR in ENV.") "Alternatively, you can specify CONSUL_GRPC_ADDR in ENV.")
c.flags.StringVar(&c.envoyVersion, "envoy-version", "1.13.0",
"Sets the envoy-version that the envoy binary has.")
c.flags.BoolVar(&c.register, "register", false, c.flags.BoolVar(&c.register, "register", false,
"Register a new Mesh Gateway service before configuring and starting Envoy") "Register a new Mesh Gateway service before configuring and starting Envoy")
@ -519,6 +523,7 @@ func (c *cmd) templateArgs() (*BootstrapTplArgs, error) {
Token: httpCfg.Token, Token: httpCfg.Token,
LocalAgentClusterName: xds.LocalAgentClusterName, LocalAgentClusterName: xds.LocalAgentClusterName,
Namespace: httpCfg.Namespace, Namespace: httpCfg.Namespace,
EnvoyVersion: c.envoyVersion,
}, nil }, nil
} }

View File

@ -83,6 +83,7 @@ func TestGenerateConfig(t *testing.T) {
Flags: []string{"-proxy-id", "test-proxy"}, Flags: []string{"-proxy-id", "test-proxy"},
Env: []string{}, Env: []string{},
WantArgs: BootstrapTplArgs{ WantArgs: BootstrapTplArgs{
EnvoyVersion: "1.13.0",
ProxyCluster: "test-proxy", ProxyCluster: "test-proxy",
ProxyID: "test-proxy", ProxyID: "test-proxy",
AgentAddress: "127.0.0.1", AgentAddress: "127.0.0.1",
@ -99,6 +100,7 @@ func TestGenerateConfig(t *testing.T) {
"-token", "c9a52720-bf6c-4aa6-b8bc-66881a5ade95"}, "-token", "c9a52720-bf6c-4aa6-b8bc-66881a5ade95"},
Env: []string{}, Env: []string{},
WantArgs: BootstrapTplArgs{ WantArgs: BootstrapTplArgs{
EnvoyVersion: "1.13.0",
ProxyCluster: "test-proxy", ProxyCluster: "test-proxy",
ProxyID: "test-proxy", ProxyID: "test-proxy",
AgentAddress: "127.0.0.1", AgentAddress: "127.0.0.1",
@ -117,6 +119,7 @@ func TestGenerateConfig(t *testing.T) {
"CONSUL_HTTP_TOKEN=c9a52720-bf6c-4aa6-b8bc-66881a5ade95", "CONSUL_HTTP_TOKEN=c9a52720-bf6c-4aa6-b8bc-66881a5ade95",
}, },
WantArgs: BootstrapTplArgs{ WantArgs: BootstrapTplArgs{
EnvoyVersion: "1.13.0",
ProxyCluster: "test-proxy", ProxyCluster: "test-proxy",
ProxyID: "test-proxy", ProxyID: "test-proxy",
AgentAddress: "127.0.0.1", AgentAddress: "127.0.0.1",
@ -138,6 +141,7 @@ func TestGenerateConfig(t *testing.T) {
"token.txt": "c9a52720-bf6c-4aa6-b8bc-66881a5ade95", "token.txt": "c9a52720-bf6c-4aa6-b8bc-66881a5ade95",
}, },
WantArgs: BootstrapTplArgs{ WantArgs: BootstrapTplArgs{
EnvoyVersion: "1.13.0",
ProxyCluster: "test-proxy", ProxyCluster: "test-proxy",
ProxyID: "test-proxy", ProxyID: "test-proxy",
AgentAddress: "127.0.0.1", AgentAddress: "127.0.0.1",
@ -159,6 +163,7 @@ func TestGenerateConfig(t *testing.T) {
"token.txt": "c9a52720-bf6c-4aa6-b8bc-66881a5ade95", "token.txt": "c9a52720-bf6c-4aa6-b8bc-66881a5ade95",
}, },
WantArgs: BootstrapTplArgs{ WantArgs: BootstrapTplArgs{
EnvoyVersion: "1.13.0",
ProxyCluster: "test-proxy", ProxyCluster: "test-proxy",
ProxyID: "test-proxy", ProxyID: "test-proxy",
AgentAddress: "127.0.0.1", AgentAddress: "127.0.0.1",
@ -176,6 +181,7 @@ func TestGenerateConfig(t *testing.T) {
"-grpc-addr", "localhost:9999"}, "-grpc-addr", "localhost:9999"},
Env: []string{}, Env: []string{},
WantArgs: BootstrapTplArgs{ WantArgs: BootstrapTplArgs{
EnvoyVersion: "1.13.0",
ProxyCluster: "test-proxy", ProxyCluster: "test-proxy",
ProxyID: "test-proxy", ProxyID: "test-proxy",
// Should resolve IP, note this might not resolve the same way // Should resolve IP, note this might not resolve the same way
@ -196,6 +202,7 @@ func TestGenerateConfig(t *testing.T) {
"CONSUL_GRPC_ADDR=localhost:9999", "CONSUL_GRPC_ADDR=localhost:9999",
}, },
WantArgs: BootstrapTplArgs{ WantArgs: BootstrapTplArgs{
EnvoyVersion: "1.13.0",
ProxyCluster: "test-proxy", ProxyCluster: "test-proxy",
ProxyID: "test-proxy", ProxyID: "test-proxy",
// Should resolve IP, note this might not resolve the same way // Should resolve IP, note this might not resolve the same way
@ -215,6 +222,7 @@ func TestGenerateConfig(t *testing.T) {
"-grpc-addr", "unix:///var/run/consul.sock"}, "-grpc-addr", "unix:///var/run/consul.sock"},
Env: []string{}, Env: []string{},
WantArgs: BootstrapTplArgs{ WantArgs: BootstrapTplArgs{
EnvoyVersion: "1.13.0",
ProxyCluster: "test-proxy", ProxyCluster: "test-proxy",
ProxyID: "test-proxy", ProxyID: "test-proxy",
AgentSocket: "/var/run/consul.sock", AgentSocket: "/var/run/consul.sock",
@ -229,6 +237,7 @@ func TestGenerateConfig(t *testing.T) {
Flags: []string{"-proxy-id", "test-proxy"}, Flags: []string{"-proxy-id", "test-proxy"},
GRPCPort: 9999, GRPCPort: 9999,
WantArgs: BootstrapTplArgs{ WantArgs: BootstrapTplArgs{
EnvoyVersion: "1.13.0",
ProxyCluster: "test-proxy", ProxyCluster: "test-proxy",
ProxyID: "test-proxy", ProxyID: "test-proxy",
// Should resolve IP, note this might not resolve the same way // Should resolve IP, note this might not resolve the same way
@ -247,6 +256,7 @@ func TestGenerateConfig(t *testing.T) {
Flags: []string{"-proxy-id", "test-proxy", "-admin-access-log-path", "/some/path/access.log"}, Flags: []string{"-proxy-id", "test-proxy", "-admin-access-log-path", "/some/path/access.log"},
Env: []string{}, Env: []string{},
WantArgs: BootstrapTplArgs{ WantArgs: BootstrapTplArgs{
EnvoyVersion: "1.13.0",
ProxyCluster: "test-proxy", ProxyCluster: "test-proxy",
ProxyID: "test-proxy", ProxyID: "test-proxy",
// Should resolve IP, note this might not resolve the same way // Should resolve IP, note this might not resolve the same way
@ -265,6 +275,7 @@ func TestGenerateConfig(t *testing.T) {
Flags: []string{"-proxy-id", "test-proxy", "-ca-file", "some/path"}, Flags: []string{"-proxy-id", "test-proxy", "-ca-file", "some/path"},
Env: []string{}, Env: []string{},
WantArgs: BootstrapTplArgs{ WantArgs: BootstrapTplArgs{
EnvoyVersion: "1.13.0",
ProxyCluster: "test-proxy", ProxyCluster: "test-proxy",
ProxyID: "test-proxy", ProxyID: "test-proxy",
// Should resolve IP, note this might not resolve the same way // Should resolve IP, note this might not resolve the same way
@ -280,6 +291,7 @@ func TestGenerateConfig(t *testing.T) {
Flags: []string{"-proxy-id", "test-proxy", "-ca-file", "../../../test/ca/root.cer"}, Flags: []string{"-proxy-id", "test-proxy", "-ca-file", "../../../test/ca/root.cer"},
Env: []string{"CONSUL_HTTP_SSL=1"}, Env: []string{"CONSUL_HTTP_SSL=1"},
WantArgs: BootstrapTplArgs{ WantArgs: BootstrapTplArgs{
EnvoyVersion: "1.13.0",
ProxyCluster: "test-proxy", ProxyCluster: "test-proxy",
ProxyID: "test-proxy", ProxyID: "test-proxy",
// Should resolve IP, note this might not resolve the same way // Should resolve IP, note this might not resolve the same way
@ -322,6 +334,7 @@ func TestGenerateConfig(t *testing.T) {
}`, }`,
}, },
WantArgs: BootstrapTplArgs{ WantArgs: BootstrapTplArgs{
EnvoyVersion: "1.13.0",
ProxyCluster: "test-proxy", ProxyCluster: "test-proxy",
ProxyID: "test-proxy", ProxyID: "test-proxy",
AgentAddress: "127.0.0.1", AgentAddress: "127.0.0.1",
@ -354,6 +367,7 @@ func TestGenerateConfig(t *testing.T) {
}`, }`,
}, },
WantArgs: BootstrapTplArgs{ WantArgs: BootstrapTplArgs{
EnvoyVersion: "1.13.0",
ProxyCluster: "test-proxy", ProxyCluster: "test-proxy",
ProxyID: "test-proxy", ProxyID: "test-proxy",
AgentAddress: "127.0.0.1", AgentAddress: "127.0.0.1",
@ -391,6 +405,7 @@ func TestGenerateConfig(t *testing.T) {
} , { "name": "fake_sink_2" }`, } , { "name": "fake_sink_2" }`,
}, },
WantArgs: BootstrapTplArgs{ WantArgs: BootstrapTplArgs{
EnvoyVersion: "1.13.0",
ProxyCluster: "test-proxy", ProxyCluster: "test-proxy",
ProxyID: "test-proxy", ProxyID: "test-proxy",
AgentAddress: "127.0.0.1", AgentAddress: "127.0.0.1",
@ -415,6 +430,7 @@ func TestGenerateConfig(t *testing.T) {
}`, }`,
}, },
WantArgs: BootstrapTplArgs{ WantArgs: BootstrapTplArgs{
EnvoyVersion: "1.13.0",
ProxyCluster: "test-proxy", ProxyCluster: "test-proxy",
ProxyID: "test-proxy", ProxyID: "test-proxy",
AgentAddress: "127.0.0.1", AgentAddress: "127.0.0.1",
@ -469,6 +485,7 @@ func TestGenerateConfig(t *testing.T) {
}`, }`,
}, },
WantArgs: BootstrapTplArgs{ WantArgs: BootstrapTplArgs{
EnvoyVersion: "1.13.0",
ProxyCluster: "test-proxy", ProxyCluster: "test-proxy",
ProxyID: "test-proxy", ProxyID: "test-proxy",
AgentAddress: "127.0.0.1", AgentAddress: "127.0.0.1",

View File

@ -12,7 +12,8 @@
"cluster": "test-proxy", "cluster": "test-proxy",
"id": "test-proxy", "id": "test-proxy",
"metadata": { "metadata": {
"namespace": "default" "namespace": "default",
"envoy_version": "1.13.0"
} }
}, },
"static_resources": { "static_resources": {
@ -99,5 +100,17 @@
} }
} }
} }
},
"layered_runtime": {
"layers": [
{
"name": "static_layer",
"static_layer": {
"envoy.deprecated_features:envoy.api.v2.Cluster.tls_context": true,
"envoy.deprecated_features:envoy.config.trace.v2.ZipkinConfig.HTTP_JSON_V1": true,
"envoy.deprecated_features:envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.operation_name": true
}
}
]
} }
} }

View File

@ -12,7 +12,8 @@
"cluster": "test-proxy", "cluster": "test-proxy",
"id": "test-proxy", "id": "test-proxy",
"metadata": { "metadata": {
"namespace": "default" "namespace": "default",
"envoy_version": "1.13.0"
} }
}, },
"static_resources": { "static_resources": {
@ -99,5 +100,17 @@
} }
} }
} }
},
"layered_runtime": {
"layers": [
{
"name": "static_layer",
"static_layer": {
"envoy.deprecated_features:envoy.api.v2.Cluster.tls_context": true,
"envoy.deprecated_features:envoy.config.trace.v2.ZipkinConfig.HTTP_JSON_V1": true,
"envoy.deprecated_features:envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.operation_name": true
}
}
]
} }
} }

View File

@ -12,7 +12,8 @@
"cluster": "test-proxy", "cluster": "test-proxy",
"id": "test-proxy", "id": "test-proxy",
"metadata": { "metadata": {
"namespace": "default" "namespace": "default",
"envoy_version": "1.13.0"
} }
}, },
"static_resources": { "static_resources": {
@ -108,5 +109,17 @@
} }
} }
} }
},
"layered_runtime": {
"layers": [
{
"name": "static_layer",
"static_layer": {
"envoy.deprecated_features:envoy.api.v2.Cluster.tls_context": true,
"envoy.deprecated_features:envoy.config.trace.v2.ZipkinConfig.HTTP_JSON_V1": true,
"envoy.deprecated_features:envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.operation_name": true
}
}
]
} }
} }

View File

@ -12,7 +12,8 @@
"cluster": "test-proxy", "cluster": "test-proxy",
"id": "test-proxy", "id": "test-proxy",
"metadata": { "metadata": {
"namespace": "default" "namespace": "default",
"envoy_version": "1.13.0"
} }
}, },
"static_resources": { "static_resources": {
@ -121,5 +122,17 @@
} }
} }
} }
},
"layered_runtime": {
"layers": [
{
"name": "static_layer",
"static_layer": {
"envoy.deprecated_features:envoy.api.v2.Cluster.tls_context": true,
"envoy.deprecated_features:envoy.config.trace.v2.ZipkinConfig.HTTP_JSON_V1": true,
"envoy.deprecated_features:envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.operation_name": true
}
}
]
} }
} }

View File

@ -12,7 +12,8 @@
"cluster": "test-proxy", "cluster": "test-proxy",
"id": "test-proxy", "id": "test-proxy",
"metadata": { "metadata": {
"namespace": "default" "namespace": "default",
"envoy_version": "1.13.0"
} }
}, },
"static_resources": { "static_resources": {
@ -112,5 +113,17 @@
} }
} }
} }
},
"layered_runtime": {
"layers": [
{
"name": "static_layer",
"static_layer": {
"envoy.deprecated_features:envoy.api.v2.Cluster.tls_context": true,
"envoy.deprecated_features:envoy.config.trace.v2.ZipkinConfig.HTTP_JSON_V1": true,
"envoy.deprecated_features:envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.operation_name": true
}
}
]
} }
} }

View File

@ -12,7 +12,8 @@
"cluster": "test-proxy", "cluster": "test-proxy",
"id": "test-proxy", "id": "test-proxy",
"metadata": { "metadata": {
"namespace": "default" "namespace": "default",
"envoy_version": "1.13.0"
} }
}, },
"static_resources": { "static_resources": {
@ -99,5 +100,17 @@
} }
} }
} }
},
"layered_runtime": {
"layers": [
{
"name": "static_layer",
"static_layer": {
"envoy.deprecated_features:envoy.api.v2.Cluster.tls_context": true,
"envoy.deprecated_features:envoy.config.trace.v2.ZipkinConfig.HTTP_JSON_V1": true,
"envoy.deprecated_features:envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.operation_name": true
}
}
]
} }
} }

View File

@ -12,7 +12,8 @@
"cluster": "test-proxy", "cluster": "test-proxy",
"id": "test-proxy", "id": "test-proxy",
"metadata": { "metadata": {
"namespace": "default" "namespace": "default",
"envoy_version": "1.13.0"
} }
}, },
"static_resources": { "static_resources": {
@ -99,5 +100,17 @@
} }
} }
} }
},
"layered_runtime": {
"layers": [
{
"name": "static_layer",
"static_layer": {
"envoy.deprecated_features:envoy.api.v2.Cluster.tls_context": true,
"envoy.deprecated_features:envoy.config.trace.v2.ZipkinConfig.HTTP_JSON_V1": true,
"envoy.deprecated_features:envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.operation_name": true
}
}
]
} }
} }

View File

@ -12,7 +12,8 @@
"cluster": "test-proxy", "cluster": "test-proxy",
"id": "test-proxy", "id": "test-proxy",
"metadata": { "metadata": {
"namespace": "default" "namespace": "default",
"envoy_version": "1.13.0"
} }
}, },
"static_resources": { "static_resources": {
@ -99,5 +100,17 @@
} }
} }
} }
},
"layered_runtime": {
"layers": [
{
"name": "static_layer",
"static_layer": {
"envoy.deprecated_features:envoy.api.v2.Cluster.tls_context": true,
"envoy.deprecated_features:envoy.config.trace.v2.ZipkinConfig.HTTP_JSON_V1": true,
"envoy.deprecated_features:envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.operation_name": true
}
}
]
} }
} }

View File

@ -12,7 +12,8 @@
"cluster": "test-proxy", "cluster": "test-proxy",
"id": "test-proxy", "id": "test-proxy",
"metadata": { "metadata": {
"namespace": "default" "namespace": "default",
"envoy_version": "1.13.0"
} }
}, },
"static_resources": { "static_resources": {
@ -98,5 +99,17 @@
} }
} }
} }
},
"layered_runtime": {
"layers": [
{
"name": "static_layer",
"static_layer": {
"envoy.deprecated_features:envoy.api.v2.Cluster.tls_context": true,
"envoy.deprecated_features:envoy.config.trace.v2.ZipkinConfig.HTTP_JSON_V1": true,
"envoy.deprecated_features:envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.operation_name": true
}
}
]
} }
} }

View File

@ -12,7 +12,8 @@
"cluster": "test-proxy", "cluster": "test-proxy",
"id": "test-proxy", "id": "test-proxy",
"metadata": { "metadata": {
"namespace": "default" "namespace": "default",
"envoy_version": "1.13.0"
} }
}, },
"static_resources": { "static_resources": {
@ -57,5 +58,17 @@
} }
} }
} }
},
"layered_runtime": {
"layers": [
{
"name": "static_layer",
"static_layer": {
"envoy.deprecated_features:envoy.api.v2.Cluster.tls_context": true,
"envoy.deprecated_features:envoy.config.trace.v2.ZipkinConfig.HTTP_JSON_V1": true,
"envoy.deprecated_features:envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.operation_name": true
}
}
]
} }
} }

View File

@ -12,7 +12,8 @@
"cluster": "test-proxy", "cluster": "test-proxy",
"id": "test-proxy", "id": "test-proxy",
"metadata": { "metadata": {
"namespace": "default" "namespace": "default",
"envoy_version": "1.13.0"
} }
}, },
"static_resources": { "static_resources": {
@ -99,5 +100,17 @@
} }
} }
} }
},
"layered_runtime": {
"layers": [
{
"name": "static_layer",
"static_layer": {
"envoy.deprecated_features:envoy.api.v2.Cluster.tls_context": true,
"envoy.deprecated_features:envoy.config.trace.v2.ZipkinConfig.HTTP_JSON_V1": true,
"envoy.deprecated_features:envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.operation_name": true
}
}
]
} }
} }

View File

@ -12,7 +12,8 @@
"cluster": "test-proxy", "cluster": "test-proxy",
"id": "test-proxy", "id": "test-proxy",
"metadata": { "metadata": {
"namespace": "default" "namespace": "default",
"envoy_version": "1.13.0"
} }
}, },
"static_resources": { "static_resources": {
@ -99,5 +100,17 @@
} }
} }
} }
},
"layered_runtime": {
"layers": [
{
"name": "static_layer",
"static_layer": {
"envoy.deprecated_features:envoy.api.v2.Cluster.tls_context": true,
"envoy.deprecated_features:envoy.config.trace.v2.ZipkinConfig.HTTP_JSON_V1": true,
"envoy.deprecated_features:envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.operation_name": true
}
}
]
} }
} }

View File

@ -12,7 +12,8 @@
"cluster": "test-proxy", "cluster": "test-proxy",
"id": "test-proxy", "id": "test-proxy",
"metadata": { "metadata": {
"namespace": "default" "namespace": "default",
"envoy_version": "1.13.0"
} }
}, },
"static_resources": { "static_resources": {
@ -99,5 +100,17 @@
} }
} }
} }
},
"layered_runtime": {
"layers": [
{
"name": "static_layer",
"static_layer": {
"envoy.deprecated_features:envoy.api.v2.Cluster.tls_context": true,
"envoy.deprecated_features:envoy.config.trace.v2.ZipkinConfig.HTTP_JSON_V1": true,
"envoy.deprecated_features:envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.operation_name": true
}
}
]
} }
} }

View File

@ -12,7 +12,8 @@
"cluster": "test-proxy", "cluster": "test-proxy",
"id": "test-proxy", "id": "test-proxy",
"metadata": { "metadata": {
"namespace": "default" "namespace": "default",
"envoy_version": "1.13.0"
} }
}, },
"static_resources": { "static_resources": {
@ -99,5 +100,17 @@
} }
} }
} }
},
"layered_runtime": {
"layers": [
{
"name": "static_layer",
"static_layer": {
"envoy.deprecated_features:envoy.api.v2.Cluster.tls_context": true,
"envoy.deprecated_features:envoy.config.trace.v2.ZipkinConfig.HTTP_JSON_V1": true,
"envoy.deprecated_features:envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.operation_name": true
}
}
]
} }
} }

View File

@ -12,7 +12,8 @@
"cluster": "test-proxy", "cluster": "test-proxy",
"id": "test-proxy", "id": "test-proxy",
"metadata": { "metadata": {
"namespace": "default" "namespace": "default",
"envoy_version": "1.13.0"
} }
}, },
"static_resources": { "static_resources": {
@ -132,5 +133,17 @@
} }
} }
} }
},
"layered_runtime": {
"layers": [
{
"name": "static_layer",
"static_layer": {
"envoy.deprecated_features:envoy.api.v2.Cluster.tls_context": true,
"envoy.deprecated_features:envoy.config.trace.v2.ZipkinConfig.HTTP_JSON_V1": true,
"envoy.deprecated_features:envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.operation_name": true
}
}
]
} }
} }

View File

@ -175,7 +175,7 @@ services:
s1-sidecar-proxy: s1-sidecar-proxy:
depends_on: depends_on:
- consul-primary - consul-primary
image: "envoyproxy/envoy:v${ENVOY_VERSION:-1.8.0}" image: "envoyproxy/envoy:v${ENVOY_VERSION}"
command: command:
- "envoy" - "envoy"
- "-c" - "-c"
@ -196,7 +196,7 @@ services:
s2-sidecar-proxy: s2-sidecar-proxy:
depends_on: depends_on:
- consul-primary - consul-primary
image: "envoyproxy/envoy:v${ENVOY_VERSION:-1.8.0}" image: "envoyproxy/envoy:v${ENVOY_VERSION}"
command: command:
- "envoy" - "envoy"
- "-c" - "-c"
@ -217,7 +217,7 @@ services:
s2-v1-sidecar-proxy: s2-v1-sidecar-proxy:
depends_on: depends_on:
- consul-primary - consul-primary
image: "envoyproxy/envoy:v${ENVOY_VERSION:-1.8.0}" image: "envoyproxy/envoy:v${ENVOY_VERSION}"
command: command:
- "envoy" - "envoy"
- "-c" - "-c"
@ -238,7 +238,7 @@ services:
s2-v2-sidecar-proxy: s2-v2-sidecar-proxy:
depends_on: depends_on:
- consul-primary - consul-primary
image: "envoyproxy/envoy:v${ENVOY_VERSION:-1.8.0}" image: "envoyproxy/envoy:v${ENVOY_VERSION}"
command: command:
- "envoy" - "envoy"
- "-c" - "-c"
@ -259,7 +259,7 @@ services:
s3-sidecar-proxy: s3-sidecar-proxy:
depends_on: depends_on:
- consul-primary - consul-primary
image: "envoyproxy/envoy:v${ENVOY_VERSION:-1.8.0}" image: "envoyproxy/envoy:v${ENVOY_VERSION}"
command: command:
- "envoy" - "envoy"
- "-c" - "-c"
@ -280,7 +280,7 @@ services:
s3-v1-sidecar-proxy: s3-v1-sidecar-proxy:
depends_on: depends_on:
- consul-primary - consul-primary
image: "envoyproxy/envoy:v${ENVOY_VERSION:-1.8.0}" image: "envoyproxy/envoy:v${ENVOY_VERSION}"
command: command:
- "envoy" - "envoy"
- "-c" - "-c"
@ -301,7 +301,7 @@ services:
s3-v2-sidecar-proxy: s3-v2-sidecar-proxy:
depends_on: depends_on:
- consul-primary - consul-primary
image: "envoyproxy/envoy:v${ENVOY_VERSION:-1.8.0}" image: "envoyproxy/envoy:v${ENVOY_VERSION}"
command: command:
- "envoy" - "envoy"
- "-c" - "-c"
@ -322,7 +322,7 @@ services:
s3-alt-sidecar-proxy: s3-alt-sidecar-proxy:
depends_on: depends_on:
- consul-primary - consul-primary
image: "envoyproxy/envoy:v${ENVOY_VERSION:-1.8.0}" image: "envoyproxy/envoy:v${ENVOY_VERSION}"
command: command:
- "envoy" - "envoy"
- "-c" - "-c"
@ -363,14 +363,16 @@ services:
context: . context: .
dockerfile: Dockerfile-consul-envoy dockerfile: Dockerfile-consul-envoy
args: args:
ENVOY_VERSION: ${ENVOY_VERSION:-1.8.0} ENVOY_VERSION: ${ENVOY_VERSION}
image: consul-dev-envoy:${ENVOY_VERSION:-1.8.0} image: consul-dev-envoy:${ENVOY_VERSION}
command: command:
- "consul" - "consul"
- "connect" - "connect"
- "envoy" - "envoy"
- "-sidecar-for" - "-sidecar-for"
- "s1" - "s1"
- "-envoy-version"
- ${ENVOY_VERSION}
- "--" - "--"
- "-l" - "-l"
- "debug" - "debug"
@ -480,7 +482,7 @@ services:
s1-sidecar-proxy-secondary: s1-sidecar-proxy-secondary:
depends_on: depends_on:
- consul-secondary - consul-secondary
image: "envoyproxy/envoy:v${ENVOY_VERSION:-1.8.0}" image: "envoyproxy/envoy:v${ENVOY_VERSION}"
command: command:
- "envoy" - "envoy"
- "-c" - "-c"
@ -501,7 +503,7 @@ services:
s2-sidecar-proxy-secondary: s2-sidecar-proxy-secondary:
depends_on: depends_on:
- consul-secondary - consul-secondary
image: "envoyproxy/envoy:v${ENVOY_VERSION:-1.8.0}" image: "envoyproxy/envoy:v${ENVOY_VERSION}"
command: command:
- "envoy" - "envoy"
- "-c" - "-c"
@ -522,7 +524,7 @@ services:
gateway-primary: gateway-primary:
depends_on: depends_on:
- consul-primary - consul-primary
image: "envoyproxy/envoy:v${ENVOY_VERSION:-1.8.0}" image: "envoyproxy/envoy:v${ENVOY_VERSION}"
command: command:
- "envoy" - "envoy"
- "-c" - "-c"
@ -543,7 +545,7 @@ services:
gateway-secondary: gateway-secondary:
depends_on: depends_on:
- consul-secondary - consul-secondary
image: "envoyproxy/envoy:v${ENVOY_VERSION:-1.8.0}" image: "envoyproxy/envoy:v${ENVOY_VERSION}"
command: command:
- "envoy" - "envoy"
- "-c" - "-c"

View File

@ -144,7 +144,14 @@ function get_envoy_listener_filters {
local HOSTPORT=$1 local HOSTPORT=$1
run retry_default curl -s -f $HOSTPORT/config_dump run retry_default curl -s -f $HOSTPORT/config_dump
[ "$status" -eq 0 ] [ "$status" -eq 0 ]
echo "$output" | jq --raw-output '.configs[2].dynamic_active_listeners[].listener | "\(.name) \( .filter_chains[0].filters | map(.name) | join(","))"' local ENVOY_VERSION=$(echo $output | jq --raw-output '.configs[0].bootstrap.node.metadata.envoy_version')
local QUERY=''
if [ "$ENVOY_VERSION" == "1.13.0" ]; then
QUERY='.configs[2].dynamic_listeners[].active_state.listener | "\(.name) \( .filter_chains[0].filters | map(.name) | join(","))"'
else
QUERY='.configs[2].dynamic_active_listeners[].listener | "\(.name) \( .filter_chains[0].filters | map(.name) | join(","))"'
fi
echo "$output" | jq --raw-output "$QUERY"
} }
function get_envoy_cluster_threshold { function get_envoy_cluster_threshold {
@ -508,6 +515,7 @@ function gen_envoy_bootstrap {
if output=$(docker_consul "$DC" connect envoy -bootstrap \ if output=$(docker_consul "$DC" connect envoy -bootstrap \
-proxy-id $PROXY_ID \ -proxy-id $PROXY_ID \
-envoy-version "$ENVOY_VERSION" \
-admin-bind 0.0.0.0:$ADMIN_PORT ${EXTRA_ENVOY_BS_ARGS} 2>&1); then -admin-bind 0.0.0.0:$ADMIN_PORT ${EXTRA_ENVOY_BS_ARGS} 2>&1); then
# All OK, write config to file # All OK, write config to file

View File

@ -17,7 +17,7 @@ FILTER_TESTS=${FILTER_TESTS:-}
STOP_ON_FAIL=${STOP_ON_FAIL:-} STOP_ON_FAIL=${STOP_ON_FAIL:-}
# ENVOY_VERSIONS is the list of envoy versions to run each test against # ENVOY_VERSIONS is the list of envoy versions to run each test against
ENVOY_VERSIONS=${ENVOY_VERSIONS:-"1.10.0 1.9.1 1.8.0 1.11.2"} ENVOY_VERSIONS=${ENVOY_VERSIONS:-"1.10.0 1.11.2 1.12.2 1.13.0"}
if [ ! -z "$DEBUG" ] ; then if [ ! -z "$DEBUG" ] ; then
set -x set -x
@ -27,7 +27,6 @@ DIR=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
cd $DIR cd $DIR
FILTER_TESTS=${FILTER_TESTS:-}
LEAVE_CONSUL_UP=${LEAVE_CONSUL_UP:-} LEAVE_CONSUL_UP=${LEAVE_CONSUL_UP:-}
PROXY_LOGS_ON_FAIL=${PROXY_LOGS_ON_FAIL:-} PROXY_LOGS_ON_FAIL=${PROXY_LOGS_ON_FAIL:-}

View File

@ -73,6 +73,9 @@ proxy configuration needed.
for and so can be used to access any upstream service that that service is for and so can be used to access any upstream service that that service is
allowed to access by [Connect intentions](/docs/connect/intentions.html). allowed to access by [Connect intentions](/docs/connect/intentions.html).
* `-envoy-version` - The version of envoy that is being started. Default is
`1.13.0`. This is required so that the correct configuration can be generated.
* `-- [pass-through options]` - Any options given after a double dash are passed * `-- [pass-through options]` - Any options given after a double dash are passed
directly through to the `envoy` invocation. See [Envoy's directly through to the `envoy` invocation. See [Envoy's
documentation](https://www.envoyproxy.io/docs) for more details. The command documentation](https://www.envoyproxy.io/docs) for more details. The command

View File

@ -36,7 +36,8 @@ compatible Envoy versions.
| Consul Version | Compatible Envoy Versions | | Consul Version | Compatible Envoy Versions |
|---|---| |---|---|
| 1.5.2 and higher | 1.11.1 1.10.0, 1.9.1, 1.8.0† | | 1.7.0 and higher | 1.12.2, 1.11.2, 1.10.0, 1.9.1 |
| 1.5.2, 1.5.3, 1.6.x | 1.11.1, 1.10.0, 1.9.1, 1.8.0† |
| 1.5.0, 1.5.1 | 1.9.1, 1.8.0† | | 1.5.0, 1.5.1 | 1.9.1, 1.8.0† |
| 1.3.x, 1.4.x | 1.9.1, 1.8.0†, 1.7.0† | | 1.3.x, 1.4.x | 1.9.1, 1.8.0†, 1.7.0† |