92 lines
4.0 KiB
Markdown
92 lines
4.0 KiB
Markdown
# Uso de `run.sh`
|
|
|
|
El script `run.sh` automatiza el proceso de implementación para un entorno de `k8s` utilizando `minikube`. Incluye la construcción de imágenes `docker`, la personalización de versiones de `postgres`, la habilitación de `SSL` y la configuración de réplicas para la API.
|
|
|
|
## Requisitos
|
|
|
|
- [minikube](https://minikube.sigs.k8s.io/docs/start/)
|
|
- [docker](https://docs.docker.com/get-docker/)
|
|
- [helm](https://helm.sh/docs/intro/install/)
|
|
|
|
## Uso
|
|
|
|
```bash
|
|
./run.sh -i # Modo interactivo
|
|
./run.sh -p <version> -s <Y|N> -r <number> # Modo no interactivo
|
|
./run.sh -p <version> -s <Y|N> -r <number> -f # Modo no interactivo con Fluentd habilitado
|
|
```
|
|
|
|
## Opciones de línea de comandos
|
|
|
|
- **-i:** Modo interactivo
|
|
- **-p <version>:** Especificar la versión de `postgres`
|
|
- **-s <Y|N>:** Habilitar o deshabilitar `SSL` (Y para sí, N para no)
|
|
- **-r <number>:** Especificar el número de réplicas para la API
|
|
- **-f:** Habilitar `fluentd` para la agregación de registros
|
|
- **-u:** Desinstalar el chart
|
|
- **-d:** Agrega datos básicos a la DB
|
|
|
|
## Ejemplos
|
|
|
|
### Cambio de versión de postgres
|
|
|
|
Si se quiere modificar la versión de la base de datos se puede hacer simplemente:
|
|
|
|
```bash
|
|
./run.sh -p 13.1
|
|
```
|
|
|
|
Esto actualizará todo lo que sea necesario para que se pueda hacer este cambio.
|
|
|
|
### Especificar número de réplicas para la API
|
|
|
|
```bash
|
|
./run.sh -r 6
|
|
```
|
|
|
|
## Funcionalidad del script
|
|
|
|
1. **Verificación del estado de minikube:**
|
|
|
|
El script verifica si `minikube` ya está en ejecución y lo inicia si no lo está.
|
|
|
|
2. **Versión de postgres y construcción:**
|
|
|
|
Solicita al usuario la versión de postgres, construye imágenes `docker` y actualiza la versión en el archivo de valores de `helm`.
|
|
|
|
3. **Configuración de TLS:**
|
|
|
|
Pregunta al usuario si desea habilitar `TLS` y actualiza el archivo de valores de `helm` en consecuencia.
|
|
|
|
4. **Configuración de réplicas para la API:**
|
|
|
|
Solicita al usuario el número de réplicas para la API y actualiza el archivo de valores de `helm`.
|
|
|
|
5. **Configuración de Ingress:**
|
|
|
|
Habilita extensión ingress si `minikube` está en ejecución.
|
|
|
|
6. **Configuración de fluentd (opcional):**
|
|
|
|
Se consulta al usuario si desea habilitar `fluentd` para la agregación de registros. Puede activarse o desactivarse directamente en el archivo `values.yaml`. Es importante destacar que, con el objetivo de mantener la simplicidad y evitar el "bloat" de `values.yaml`, se proporciona un archivo adicional llamado `fluentd.yaml`. Este archivo debe pasarse como parámetro `-f` a `helm` para configurar `fluentd` con los parámetros necesarios. Cabe señalar que esto es opcional, ya que `Fluentd` puede funcionar sin estas configuraciones, pero se recomienda su uso debido a que realiza algunas condiciones de contenedores de inicio para esperar el servicio de `fluentd` y para recopilar solo los registros de los contenedores `exam-*` (y no todos los registros de `k8s`).
|
|
|
|
Se utiliza la siguiente instrucción al instalar o actualizar `helm`:
|
|
|
|
```bash
|
|
helm install exam ./helm -n exam -f helm/values.yaml -f helm/fluentd.yaml
|
|
```
|
|
|
|
Para ver los registros de los contenedores `exam-*`, podés usar:
|
|
|
|
```bash
|
|
kubectl logs -n exam exam-fluentd-0
|
|
```
|
|
|
|
Para realizar la configuración y el envío a un backend de registros como `elasticsearch`, podés editar `fluentd.yaml` según tus necesidades.
|
|
|
|
7. **Configuración de Secrets (opcional):**
|
|
|
|
Para no mantener los secretos en el SVC (si se utiliza uno), se pueden pasar a `helm` mediante un archivo `secrets.yaml` con la opción `-f`. Si existe `./helm/secrets.yaml` (en la carpeta `./helm`, es decir en la misma ubicación que `values.yaml`), se utilizarán estos valores; de lo contrario, se utilizarán los definidos en `values.yaml`. Estos valores sobrescribirán los existentes.
|
|
|
|
Cabe destacar que al crear `./helm/secrets.yaml`, el script `run.sh` lo detectará automáticamente y lo utilizará al ejecutar `helm`. Por lo tanto, no es necesario realizar acciones adicionales, ya que el script gestionará la detección y el paso de este archivo a `helm`.
|