Files
higress/plugins/wasm-go/.devcontainer/gen_config.py
2024-01-26 16:59:06 +08:00

76 lines
2.4 KiB
Python

import json
import sys
plugin_name = sys.argv[1]
with open("extensions/"+plugin_name+"/config.json", "r") as f:
plugin_config = json.load(f)
config = f'''static_resources:
listeners:
- address:
socket_address:
address: 0.0.0.0
port_value: 8080
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
'@type': type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
codec_type: AUTO
stat_prefix: ingress_http
route_config:
name: test
virtual_hosts:
- name: direct_response_service
domains:
- "*"
routes:
- match:
prefix: "/"
direct_response:
status: 200
body:
inline_string: "hello world\\n"
# - match:
# prefix: "/"
# route:
# cluster: service-backend
http_filters:
- name: {plugin_name}
typed_config:
"@type": type.googleapis.com/udpa.type.v1.TypedStruct
type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
value:
config:
name: wasmdemo
vm_config:
runtime: envoy.wasm.runtime.v8
code:
local:
filename: ./extensions/{plugin_name}/main.wasm
configuration:
"@type": "type.googleapis.com/google.protobuf.StringValue"
value: '{json.dumps(plugin_config)}'
- name: envoy.filters.http.router
typed_config:
'@type': type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
# clusters:
# - name: service-backend
# connect_timeout: 600s
# type: STATIC
# lb_policy: ROUND_ROBIN
# load_assignment:
# cluster_name: service-backend
# endpoints:
# - lb_endpoints:
# - endpoint:
# address:
# socket_address:
# address: 127.0.0.1
# port_value: 8000
'''
with open("extensions/"+plugin_name+"/config.yaml", "w") as f:
f.write(config)