Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions test/envoye2e/http_metadata_exchange/exchange_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,51 @@ func TestHTTPExchange(t *testing.T) {
}
}

func TestHTTPExchangeBaggage(t *testing.T) {
params := driver.NewTestParams(t, map[string]string{}, envoye2e.ProxyE2ETests)
params.Vars["ServerMetadata"] = params.LoadTestData("testdata/server_node_metadata.json.tmpl")
params.Vars["ServerHTTPFilters"] = params.LoadTestData("testdata/filters/mx_native_inbound_baggage.yaml.tmpl")
if err := (&driver.Scenario{
Steps: []driver.Step{
&driver.XDS{},
&driver.Update{Node: "server", Version: "0", Listeners: []string{driver.LoadTestData("testdata/listener/server.yaml.tmpl")}},
&driver.Envoy{Bootstrap: params.LoadTestData("testdata/bootstrap/server.yaml.tmpl")},
&driver.Sleep{Duration: 1 * time.Second},
&driver.HTTPCall{
IP: "127.0.0.2",
Port: params.Ports.ServerPort,
Body: "hello, world!",
RequestHeaders: map[string]string{
"baggage": "app.version=test-app-v1," +
"app.name=test-app," +
"service.name=canonical-name," +
"k8s.deployment.name=test-deployment," +
"k8s.namespace.name=test-namespace," +
"service.version=v1," +
"k8s.cluster.name=test-cluster," +
"cloud.region=test-region," +
"cloud.availability_zone=test-zone",
},
ResponseHeaders: map[string]string{
"baggage": "k8s.deployment.name=ratings-v1," +
"k8s.namespace.name=default," +
"k8s.cluster.name=server-cluster," +
"service.name=ratings," +
"service.version=version-1," +
"app.name=ratings," +
"app.version=v1," +
"k8s.instance.name=ratings-v1-84975bc778-pxz2w",
},
},
&driver.Stats{AdminPort: params.Ports.ServerAdmin, Matchers: map[string]driver.StatMatcher{
"istio_requests_total": &driver.PartialStat{Metric: "testdata/metric/waypoint_downstream_baggage_request.yaml"},
}},
},
}).Run(params); err != nil {
t.Fatal(err)
}
}

func TestNativeHTTPExchange(t *testing.T) {
params := driver.NewTestParams(t, map[string]string{}, envoye2e.ProxyE2ETests)
params.Vars["ServerMetadata"] = params.LoadTestData("testdata/server_node_metadata.json.tmpl")
Expand Down
1 change: 1 addition & 0 deletions test/envoye2e/inventory.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ func init() {
"TestHTTPExchange",
"TestNativeHTTPExchange",
"TestHTTPExchangeAdditionalLabels",
"TestHTTPExchangeBaggage",
"TestStats403Failure/#00",
"TestStatsECDS/#00",
"TestStatsEndpointLabels/#00",
Expand Down
14 changes: 14 additions & 0 deletions testdata/filters/mx_native_inbound_baggage.yaml.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
- name: mx_inbound{{.N}}
typed_config:
"@type": type.googleapis.com/udpa.type.v1.TypedStruct
type_url: type.googleapis.com/io.istio.http.peer_metadata.Config
value:
downstream_discovery:
- baggage: {}
downstream_propagation:
- baggage: {}
shared_with_upstream: true
- name: stats_inbound{{.N}}
typed_config:
"@type": type.googleapis.com/udpa.type.v1.TypedStruct
type_url: type.googleapis.com/stats.PluginConfig
56 changes: 56 additions & 0 deletions testdata/metric/waypoint_downstream_baggage_request.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: istio_requests_total
type: COUNTER
metric:
- counter:
value: 1
label:
- name: reporter
value: destination
- name: source_workload
value: test-deployment
- name: source_canonical_service
value: canonical-name
- name: source_canonical_revision
value: v1
- name: source_workload_namespace
value: test-namespace
- name: source_principal
value: unknown
- name: source_app
value: canonical-name
- name: source_version
value: v1
- name: source_cluster
value: test-cluster
- name: destination_workload
value: ratings-v1
- name: destination_workload_namespace
value: default
- name: destination_principal
value: unknown
- name: destination_app
value: ratings
- name: destination_version
value: v1
- name: destination_service
value: server.default.svc.cluster.local
- name: destination_canonical_service
value: ratings
- name: destination_canonical_revision
value: version-1
- name: destination_service_name
value: server
- name: destination_service_namespace
value: default
- name: destination_cluster
value: server-cluster
- name: request_protocol
value: http
- name: response_code
value: "200"
- name: grpc_response_status
value: ""
- name: response_flags
value: "-"
- name: connection_security_policy
value: none