This is a little tool that can help you experiment and learn Envoy proxy configuration.
It's a Kubernetes pod with a few containers:
- httpbin - a webserver that allows inspection of requests
- envoy - Envoy that proxies to httpbin (1)
- envoy-playground - a web application that allows to edit the configuration of Envoy (2) and shows the result of httpbin (1)
- Deploy and launch envoy-playground
- Examine the default envoy config on the right pane, and the resulting httpbin in the right pane
- Make a change to the configuration, for example, add a
host_rewrite: itaysk.com
to the default route - Click on 'Apply' and wait for the resulting httpbin pane to reload
- In the resulting httpbin pane, click on
/get
to examine the HTTP GET request. Notice how theHOST
header is seen asitaysk.com
An easy way to play with it is to kubectl create -f ./deploy/
.
This will create the pod and expose it using a NodePort Service. Then you will need to update (or create) the envoy-playground-config
ConfigMap with the node port of the envoy listener.
In the future I may find a better way to automate this.
Stuff I may improve:
- Schema validation for the envoy config
- Better deployment story
- Cover more Envoy scenarios (like egress)
I'm open for suggestions, feedback and contributions.