3.3 KiB
3.3 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>
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.
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