3.7 KiB
Instala y Usa Flux para hacer deploy del vscode-tunnel con GitOps
Paso 1: Instala Flux CLI
En macOS
- Asegúrate de tener Homebrew instalado. Si no lo tienes, instálalo siguiendo las instrucciones en https://brew.sh/.
- Ejecuta el siguiente comando:
brew install fluxcd/tap/flux
En Linux
- Descarga el binario de Flux CLI desde el repositorio oficial:
curl -s https://fluxcd.io/install.sh | sudo bash
- Verifica que Flux CLI esté instalado correctamente:
flux --version
En Windows
- Descarga el ejecutable de Flux CLI desde la página oficial de releases en GitHub: https://github.com/fluxcd/flux2/releases.
- Agrega el ejecutable a tu PATH para que puedas usarlo desde la terminal.
- Alternativamente, puedes instalar Flux CLI usando Chocolatey:
choco install flux
- 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 llamadaflux-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 -f ./clusters/cluster
kubectl delete -f ./clusters/cluster/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