This repository relies on Minikube and GCP to emulate microservice scenarios. We primarily use Ubuntu 18.04 for our tests. For convenience, dependencies can be installed with the ./tools/setup.sh
command. It contains all the steps necessary to set up the testing environment.
kubernetes
to administrate and run web applications in a clusterminikube
to run a local Kubernetes clusterdocker
as the container driver back end of Minikubebazel
to build Wasm filters for Envoyistio
to manage Envoy and its filterspython3.6
to run the scripts
TBD
prometheus-api-client
to query Prometheus
Once everything is installed, the Kubernetes cluster can be started with
./kube_env.py --setup
if you are running on minikube or ./kube_env.py --setup -p GCP
if you are running on google cloud. If you are running on google cloud, add -p GCP
to
all subsequent commands as well. Starting the cluster will take a few minutes.
We provide a pre-built filter. It can be deployed with the ./kube_env.py --filter-name webassemblyhub.io/fruffy/test-filter --deploy-filter
command.
We are currently working on a solution that deploys locally-built filters.
Once the filter has been successfully installed, it is possible to run experiments with ./run_experiments.py --num-experiments 1
.
Remove the filter
./kube_env.py --filter-name webassemblyhub.io/fruffy/test-filter --undeploy-filter
Remove the bookinfo application
./kube_env.py --remove-bookinfo
Tear down the cluster
./kube_env.py --clean