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

3.7 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>

Crea la rama:

git checkout -b flux-demo # Crea la rama localmente
git push origin flux-demo # Empuja la rama al repositorio remoto

Luego corre:

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

Notas:

  • --hostname: Especifica la URL de tu instancia de Gitea (en este caso, gitea.p-lao.com).
  • --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.

Haz un pull de la rama flux-demo: git pull origin flux-demo

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/flux-system \
  --path="./infrastructure" \
  --prune=true \
  --interval=30s \
  --export > ./clusters/cluster/vscode-tunnel-kustomization.yaml

Nota: Uso como --source=GitRepository/flux-system Porque el repositorio de flux es el mismo que el del proyecto de ser diferente tienes que crear un custom GitRepository CRD que apunte al repo que quieres monitorear.

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