48 lines
1.3 KiB
Bash
Executable File
48 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Generar kubeconfig para Kubernetes Dashboard
|
|
# Archivo: gen-dashboard-kubeconfig.sh
|
|
|
|
set -e
|
|
|
|
NAMESPACE="kubernetes-dashboard"
|
|
SA_NAME="dashboard-admin"
|
|
KUBECONFIG_FILE="dashboard.kubeconfig"
|
|
|
|
echo "[*] Obteniendo token del ServiceAccount..."
|
|
TOKEN=$(kubectl -n $NAMESPACE create token $SA_NAME)
|
|
|
|
if [ -z "$TOKEN" ]; then
|
|
echo "[!] No se pudo obtener el token. Revisa que el SA exista: $SA_NAME en $NAMESPACE"
|
|
exit 1
|
|
fi
|
|
|
|
echo "[*] Obteniendo API Server..."
|
|
APISERVER=$(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}')
|
|
|
|
if [ -z "$APISERVER" ]; then
|
|
echo "[!] No se pudo obtener el API server del kubeconfig actual."
|
|
exit 1
|
|
fi
|
|
|
|
echo "[*] Generando kubeconfig en $KUBECONFIG_FILE ..."
|
|
kubectl config set-cluster kubernetes \
|
|
--server=$APISERVER \
|
|
--insecure-skip-tls-verify=true \
|
|
--kubeconfig=$KUBECONFIG_FILE >/dev/null
|
|
|
|
kubectl config set-credentials $SA_NAME \
|
|
--token=$TOKEN \
|
|
--kubeconfig=$KUBECONFIG_FILE >/dev/null
|
|
|
|
kubectl config set-context $SA_NAME@kubernetes \
|
|
--cluster=kubernetes \
|
|
--user=$SA_NAME \
|
|
--kubeconfig=$KUBECONFIG_FILE >/dev/null
|
|
|
|
kubectl config use-context $SA_NAME@kubernetes \
|
|
--kubeconfig=$KUBECONFIG_FILE >/dev/null
|
|
|
|
echo "[✔] Kubeconfig generado: $KUBECONFIG_FILE"
|
|
echo " Puedes probarlo con:"
|
|
echo " kubectl --kubeconfig=$KUBECONFIG_FILE get pods -n $NAMESPACE"
|