mirror of
https://github.com/sablierapp/sablier.git
synced 2025-12-24 14:31:51 +01:00
* feat(plugin): add `proxywasm` plugin The `proxywasm` plugin is a WASM Filter following the ProxyWasm ABI Specification using the proxywasm go sdk This allows extensibility with any reverse proxy who implements the ProxyWasm ABI Specification. The current WASM Filter was successfully tested with APISIX, Envoy, Nginx with ngx_wasm_module from Kong and Istio. Fixes #145
45 lines
1.5 KiB
Markdown
45 lines
1.5 KiB
Markdown
# Istio Plugin
|
|
|
|
The Istio Plugin is a WASM Plugin written with the Proxy Wasm SDK.
|
|
|
|
## Provider compatibility grid
|
|
|
|
| Provider | Dynamic | Blocking |
|
|
|-----------------------------------------|:-------:|:--------:|
|
|
| [Docker](/providers/docker) | ❌ | ❌ |
|
|
| [Docker Swarm](/providers/docker_swarm) | ❌ | ❌ |
|
|
| [Kubernetes](/providers/kubernetes) | ✅ | ✅ |
|
|
|
|
## Configuration
|
|
|
|
You can have the following configuration:
|
|
|
|
!> This only works for ingress gateways.
|
|
!> Attaching this filter to a side-car would not work because the side-car itself gets shutdown on scaling to zero.
|
|
|
|
```yaml
|
|
apiVersion: extensions.istio.io/v1alpha1
|
|
kind: WasmPlugin
|
|
metadata:
|
|
name: sablier-wasm-whoami-dynamic
|
|
namespace: istio-system
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
istio: ingressgateway
|
|
url: file:///opt/filters/sablierproxywasm.wasm/..data/sablierproxywasm.wasm
|
|
# Use https://istio.io/latest/docs/reference/config/proxy_extensions/wasm-plugin/#WasmPlugin-TrafficSelector
|
|
# To specify which service to apply this filter only
|
|
phase: UNSPECIFIED_PHASE
|
|
pluginConfig:
|
|
{
|
|
"sablier_url": "sablier.sablier-system.svc.cluster.local",
|
|
"cluster": "outbound|10000||sablier.sablier-system.svc.cluster.local",
|
|
"names": [ "deployment_default_whoami_1" ],
|
|
"session_duration": "1m",
|
|
"dynamic": {
|
|
"display_name": "Dynamic Whoami",
|
|
"theme": "hacker-terminal"
|
|
}
|
|
}
|
|
``` |