Files
kubernetes-vscode/docs/set-up-flux/instala-y-usa-flux.md

3.1 KiB

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/.
  2. Ejecuta el siguiente comando:
    brew install fluxcd/tap/flux
    

En Linux

  1. Descarga el binario de Flux CLI desde el repositorio oficial:
    curl -s https://fluxcd.io/install.sh | sudo bash
    
  2. Verifica que Flux CLI esté instalado correctamente:
    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.
  2. Agrega el ejecutable a tu PATH para que puedas usarlo desde la terminal.
  3. Alternativamente, puedes instalar Flux CLI usando Chocolatey:
    choco install flux
    
  4. Verifica la instalación ejecutando:
    flux --version
    

Paso 2: Chequea que tu Cluster de Kubernetes sea compatible

flux check --pre

Te arrojará un output asi:

► 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=<gt-token>

Luego corre:

flux bootstrap gitea \
  --token-auth \
  --owner=aleleba \
  --repository=kubernetes-vscode \
  --branch=flux-demo \
  --path=clusters/cluster \
  --personal

Notas:

  • --owner: Coloca el usuario con permisos de administración del repositorio.
  • --repository: Coloca el nombre del repositorio.
  • --branch: Coloca la rama que manejará Flux, en este caso se creará una llamada flux-demo.
  • --path: Es la carpeta donde Flux dejará los archivos de definición de sí mismo en el Cluster.
  • --personal: Indica que el repositorio es 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.

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:

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:

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