-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInstall_Docker_Kind_Kubectl.sh
More file actions
82 lines (68 loc) · 2.21 KB
/
Install_Docker_Kind_Kubectl.sh
File metadata and controls
82 lines (68 loc) · 2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/bin/bash
set -e # Exit immediately if a command exits with a non-zero status
set -o pipefail
echo "🚀 Starting installation of Docker, Kind, and kubectl..."
# ----------------------------
# 1. Install Docker
# ----------------------------
if ! command -v docker &>/dev/null; then
echo "📦 Installing Docker..."
sudo apt-get update -y
sudo apt-get install -y docker.io
echo "👤 Adding current user to docker group..."
sudo usermod -aG docker "$USER"
echo "✅ Docker installed and user added to docker group."
else
echo "✅ Docker is already installed."
fi
# ----------------------------
# 2. Install Kind (based on architecture)
# ----------------------------
if ! command -v kind &>/dev/null; then
echo "📦 Installing Kind..."
ARCH=$(uname -m)
if [ "$ARCH" = "x86_64" ]; then
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.29.0/kind-linux-amd64
elif [ "$ARCH" = "aarch64" ]; then
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.29.0/kind-linux-arm64
else
echo "❌ Unsupported architecture: $ARCH"
exit 1
fi
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
echo "✅ Kind installed successfully."
else
echo "✅ Kind is already installed."
fi
# ----------------------------
# 3. Install kubectl (based on architecture)
# ----------------------------
if ! command -v kubectl &>/dev/null; then
echo "📦 Installing kubectl (latest stable version)..."
ARCH=$(uname -m)
VERSION=$(curl -Ls https://dl.k8s.io/release/stable.txt)
if [ "$ARCH" = "x86_64" ]; then
curl -Lo ./kubectl "https://dl.k8s.io/release/${VERSION}/bin/linux/amd64/kubectl"
elif [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then
curl -Lo ./kubectl "https://dl.k8s.io/release/${VERSION}/bin/linux/arm64/kubectl"
else
echo "❌ Unsupported architecture: $ARCH"
exit 1
fi
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
echo "✅ kubectl installed successfully."
else
echo "✅ kubectl is already installed."
fi
# ----------------------------
# 4. Confirm Versions
# ----------------------------
echo
echo "🔍 Installed Versions:"
docker --version
kind --version
kubectl version --client --output=yaml
echo
echo "🎉 Docker, Kind, and kubectl installation complete!"