@@ -4,6 +4,9 @@ set -e # exit on error
44set -u # treat unset vars as errors
55set -o pipefail # catch errors in pipelines
66
7+ GREEN=' \033[0;32m'
8+ NC=' \033[0m'
9+
710log () {
811 echo -e " ${GREEN} [+] $1 ${NC} "
912}
@@ -19,7 +22,7 @@ install_basic_tools() {
1922 sudo apt-get install -y \
2023 curl wget unzip git make \
2124 python3 python3-pip python3-venv \
22- software-properties-common
25+ software-properties-common apt-transport-https ca-certificates gnupg lsb-release
2326}
2427
2528install_postgres_client () {
@@ -29,12 +32,8 @@ install_postgres_client() {
2932
3033install_docker () {
3134 log " Installing Docker CE..."
32- # Remove older versions if any
3335 sudo apt-get remove -y docker docker-engine docker.io containerd runc || true
3436
35- # Install prerequisites
36- sudo apt-get install -y apt-transport-https ca-certificates gnupg lsb-release
37-
3837 # Add Docker’s official GPG key
3938 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
4039
@@ -43,21 +42,41 @@ install_docker() {
4342 " deb [arch=$( dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
4443 $( lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4544
46- # Install Docker
4745 sudo apt-get update -y
4846 sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
4947
50- # Enable & add vagrant user to docker group
5148 sudo systemctl enable docker
52- sudo usermod -aG docker vagrant
49+ sudo usermod -aG docker vagrant || true
50+ }
51+
52+ install_kubernetes_tools () {
53+ log " Installing Kubernetes tools (kubectl, minikube)..."
54+
55+ # Install kubectl
56+ curl -LO " https://dl.k8s.io/release/$( curl -s https://dl.k8s.io/release/stable.txt) /bin/linux/amd64/kubectl"
57+ chmod +x kubectl
58+ sudo mv kubectl /usr/local/bin/
59+
60+ # Install minikube
61+ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
62+ sudo install minikube-linux-amd64 /usr/local/bin/minikube
63+ rm -f minikube-linux-amd64
5364}
5465
5566main () {
5667 update_system
5768 install_basic_tools
5869 install_postgres_client
5970 install_docker
60- log " Bootstrap completed! Please log out and log back in (or run 'newgrp docker') to use Docker without sudo."
71+ install_kubernetes_tools
72+
73+ log " Bootstrap completed!"
74+ log " Please log out and log back in (or run 'newgrp docker') to use Docker without sudo."
75+ log " Run 'minikube start --driver=docker --nodes 3' to start your Kubernetes cluster."
76+ log " After that, you can label nodes with:"
77+ echo " kubectl label node minikube type=application"
78+ echo " kubectl label node minikube-m02 type=database"
79+ echo " kubectl label node minikube-m03 type=dependent_services"
6180}
6281
63- main " $@ "
82+ main " $@ "
0 commit comments