# Instala y Usa Flux para hacer deploy del vscode-tunnel con GitOps ## Paso 1: Instala Flux CLI ### En macOS 1. Asegúrate de tener Homebrew instalado. Si no lo tienes, instálalo siguiendo las instrucciones en [https://brew.sh/](https://brew.sh/). 2. Ejecuta el siguiente comando: ```bash brew install fluxcd/tap/flux ``` ### En Linux 1. Descarga el binario de Flux CLI desde el repositorio oficial: ```bash curl -s https://fluxcd.io/install.sh | sudo bash ``` 2. Verifica que Flux CLI esté instalado correctamente: ```bash flux --version ``` ### En Windows 1. Descarga el ejecutable de Flux CLI desde la página oficial de releases en GitHub: [https://github.com/fluxcd/flux2/releases](https://github.com/fluxcd/flux2/releases). 2. Agrega el ejecutable a tu PATH para que puedas usarlo desde la terminal. 3. Alternativamente, puedes instalar Flux CLI usando Chocolatey: ```powershell choco install flux ``` 4. Verifica la instalación ejecutando: ```powershell flux --version ``` ## Paso 2: Chequea que tu Cluster de Kubernetes sea compatible `flux check --pre` Te arrojará un output asi: ```bash ► checking prerequisites ✔ Kubernetes 1.32.3 >=1.31.0-0 ✔ prerequisites checks passed ``` ## Paso 3: Crea los recursos de Flux en el Repositorio Crea un PAT en Gitea y colocalo como variable de entorno, con Github el proceso es similar, funciona con token también: `export GITEA_TOKEN=` ```bash flux bootstrap gitea \ --token-auth \ --owner=aleleba \ # <-- Coloca el usuario con permisos de administracion del repositorio. --repository=kubernetes-vscode \ # <-- Coloca el nombre del repositorio. --branch=flux-demo \ # <-- Coloca la rama que manejará Flux en micaso creara una llamada flux-demo. --path=clusters/cluster \ # <-- Importante es la carpeta donde flux dejará los archivos de definición de sí mismo en el Cluster. --personal ``` ## Paso 4: Deja que Flux maneje la infraestructura de vscode-tunnel **Nota:** Asegúrate de estar en la rama `flux-demo` antes de ejecutar los siguientes comandos. Para que Flux maneje automáticamente los cambios en los archivos de definición dentro del directorio `infrastructure`, crea un `Kustomization` que apunte a este directorio. ```bash flux create kustomization vscode-tunnel \ --source=GitRepository/kubernetes-vscode \ --path="./infrastructure" \ --prune=true \ --interval=1m \ --export > ./clusters/cluster/vscode-tunnel-kustomization.yaml ``` Aplica el archivo generado: ```bash kubectl apply -f ./clusters/cluster/vscode-tunnel-kustomization.yaml ``` Con esto, Flux monitoreará el directorio `infrastructure` y aplicará automáticamente los cambios en el cluster. ## Paso 5: Eliminar los recursos de Flux si algo no funcionó Eliminar los recursos de Flux del clúster: `kubectl delete namespace flux-system` Borrar la rama de demo flux-demo del repositorio: ```bash git checkout master # <-- Cambia de rama git branch -D flux-demo # <-- Elimina la rama local git push origin --delete flux-demo # <-- Elimina la rama remota ```