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

102 lines
3.1 KiB
Markdown

# 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=<gt-token>`
Luego corre:
```bash
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.
```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
```