forked from tetratelabs/proxy-wasm-go-sdk
-
Notifications
You must be signed in to change notification settings - Fork 2
/
envoy.yaml
148 lines (142 loc) · 5.27 KB
/
envoy.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
bootstrap_extensions:
- name: envoy.bootstrap.wasm
typed_config:
"@type": type.googleapis.com/envoy.extensions.wasm.v3.WasmService
singleton: true
config:
# Used as a queue name
configuration:
"@type": type.googleapis.com/google.protobuf.StringValue
value: "http_request_headers"
# Use the same vm_config as below, so we can reuse the same VM for multiple queues.
vm_config:
vm_id: "receiver"
runtime: "envoy.wasm.runtime.v8"
code:
local:
filename: "./examples/shared_queue/receiver/main.wasm"
- name: envoy.bootstrap.wasm
typed_config:
"@type": type.googleapis.com/envoy.extensions.wasm.v3.WasmService
singleton: true
config:
# Used as a queue name
configuration:
"@type": type.googleapis.com/google.protobuf.StringValue
value: "http_response_headers"
# Use the same vm_config as above, so we can reuse the same VM for multiple queues.
vm_config:
vm_id: "receiver"
runtime: "envoy.wasm.runtime.v8"
code:
local:
filename: "./examples/shared_queue/receiver/main.wasm"
- name: envoy.bootstrap.wasm
typed_config:
"@type": type.googleapis.com/envoy.extensions.wasm.v3.WasmService
singleton: true
config:
configuration:
# Used as a queue name
"@type": type.googleapis.com/google.protobuf.StringValue
value: "tcp_data_hashes"
# Use the same vm_config as above, so we can reuse the same VM for multiple queues.
vm_config:
vm_id: "receiver"
runtime: "envoy.wasm.runtime.v8"
code:
local:
filename: "./examples/shared_queue/receiver/main.wasm"
static_resources:
listeners:
- name: http
address:
socket_address:
address: 0.0.0.0
port_value: 18000
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/envoy.extensions.filters.http.wasm.v3.Wasm
config:
# Instruct that the PluginContext should behave as a Http filter.
configuration:
"@type": type.googleapis.com/google.protobuf.StringValue
value: "http"
# Use the same vm_config as below, so we can reuse the same VM for multiple queues.
vm_config:
vm_id: "sender"
runtime: "envoy.wasm.runtime.v8"
code:
local:
filename: "./examples/shared_queue/sender/main.wasm"
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
- name: tcp
address:
socket_address:
address: 0.0.0.0
port_value: 18001
filter_chains:
- filters:
- name: envoy.filters.network.wasm
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.wasm.v3.Wasm
config:
# Instruct that the PluginContext should behave as a Tcp filter.
configuration:
"@type": type.googleapis.com/google.protobuf.StringValue
value: "tcp"
# Use the same vm_config as above, so we can reuse the same VM for multiple queues.
vm_config:
vm_id: "sender"
runtime: "envoy.wasm.runtime.v8"
code:
local:
filename: "./examples/shared_queue/sender/main.wasm"
- name: envoy.tcp_proxy
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy
stat_prefix: ingress
cluster: admin
clusters:
- name: admin
connect_timeout: 5000s
type: strict_dns
lb_policy: round_robin
load_assignment:
cluster_name: admin
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: 0.0.0.0
port_value: 8001
admin:
access_log_path: "/dev/null"
address:
socket_address:
address: 0.0.0.0
port_value: 8001