Signed-off-by: Louis Labeyrie <labeyrielouis@gmail.com>
This commit is contained in:
2026-04-27 15:29:07 +02:00
parent 5760eab56a
commit 1e24ec3243
10 changed files with 1501 additions and 125 deletions

View File

@@ -6,16 +6,45 @@ set -e
echo "=== Jonction d'un worker au cluster Kubernetes ==="
echo ""
echo "ATTENTION: Ce script nécessite la commande 'kubeadm join' générée par le master"
echo ""
echo "Si vous n'avez pas la commande, exécutez sur le master:"
echo "Récupérer les informations sur le master avec:"
echo " kubeadm token create --print-join-command"
echo ""
read -p "Entrez la commande kubeadm join complète: " JOIN_COMMAND
read -p "IP du master (ex: 192.168.1.10): " MASTER_IP
read -p "Token (format: xxxxxx.yyyyyyyyyyyyyyyy): " TOKEN
read -s -p "CA cert hash (format: sha256:<64 hex>): " CA_HASH
echo ""
# Validation des formats avant toute exécution
# POURQUOI: Passer une commande non validée à sudo permet l'exécution de commandes
# arbitraires en root. On reconstruit l'appel kubeadm avec des arguments
# explicites pour éviter toute injection.
if [[ ! "$MASTER_IP" =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$|^[a-zA-Z0-9._-]+$ ]]; then
echo "Erreur: format IP/hostname master invalide"
exit 1
fi
if [[ ! "$TOKEN" =~ ^[a-z0-9]{6}\.[a-z0-9]{16}$ ]]; then
echo "Erreur: format token invalide (attendu: xxxxxx.yyyyyyyyyyyyyyyy)"
exit 1
fi
if [[ ! "$CA_HASH" =~ ^sha256:[a-f0-9]{64}$ ]]; then
echo "Erreur: format CA hash invalide (attendu: sha256:<64 caractères hex>)"
exit 1
fi
echo ""
echo "Exécution de: $JOIN_COMMAND"
sudo $JOIN_COMMAND
echo "Composants validés:"
echo " Master : ${MASTER_IP}:6443"
echo " Token : ${TOKEN:0:6}.****************"
echo " CA Hash : sha256:${CA_HASH:7:8}..."
echo ""
sudo kubeadm join "${MASTER_IP}:6443" \
--token "$TOKEN" \
--discovery-token-ca-cert-hash "$CA_HASH"
echo ""
echo "✓ Worker joint au cluster avec succès!"