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 in `v3`
- Rearranged placement of the filters, but it probably can be reworked to make it cleaner
- Clusters is now set up with an endpoint, instead of `hosts`
- Probably need to fix spacing

Signed-off-by: Antonette Caldwell <[email protected]>
  • Loading branch information
acald-creator committed Aug 30, 2022
1 parent 693a7fd commit 64a2571
Show file tree
Hide file tree
Showing 4 changed files with 130 additions and 112 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"
119 changes: 64 additions & 55 deletions tcp-metrics/envoy.yaml
Original file line number Diff line number Diff line change
@@ -1,65 +1,74 @@
static_resources:
listeners:
- name: main
address:
socket_address:
address: 0.0.0.0
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: 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: {}
- name: main
address:
socket_address:
address: 0.0.0.0
port_value: 80
filter_chains:
- filters:
- 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
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
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.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:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: web_service
port_value: 5678
admin:
access_log_path: "/dev/null"
access_log_path: /dev/null
address:
socket_address:
address: 0.0.0.0
Expand Down
2 changes: 1 addition & 1 deletion tcp-packet-parse/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"
119 changes: 64 additions & 55 deletions tcp-packet-parse/envoy.yaml
Original file line number Diff line number Diff line change
@@ -1,65 +1,74 @@
static_resources:
listeners:
- name: main
address:
socket_address:
address: 0.0.0.0
port_value: 80
filter_chains:
- filters:
- name: envoy.filters.network.wasm
config:
config:
name: "tcp_packet_parse"
root_id: "tcp_packet_parse"
vm_config:
runtime: "envoy.wasm.runtime.v8"
code:
local:
filename: "/etc/tcp_packet_parse.wasm"
allow_precompiled: true
- name: envoy.tcp_proxy
config:
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: {}
- name: main
address:
socket_address:
address: 0.0.0.0
port_value: 80
filter_chains:
- filters:
- 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
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_packet_parse"
runtime: "envoy.wasm.runtime.v8"
code:
local:
filename: "/etc/tcp_packet_parse.wasm"
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.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:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: web_service
port_value: 5678
admin:
access_log_path: "/dev/null"
access_log_path: /dev/null
address:
socket_address:
address: 0.0.0.0
Expand Down

0 comments on commit 64a2571

Please sign in to comment.