From 677a3c45efc6ec340bf1501e7b47b718a47dfcb1 Mon Sep 17 00:00:00 2001 From: devops Date: Sun, 12 Jul 2026 02:21:36 +0000 Subject: [PATCH] =?UTF-8?q?A=C3=B1adir=20deploy-lab.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Persistencia Real: Al usar los volúmenes -v hacia /DATA/AppData/..., los datos de ArgoCD no desaparecerán nunca aunque borres el clúster. Modo "Insecure": He automatizado el patch de server.insecure, eliminando la fricción con los certificados SSL de tu Nginx Proxy Manager. Idempotencia: El script intenta borrar el clúster y recrearlo, asegurando que siempre partas de un estado limpio pero con tus datos intactos en el disco. Recuperación automática: Al incluir el docker update --restart=always, si ZimaOS se reinicia, todos los componentes del clúster volverán a subir solos sin intervención manual. --- deploy-lab.sh | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 deploy-lab.sh diff --git a/deploy-lab.sh b/deploy-lab.sh new file mode 100644 index 0000000..9594b9a --- /dev/null +++ b/deploy-lab.sh @@ -0,0 +1,65 @@ +#!/bin/bash +# Script de Reconstrucción de Laboratorio - ZimaOS + k3d + ArgoCD +set -e + +CLUSTER_NAME="lab-cluster" +APP_DATA_PATH="/DATA/AppData/k3d-lab" + +echo "--- 1. Preparando directorios persistentes ---" +sudo mkdir -p $APP_DATA_PATH/{gitea,argocd} +sudo chmod -R 777 $APP_DATA_PATH/ + +echo "--- 2. Limpiando clúster previo (si existe) ---" +k3d cluster delete $CLUSTER_NAME || true + +echo "--- 3. Creando clúster con persistencia y puertos definidos ---" +k3d cluster create $CLUSTER_NAME \ + --api-port 46421 \ + -p "90:80@loadbalancer" \ + -p "9443:443@loadbalancer" \ + -v "$APP_DATA_PATH/gitea:/var/lib/gitea" \ + -v "$APP_DATA_PATH/argocd:/var/lib/argocd" \ + --agents 2 + +echo "--- 4. Aplicando persistencia de servicios (Restart Always) ---" +sudo docker update --restart=always $(sudo docker ps -a -q -f name=k3d) + +echo "--- 5. Configurando Kubeconfig ---" +sudo chown -R $USER:$USER /DATA/.kube /DATA/.config +k3d kubeconfig merge $CLUSTER_NAME --kubeconfig-switch-context + +echo "--- 6. Instalando ArgoCD ---" +kubectl create namespace argocd || true +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) ---" +kubectl patch configmap argocd-cmd-params-cm -n argocd --type merge -p '{"data":{"server.insecure":"true"}}' +kubectl rollout restart deployment argocd-server -n argocd + +echo "--- 8. Aplicando Ingress para Traefik ---" +cat <