Kubeinvaders is a gamified chaos engineering tool that helps users learn and test Kubernetes resilience by simulating stress attacks on clusters in an engaging, educational way.
Gamified Chaos Engineering Tool for Kubernetes
This tool is primarily used by Kubernetes developers, SREs, and platform engineers to assess the resilience and robustness of their Kubernetes clusters through controlled chaos experiments. It also serves as an educational platform for teams to learn Kubernetes behavior under failure conditions and improve their operational readiness.
Kubeinvaders requires a Kubernetes cluster and Helm for installation. It is recommended to use the latest Helm chart version (1.9.8 or newer). TLS configuration depends on your ingress setup and can be disabled if TLS termination is handled by a reverse proxy. The tool is designed for educational and resilience testing purposes and should be used cautiously in production environments. Community resources and demos are available to facilitate learning and adoption.
Add the kubeinvaders Helm repo: helm repo add kubeinvaders https://lucky-sideburn.github.io/helm-charts/
Update Helm repos: helm repo update
Create the kubeinvaders namespace: kubectl create namespace kubeinvaders
Install kubeinvaders with ingress and TLS enabled: helm install --set-string config.target_namespace="namespace1\,namespace2" --set ingress.enabled=true --set ingress.hostName=kubeinvaders.local --set deployment.image.tag=latest -n kubeinvaders kubeinvaders kubeinvaders/kubeinvaders --set ingress.tls_enabled=true
Alternatively, install with ingress enabled but TLS disabled: helm install --set-string config.target_namespace="namespace1\,namespace2" --set ingress.enabled=true --set ingress.hostName=kubeinvaders.local --set deployment.image.tag=latest -n kubeinvaders kubeinvaders kubeinvaders/kubeinvaders/ --set ingress.tls_enabled=false
For lab environments, use the Minikube setup via Makefile as described in ./minikube-setup/README.md
helm repo add kubeinvaders https://lucky-sideburn.github.io/helm-charts/
Adds the official kubeinvaders Helm chart repository.
helm repo update
Updates Helm repositories to fetch the latest charts.
kubectl create namespace kubeinvaders
Creates the Kubernetes namespace for deploying kubeinvaders.
helm install --set-string config.target_namespace="namespace1\,namespace2" --set ingress.enabled=true --set ingress.hostName=kubeinvaders.local --set deployment.image.tag=latest -n kubeinvaders kubeinvaders kubeinvaders/kubeinvaders --set ingress.tls_enabled=true
Installs kubeinvaders with ingress and TLS enabled, targeting specified namespaces.
helm install --set-string config.target_namespace="namespace1\,namespace2" --set ingress.enabled=true --set ingress.hostName=kubeinvaders.local --set deployment.image.tag=latest -n kubeinvaders kubeinvaders kubeinvaders/kubeinvaders/ --set ingress.tls_enabled=false
Installs kubeinvaders with ingress enabled but TLS disabled, useful when TLS termination is handled externally.