Procedimiento de Instalación del Agente Grafana Alloy
Objetivo
Instalar el stack de observabilidad Grafana Alloy en un clúster de GKE (o entorno correspondiente), asegurando la generación de métricas, logs y trazas hacia Grafana Cloud, mediante la automatización provista en los repositorios de GitLab del equipo de Resiliencia y Observabilidad LATAM Airlines.
Alcance
Este procedimiento aplica a los entornos:
- Desarrollo (dev)
- Integración (intg)
- Producción (prod)
Cada entorno cuenta con su propio repositorio GitLab y archivo de configuración.
Prerrequisitos
Antes de iniciar la instalación, asegúrate de cumplir con los siguientes requisitos:
- Tener acceso al proyecto GitLab correspondiente según el ambiente.
- Tener instalado y configurado gcloud en tu máquina local
- Haber ejecutado autenticación con GCP: gcloud auth login
- Contar con permisos de lectura/escritura en el repositorio y capacidad para crear ramas y merge requests.
- Disponer de acceso a los proyectos GCP donde se desplegará Grafana Alloy.
Procedimiento
- Clonar el repositorio correspondiente al ambiente Según el entorno donde se instalará el stack:
| Ambiente | Repositorio GitLab |
|---|---|
| Producción (prod) | alloy-prod-clusters |
| Desarrollo (dev) | alloy_dev_clusters |
| Integración (intg) | alloy_gke_intg |
Clona el repositorio correspondiente:
git clone <URL_DEL_REPOSITORIO>
Luego, crea una nueva rama para tu instalación:
git checkout -b feature/install_<cluster_name>
- Editar el archivo de configuración del ambiente
Ubica el archivo clusters_AMBIENTE.json dentro del repositorio clonado. (AMBIENTE debe reemplazarse por dev, intg o prod según corresponda).
Ejemplo de nombre:
clusters_prod.json clusters_dev.json clusters_intg.json
- Añadir la definición del nuevo clúster El archivo JSON tiene la siguiente estructura base:
{
"repositories": [
{
"project": "xxxxxxx",
"location": "xxxxxxx",
"cluster_id": "xxxxxxx",
"autopilot": "no"
},
{
"project": "yyyyyyyy",
"location": "yyyyyy",
"cluster_id": "yyyyyy",
"autopilot": "no",
"stack": "stack_name"
}
]
}
Para añadir un nuevo clúster:
Agrega una coma (,) al final del último objeto existente. Inserta un nuevo objeto con los campos requeridos (project, location, cluster_id, autopilot, y opcionalmente squad). Ejemplo de adición:
{
"project": "marketingdomain-prod-9o7z",
"location": "us-east1",
"cluster_id": "gke-01-us-east1-prod",
"autopilot": "yes",
"stack": "eloyalty"
}
Los stacks disponibles en los templates son:
- eloyalty
- ecarga
- monobs
- ANDES
- Validar acceso a GCP
Verifica que tienes acceso a GCP y que gcloud esté autenticado correctamente:
gcloud auth list
gcloud config list project
Si no estás autenticado:
gcloud auth login
- Ejecutar el instalador Una vez modificado el archivo JSON, ejecuta el script de instalación install.sh:
./install.sh clusters_AMBIENTE.json
Este script:
- Lee la configuración del archivo JSON.
- Genera automáticamente los values.yaml requeridos para cada clúster.
- Prepara los Helm charts de: Stackdriver exporter Grafana Alloy OpenTelemetry Operator
6. **Validar generación de archivos**
Tras ejecutar el script, deberían haberse generado los siguientes archivos:
**Estructura esperada:**
- `deploy/`
- `helm/`
- `k8s-monitoring/`
- `values_<project_id><cluster_id>.yaml`
- `stackdriver/`
- `values_<project_id><cluster_id>.yaml`
Aparte se deben añadir los helm charts a instalar en estos archivos.
7. **Crear Merge Request**
Una vez validados los archivos generados:
1. pushear los cambios
```bash
git add .
git commit -m "Add new cluster <cluster_name> configuration"
git push origin feature/install_<cluster_name>
```
2. Crea un Merge Request desde tu rama hacia master.
3. Solicita la revisión correspondiente al equipo de Observabilidad y Resiliencia.