Actualizar deploy-lab.sh

This commit is contained in:
2026-07-12 02:44:05 +00:00
parent 677a3c45ef
commit 0ebcafe010
+21 -10
View File
@@ -1,18 +1,18 @@
#!/bin/bash #!/bin/bash
# Script de Reconstrucción de Laboratorio - ZimaOS + k3d + ArgoCD # Script Maestro: Despliegue Estable de Laboratorio (ZimaOS + k3d + ArgoCD)
set -e set -e
CLUSTER_NAME="lab-cluster" CLUSTER_NAME="lab-cluster"
APP_DATA_PATH="/DATA/AppData/k3d-lab" APP_DATA_PATH="/DATA/AppData/k3d-lab"
echo "--- 1. Preparando directorios persistentes ---" echo "--- 1. Preparando entorno ---"
sudo mkdir -p $APP_DATA_PATH/{gitea,argocd} sudo mkdir -p $APP_DATA_PATH/{gitea,argocd}
sudo chmod -R 777 $APP_DATA_PATH/ sudo chmod -R 777 $APP_DATA_PATH/
echo "--- 2. Limpiando clúster previo (si existe) ---" echo "--- 2. Limpiando clúster previo ---"
k3d cluster delete $CLUSTER_NAME || true k3d cluster delete $CLUSTER_NAME || true
echo "--- 3. Creando clúster con persistencia y puertos definidos ---" echo "--- 3. Creando clúster con persistencia ---"
k3d cluster create $CLUSTER_NAME \ k3d cluster create $CLUSTER_NAME \
--api-port 46421 \ --api-port 46421 \
-p "90:80@loadbalancer" \ -p "90:80@loadbalancer" \
@@ -21,7 +21,7 @@ k3d cluster create $CLUSTER_NAME \
-v "$APP_DATA_PATH/argocd:/var/lib/argocd" \ -v "$APP_DATA_PATH/argocd:/var/lib/argocd" \
--agents 2 --agents 2
echo "--- 4. Aplicando persistencia de servicios (Restart Always) ---" echo "--- 4. Configurando reinicio automático ---"
sudo docker update --restart=always $(sudo docker ps -a -q -f name=k3d) sudo docker update --restart=always $(sudo docker ps -a -q -f name=k3d)
echo "--- 5. Configurando Kubeconfig ---" echo "--- 5. Configurando Kubeconfig ---"
@@ -32,11 +32,18 @@ echo "--- 6. Instalando ArgoCD ---"
kubectl create namespace argocd || true kubectl create namespace argocd || true
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
echo "--- 7. Ajustando ArgoCD para Proxy Externo (Insecure Mode) ---" echo "--- 7. Validando estado del clúster (Esperando a que esté Ready) ---"
echo "Esperando nodos..."
kubectl wait --for=condition=Ready nodes --all --timeout=120s
echo "Esperando pods de ArgoCD..."
kubectl wait --for=condition=Ready pods -n argocd --all --timeout=120s
echo "--- 8. Ajustando modo Insecure (Proxy-Friendly) ---"
kubectl patch configmap argocd-cmd-params-cm -n argocd --type merge -p '{"data":{"server.insecure":"true"}}' kubectl patch configmap argocd-cmd-params-cm -n argocd --type merge -p '{"data":{"server.insecure":"true"}}'
kubectl rollout restart deployment argocd-server -n argocd kubectl rollout restart deployment argocd-server -n argocd
kubectl rollout status deployment argocd-server -n argocd --timeout=60s
echo "--- 8. Aplicando Ingress para Traefik ---" echo "--- 9. Aplicando Ingress (Traefik) ---"
cat <<EOF | kubectl apply -f - cat <<EOF | kubectl apply -f -
apiVersion: networking.k8s.io/v1 apiVersion: networking.k8s.io/v1
kind: Ingress kind: Ingress
@@ -60,6 +67,10 @@ spec:
number: 80 number: 80
EOF EOF
echo "--- ¡Laboratorio listo! ---" echo "=========================================================="
echo "Contraseña inicial de admin:" echo " LABORATORIO DESPLEGADO Y VALIDADO"
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d && echo echo " URL: https://argocd.cruzcloud.net"
echo " Usuario: admin"
PASS=$(kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d)
echo " Password: $PASS"
echo "=========================================================="