This is a tool to apply configuration using ExtensionConfigDiscovery mechanism in Envoy. The tool allows rapid pushes of Wasm modules and Wasm configuration. It accepts two flags:
-pfor the port to listen on.-cfor the directory to watch configuration files for.
An example configuration is provided here. Each extension configuration has the following fields:
nameis the name of the resource in ECDS.pathorurlfor the Wasm code.sha256for the Wasm code SHA256 hash. The code is not refetched if the hash matches. The config is rejected if SHA256 is specified but does not match.vm_idandroot_idoptional settings for the VM and root context.configurationJSON configuration to apply for the extension.
An experimental build of this server is available as a docker image gcr.io/istio-testing/extensionserver.
-
Follow instructions to install Istio 1.7 release, and install a demo application
bookinfo. -
Deploy the extension server and EnvoyFilter in "default" namespace.:
kubectl apply -f extensionserver.yaml envoyfilter.yaml
This step deploys the extension server with a configmap
extensionserverthat contains a simple filterheaders_rust.wasm. -
Validate the demo application continues to work as before.
-
The filter should pause the request if
serverheader is set toenvoy-wasm-pause. Try:curl -H "server:envoy-wasm-pause" http://<GATEWAY_IP>/productpage