#!/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"