From 568bb08da7a766f83c5acdccc3de088e058a024d Mon Sep 17 00:00:00 2001 From: Santiago Lo Coco Date: Mon, 20 Nov 2023 10:41:29 -0300 Subject: [PATCH] Update run.sh and README.md --- README.md | 54 +++++++++++++++++++++++++++++++++++------------------- run.sh | 3 ++- 2 files changed, 37 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 811cfda..9b475b6 100644 --- a/README.md +++ b/README.md @@ -1,56 +1,72 @@ # 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 `TLS` y la configuración de réplicas para la API. +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/) +- [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 -s -r # Modo no interactivo +./run.sh -p -s -r -f # Modo no interactivo con Fluentd habilitado ``` ## Opciones de línea de comandos - **-i:** Modo interactivo -- **-p :** Especificar la versión de Postgres -- **-s :** Habilitar o deshabilitar SSL (Y para sí, N para no) +- **-p :** Especificar la versión de `postgres` +- **-s :** Habilitar o deshabilitar `SSL` (Y para sí, N para no) - **-r :** Especificar el número de réplicas para la API +- **-f:** Habilitar `fluentd` para la agregación de registros ## Funcionalidad del script -1. **Verificación del estado de Minikube:** +1. **Verificación del estado de minikube:** - El script verifica si Minikube ya está en ejecución y lo inicia si no lo está. + 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:** +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`. + 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. + 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`. + 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 el complemento Ingress si Minikube está en ejecución. + Habilita extensión ingress si `minikube` está en ejecución. -6. **Implementación de Helm:** +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`). - Verifica la existencia de un release de `Helm` llamado "exam" y lo actualiza o instala según sea necesario. + Se utiliza la siguiente instrucción al instalar o actualizar `helm`: -## build.sh + ```bash + helm install exam ./helm -n exam -f helm/values.yaml -f helm/fluentd.yaml + ``` -El script `build.sh` es el encargado de construir imágenes de `Docker`. Ofrece diversas opciones para personalizar el proceso de construcción. Aunque es posible ejecutarlo de forma independiente, se recomienda utilizar el script `run.sh`, ya que actúa como `wrapper`. De todos modos se adjunta la documentación pertinente: + 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. **Implementación de helm:** + + Verifica la existencia de un release de helm llamado "exam" y lo actualiza o instala según sea necesario. ### Uso @@ -60,8 +76,8 @@ El script `build.sh` es el encargado de construir imágenes de `Docker`. Ofrece ### Opciones -- `-b`: Construye las imágenes de `Docker`. -- `-v `: Especifica la versión de `PostgreSQL`. +- `-b`: Construye las imágenes de `docker`. +- `-v `: Especifica la versión de `postgreSQL`. ### Ejemplo diff --git a/run.sh b/run.sh index dc29968..60827cb 100755 --- a/run.sh +++ b/run.sh @@ -35,6 +35,7 @@ if [ "$interactive" == true ]; then read -p "Enter the Postgres version (press Enter for default 13.3): " postgres_version read -p "Do you want to enable SSL? [y/N]: " enable_ssl read -p "Enter the number of replicas for the API: " api_replicas + read -p "Do you want to enable fluentd? [y/N]: " fluentd fi if [ -n "$postgres_version" ]; then @@ -78,7 +79,7 @@ $START_MINIKUBE && minikube addons enable ingress helm dependency build helm -if [ "$fluentd" == true ]; then +if [ "$fluentd" == true ] || [ "$fluentd" == "y" ] || [ "$fluentd" == "Y" ]; then VALUES=("-f" "helm/values.yaml" "-f" "helm/fluentd.yaml") helm status exam -n exam > /dev/null 2>&1 && helm upgrade exam ./helm -n exam ${VALUES[@]} || helm install exam ./helm -n exam ${VALUES[@]} else