Skip to content

Commit

Permalink
Fix Envoy proxy failing in tcp-metrics
Browse files Browse the repository at this point in the history
Description: This fixes a previous open issue layer5io#39

Updated envoy.yaml
- Envoy now calls for typed_config
- Rearranged placement of the filters, but it probably can be reworked to make it cleaner
- Clusters is now set up with individual load assignment, no longer uses hosts
  • Loading branch information
acald-creator committed Aug 21, 2022
1 parent 693a7fd commit 14aa1d5
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 42 deletions.
2 changes: 1 addition & 1 deletion tcp-metrics/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ edition = "2018"
crate-type = ["cdylib"]

[dependencies]
proxy-wasm = "0.1.0"
proxy-wasm = "0.2.0"
wasm-bindgen = "0.2"
97 changes: 56 additions & 41 deletions tcp-metrics/envoy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,57 +7,72 @@ static_resources:
port_value: 80
filter_chains:
- filters:
- name: envoy.filters.network.wasm
config:
config:
name: "tcp_metrics"
root_id: "tcp_metrics"
vm_config:
runtime: "envoy.wasm.runtime.v8"
code:
local:
filename: "/etc/tcp_metrics.wasm"
allow_precompiled: true
- name: envoy.tcp_proxy
config:
stat_prefix: ingress_tcp
cluster: web_service
- name: envoy.filters.network.tcp_proxy
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy
stat_prefix: ingress_tcp
cluster: web_service
- name: staticreply
address:
socket_address:
address: 127.0.0.1
port_value: 8099
filter_chains:
- filters:
- name: envoy.http_connection_manager
config:
stat_prefix: ingress_http
codec_type: auto
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains:
- "*"
routes:
- match:
prefix: "/"
direct_response:
status: 200
body:
inline_string: "example body\n"
http_filters:
- name: envoy.router
config: {}
- filters:
- name: envoy.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: ingress_http
codec_type: AUTO
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains:
- "*"
routes:
- match:
prefix: "/"
direct_response:
status: 200
body:
inline_string: "example body\n"
http_filters:
- name: envoy.filters.http.wasm
typed_config:
"@type": type.googleapis.com/udpa.type.v1.TypedStruct
type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
value:
config:
vm_config:
vm_id: "tcp_metrics"
runtime: "envoy.wasm.runtime.v8"
code:
local:
filename: "/etc/tcp_metrics.wasm"
- name: envoy.filters.http.router

clusters:
- name: web_service
connect_timeout: 0.25s
type: STRICT_DNS
lb_policy: round_robin
hosts:
- socket_address:
address: web_service
port_value: 5678
connect_timeout: 0.25s
load_assignment:
cluster_name: web_service
endpoints:
- locality:
region: local
zone: zone-1
load_balancing_weight: 1
priority: 0
lb_endpoints:
- endpoint:
address:
socket_address:
address: web_service
port_value: 5678
hostname: web_service

admin:
access_log_path: "/dev/null"
address:
Expand Down

0 comments on commit 14aa1d5

Please sign in to comment.