104 lines
3.3 KiB
Markdown
104 lines
3.3 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 \
|
|
--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.
|
|
|
|
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
|
|
```
|