All Projects → storax → Kubedoom

storax / Kubedoom

Licence: gpl-3.0
Kill Kubernetes pods by playing Id's DOOM!

Programming Languages

c
50402 projects - #5 most used programming language
go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Kubedoom

Omgifol
A Python library for manipulation of Doom WAD files
Stars: ✭ 51 (-96.17%)
Mutual labels:  doom
Kubectl Trace
Schedule bpftrace programs on your kubernetes cluster using the kubectl
Stars: ✭ 1,194 (-10.23%)
Mutual labels:  kubectl
Kubectl Build
Build dockerfiles directly in your Kubernetes cluster.
Stars: ✭ 84 (-93.68%)
Mutual labels:  kubectl
Kubernetes Cheatsheet
This is Kubernetes Cheatsheet based on Kubernetes API 1.19 version.
Stars: ✭ 53 (-96.02%)
Mutual labels:  kubectl
Noreward Rl
[ICML 2017] TensorFlow code for Curiosity-driven Exploration for Deep Reinforcement Learning
Stars: ✭ 1,176 (-11.58%)
Mutual labels:  doom
Doomfire
DOOM fire implementation written in rust
Stars: ✭ 80 (-93.98%)
Mutual labels:  doom
Bitnami Docker Kubectl
Bitnami Docker Image for Kubectl
Stars: ✭ 50 (-96.24%)
Mutual labels:  kubectl
Classic Rbdoom 3 Bfg
DOOM: BFA (Big Freaking Anniversary) Edition (former Classic RBDoom 3 BFG) is a source port based on RBDOOM-3-BFG and enchance the experience of Ultimate DOOM, DOOM 2 and DOOM 3.
Stars: ✭ 90 (-93.23%)
Mutual labels:  doom
Vizdoom
Doom-based AI Research Platform for Reinforcement Learning from Raw Visual Information.
Stars: ✭ 1,178 (-11.43%)
Mutual labels:  doom
Kubeplay
kubeplay – a new way to interact with Kubernetes API from your terminal
Stars: ✭ 83 (-93.76%)
Mutual labels:  kubectl
Kauthproxy
Local authentication proxy for Kubernetes Dashboard (kubectl auth-proxy)
Stars: ✭ 54 (-95.94%)
Mutual labels:  kubectl
Kubectl Capture
A kubectl plugin which triggers a Sysdig capture
Stars: ✭ 66 (-95.04%)
Mutual labels:  kubectl
Obaddon
A repository of community-built prefabs and other enhancements for Oblige 7.70
Stars: ✭ 81 (-93.91%)
Mutual labels:  doom
Docker Kubectl
Containerized Kubernetes kubectl
Stars: ✭ 52 (-96.09%)
Mutual labels:  kubectl
Dhewm3
dhewm 3 main repository
Stars: ✭ 1,261 (-5.19%)
Mutual labels:  doom
Chocolate Doom
Chocolate Doom is a Doom source port that is minimalist and historically accurate.
Stars: ✭ 1,052 (-20.9%)
Mutual labels:  doom
Kubectl Cssh
A kubectl plugin to ssh into Kubernetes nodes within separate tmux panes
Stars: ✭ 76 (-94.29%)
Mutual labels:  kubectl
Konfig
konfig helps to merge, split or import kubeconfig files
Stars: ✭ 92 (-93.08%)
Mutual labels:  kubectl
Kuttle
Kubernetes wrapper for sshuttle
Stars: ✭ 86 (-93.53%)
Mutual labels:  kubectl
Terraform Eks
Terraform for AWS EKS
Stars: ✭ 82 (-93.83%)
Mutual labels:  kubectl

Kube DOOM

Kill Kubernetes pods using Id's Doom!

The next level of chaos engineering is here! Kill pods inside your Kubernetes cluster by shooting them in Doom!

This is a fork of the excellent gideonred/dockerdoomd using a slightly modified Doom, forked from https://github.com/gideonred/dockerdoom, which was forked from psdoom.

DOOM

Running Locally

In order to run locally you will need to

  1. Run the kubedoom container
  2. Attach a VNC client to the appropriate port (5901)

With Docker

Run storaxdev/kubedoom:0.5.0 with docker locally:

$ docker run -p5901:5900 \
  --net=host \
  -v ~/.kube:/root/.kube \
  --rm -it --name kubedoom \
  storaxdev/kubedoom:0.5.0

With Podman

Run storaxdev/kubedoom:0.5.0 with podman locally:

$ podman run -it -p5901:5900/tcp \
  -v ~/.kube:/tmp/.kube --security-opt label=disable \
  --env "KUBECONFIG=/tmp/.kube/config" --name kubedoom
  storaxdev/kubedoom:0.5.0

Attaching a VNC Client

Now start a VNC viewer and connect to localhost:5901. The password is idbehold:

$ vncviewer viewer localhost:5901

You should now see DOOM! Now if you want to get the job done quickly enter the cheat idspispopd and walk through the wall on your right. You should be greeted by your pods as little pink monsters. Press CTRL to fire. If the pistol is not your thing, cheat with idkfa and press 5 for a nice surprise. Pause the game with ESC.

Killing namespaces

Kubedoom now also supports killing namespaces in case you have too many of them. Simply set the -mode flag to namespaces:

$ docker run -p5901:5900 \
  --net=host \
  -v ~/.kube:/root/.kube \
  --rm -it --name kubedoom \
  storaxdev/kubedoom:0.5.0 \
  -mode namespaces

Running Kubedoom inside Kubernetes

See the example in the /manifest directory. You can quickly test it using kind. Create a cluster with the example config from this repository:

$ kind create cluster --config kind-config.yaml
Creating cluster "kind" ...
 ✓ Ensuring node image (kindest/node:v1.19.1) 🖼
 ✓ Preparing nodes 📦 📦
 ✓ Writing configuration 📜
 ✓ Starting control-plane 🕹️
 ✓ Installing CNI 🔌
 ✓ Installing StorageClass 💾
 ✓ Joining worker nodes 🚜
Set kubectl context to "kind-kind"
You can now use your cluster with:

kubectl cluster-info --context kind-kind

Not sure what to do next? 😅  Check out https://kind.sigs.k8s.io/docs/user/quick-start/

This will spin up a 2 node cluster inside docker, with port 5900 exposed from the worker node. Then run kubedoom inside the cluster by applying the manifest provided in this repository:

$ kubectl apply -f manifest/
namespace/kubedoom created
deployment.apps/kubedoom created
serviceaccount/kubedoom created
clusterrolebinding.rbac.authorization.k8s.io/kubedoom created

To connect run:

$ vncviewer viewer localhost:5900

Kubedoom requires a service account with permissions to list all pods and delete them and uses kubectl 1.19.2.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].