Skip to content

Instantly share code, notes, and snippets.

@RobinFassina-Moschini
Last active January 9, 2024 12:28
Show Gist options
  • Save RobinFassina-Moschini/05588ae46806c9bc58c17edbd21509df to your computer and use it in GitHub Desktop.
Save RobinFassina-Moschini/05588ae46806c9bc58c17edbd21509df to your computer and use it in GitHub Desktop.
#!/bin/bash
if [ "$EUID" -ne 0 ]
then echo "Please run as root, are you not trusting me? :)"
exit
fi
if [ $(grep -Ec "Kali|Debian|Ubuntu" /etc/os-release) -eq 0 ]
then
echo "Wrong distribution"
exit
fi
apt update
apt install -y vim git curl
apt install -y docker.io apt-transport-https ca-certificates
systemctl start docker
systemctl enable docker
cd ~
if [ $(grep -Ec "Kali|Debian" /etc/os-release) -ne 0 ]
then
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt kubernetes-xenial main" | tee -a /etc/apt/sources.list.d/kubernetes.list
apt update
apt install -y kubeadm kubectl kubelet
fi
if [ $(grep -Ec "Ubuntu" /etc/os-release) -ne 0 ]
then
snap install kubeadm --classic
snap install kubectl --classic
snap install kubelet --classic
fi
cd ~
if [ $(uname -m) = "x86_64" ]
then
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
dpkg -i minikube_latest_amd64.deb
elif [ $(uname -m) = "aarch64" ]
then
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_arm64.deb
dpkg -i minikube_latest_arm64.deb
else
echo "Error: unknow arch:"
uname -m
exit
fi
https://storage.googleapis.com/minikube/releases/latest/minikube_latest_arm64.deb
minikube start --force
git clone https://github.com/madhuakula/kubernetes-goat.git
if [ $(uname -m) = "aarch64" ]
then
sed -i 's,image: madhuakula/k8s-goat-system-monitor,image: f0x1sland/k8s-goat-system-monitor,g' ~/kubernetes-goat/scenarios/system-monitor/deployment.yaml
fi
cd kubernetes-goat
chmod +x setup-kubernetes-goat.sh
bash setup-kubernetes-goat.sh
echo ""
echo "waiting 30sec for all the pods to get Ready"
echo ""
echo "Please wait for all the pods to get ready, it can take time (around 10min)"
echo ""
sleep 30
while [ $(kubectl get pods | grep -c 'Running') -ne 8 ]
do
echo ""
echo "still waiting for all the pods to get Ready"
echo ""
kubectl get pods
sleep 10
done
bash access-kubernetes-goat.sh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment