Actualizacion de 1.13 a 2.0
Consideraciones
Esta guía lo lleva en el proceso de actualizar una instalación pre-existente de EEI. Tenga en cuenta que:
- La versión requerida de EEI en ejecución es la v1.13.1 (última al generar esta guía, no se probaron versiones previas)
- Se actualiza toda la solución EEI que se despliega con Docker
k8s-deployment: para actualizar su repositorio con los commits más recientes de k8s-deployment, es necesario realizar un pull del repositorio upstream.
git pull upstream main
siu-k8s: para poder reflejar los nuevos cambios de cada version en su entorno es necesario actualizar de su repositorio el submodulo.
Para esto, estando parado en el directorio padre, debe utilizar el siguiente comando:
git submodule update --remote
Actualizacion Mayor
1.13.x a 2.0.0
Resumen de actualización
Se actualizará:
- Araí-Documentos a v2.0.3.
- Araí-Usuarios a v3.4.3.
- Sudocu a v2.1.0.
- SIU-Huarpe a v3.8.0.
- Araí-Proveedores (Opcional) a v2.3.0.
- Huarpe a v3.9.0.
Deberá apuntar a la nueva versión de EEI. La mayoria de cambios requiere modificaciones en configMap o Secrets.
Actualización
Previo a ejecutar los siguientes comandos para desplegar los pods, recuerde ubicarse dentro de la carpeta de su overlay, de esta manera podrá copiar y pegar los comandos correctamente en su terminal.
cd <uunn-overlay>
Antes de actualizar
Antes de actualizar es necesario realizar un backup de las bases de datos que se actualizarán.
Araí-Documentos
En esta versión de Araí-Documentos se incluyen nuevas funcionalidades en la gestión de los repositorios de documentos. https://documentacion.siu.edu.ar/arai/documentos/intro
Tambien se distribuyen nuevos servicios opcionales cuya documentación se encuentra en la sección del despliegue de Araí-Documentos
Esta versión soporta el uso de multiples repositorios de documentos y archivos en simultáneo, pero se ofrece un mecanismo para continuar usando el repositorio de documentos vigente configurando nuevas variables de entorno.
Actualizar variables
En la versión 2.0 de Arai-Docs se agregaron nuevas variables de entorno para la gestion de los repositorios de documentos. Los cambios se detallan acá.
Para configurar el repositorio por defecto usado para almacenar documentos y archivos, se debe definir los parámetros de conexión en las siguientes variables de entorno dependiendo de si se utiliza un repositorio como nuxeo o uno compatible con S3. Al momento de actualizar a la versión 2.0, el repositorio vigente usado para el almacenamiento de documentos/archivos es el que debe ser configurado como repositorio por defecto.
Conexión con Nuxeo
STORAGE_TYPE: Debe especificarRDISTORAGE_HOST: Es la url de nuxeo, debe apuntar a la API CMIS < url-host-nuxeo >/nuxeo/atom/cmis/STORAGE_USUARIO: API User de NuxeoSTORAGE_CLAVE: Password asociada al User anterior
Conexión con S3
En caso de que opte por utilizar la solución de object storage de S3, debe configurar y agregar de ser necesario las siguientes variables:
STORAGE_TYPE: Debe especificarS3STORAGE_ENDPOINT: Configuracion del endpoint donde se encuentran los buckets.STORAGE_KEY: Key para autenticar contra el bucket.STORAGE_SECRET: Secret para autenticar contra el bucket.STORAGE_REGION: Region donde se encuentra el bucket. Ej:us-west-2.STORAGE_BUCKET: Nombre del bucket. Ejemplo:bucket_test.STORAGE_VERSION: Version del servicio web utilizado. Ejemplo:2006-03-01olatest.
Escalar despliegues de Araí-Documentos a 0 (cuando aplique)
kubectl scale deployment docs-api-archivos docs-api-backend docs-api-frontend docs-worker --replicas=0 -n <namespace>
Actualización de bases de datos de Araí-Documentos
-
Realizar el backup de PostgreSQL de manera preventiva
-
Modifique
uunn-overlay/jobs/documentos/init-update/kustomization.yaml
resources:
- ../../../../siu-k8s/base-eei/2.0.0/arai/documentos/jobs/init-update/
- Desplegar el servicio que actualiza la base de datos
Ejecute:
kustomize build --load-restrictor LoadRestrictionsNone jobs/documentos/init-update | kubectl apply -f -
Despliegue de aplicacion Araí-Documentos
Modifique uunn-overlay/apps/documentos/kustomization.yaml:
resources:
- ../../../siu-k8s/base-eei/2.0.0/arai/documentos
kustomize build --load-restrictor LoadRestrictionsNone apps/documentos/ | kubectl apply -f -
Es necesario escalar a las réplicas correspondientes cada una de los servicios correspondientes que previamente fueron llevados a 0 réplicas, para que los servicios queden nuevamente operativos.
Araí-Usuarios
Se presenta como una versión con grandes cambios internos. Las principales novedades de Arai-Usuarios son:
- La integración del subcomponente de Arai-Documentos que maneja archivos para almacenar imágenes del usuario y de la aplicación
- La integración de Araí-Notificaciones para el envío de los emails
- Nuevos servicios del stack
workerpara el procesamiento en segundo plano.
Todos los cambios se detallan acá.
Escalar despliegues de Araí-Usuarios a 0 (cuando aplique)
kubectl scale deployment usuarios-api usuarios-idm usuarios-idp usuarios-memcached --replicas=0 -n <namespace>
Incorporar nuevos secretos
Una vez realizado dichos backup, hay que agregar un nuevo secreto requerído en esta nueva version de Arai-Usuarios para el correcto despliegue del servicio:
CREDENCIALES_API_BASIC_NOTIFICACIONES: Parámetros de conexión con la Api de Araí-NotificacionesCREDENCIALES_API_BASIC_ARCHIVOS: Parámetros de conexión con la Api de Araí-ArchivosREDIS_PASSWORD: Parámetros de conexión con usuarios-redis de Araí-Usuarios
Se deben agregar en uunn-overlay/secrets/usuarios-secrets.env. Al momento de realizar el deploy, estos valores se actualizarán automáticamente.
En caso de contar con un gestor de secretos, como por ejemplo Vault, los valores deberán cargarse allí en lugar de hacerlo directamente en el archivo.
Eliminar variables no utilizadas
Dado que el envío de los mails se delega formalmente en el servicio de Arai-Notificaciones, ya no son necesarias las variables de entorno que especificaban la forma de conectarse con un SMTP.
Se recommienda por lo tanto, eliminar las variables de entorno siguientes para evitar confusiones sobre la responsabilidad del envío de mails.
Modifique uunn-overlay/apps/usuarios/config/usuarios.env
MAILER_HELO=mail.unx.edu.ar
MAILER_HOST=smtp.googlemail.com
MAILER_PORT=587
MAILER_FROM=yo@midominio.com
MAILER_SEGURIDAD=ssl
MAILER_AUTH=1
MAILER_USUARIO=usuario
MAILER_CLAVE=clave
Actualización de bases de datos de Araí-Usuarios
-
Realizar el backup de PostgreSQL de manera preventiva
-
Modifique
uunn-overlay/jobs/usuarios/update/kustomization.yaml
resources:
- ../../../../siu-k8s/base-eei/2.0.0/arai/usuarios/jobs/update/
- Desplegar el servicio que actualiza la base de datos
Ejecute:
kustomize build --load-restrictor LoadRestrictionsNone jobs/usuarios/update | kubectl apply -f -
Despliegue de aplicacion Araí-Usuarios
Modifique uunn-overlay/apps/usuarios/kustomization.yaml:
resources:
- ../../../siu-k8s/base-eei/2.0.0/arai/usuarios
kustomize build --load-restrictor LoadRestrictionsNone apps/usuarios/ | kubectl apply -f -
Es necesario escalar a las réplicas correspondientes cada una de los servicios correspondientes que previamente fueron llevados a 0 réplicas, para que los servicios queden nuevamente operativos.
Migrar los assets existentes
Como parte del proceso de mejora y siendo que la gestión de los assets de Araí-Usuarios (avatars, iconos de aplicaciones) necesitaba una alternativa a un volumen de red, se decidió hacer uso de la API que expone un subcomponente de Araí-Documentos que se encarga de realizar la gestión de archivos.
Este subcomponente que por comodidad denominaremos Araí-Archivos aunque no tiene entidad propia, puede desprenderse del uso de Araí-Documentos y desplegarse como un único servicio.
Como parte de dicha integración entonces, se trasladan los assets de Araí-Usuarios hacia ese servicio, quedando únicamente una copia cacheada del archivo original.
Este proceso de migración lo llevamos adelante desplegando el siguiente job:
kustomize build --load-restrictor LoadRestrictionsNone jobs/usuarios/migrar | kubectl apply -f -
Desplegar servicios complementarios
Para agilizar el procesamiento de ciertos flujos de trabajo se decidió descargar el envío de los mails en el servicio de envío de Notificaciones.
Puede realizar el despliegue del mismo siguiendo las instrucciones presentes aquí.
SUDOCU
Dentro de esta actualización del ecosistema de expedientes a la versión 2.0, el componente SUDOCU se actualiza a la versión 2.1.0, que trae grandes cambios en el deploy.
Actualización desde SUDOCU 1.6.x
Cambios de deploy que introduce esta versión:
- Se elimina el servicio
sudocu-gestion(y su configconfig-sudocu-gestion.jsonenuunn-overlay/apps/sudocu/config), se debe eliminar desde eluunn-overlay/apps/sudocu/config/kustomization.yamlla siguiente línea
- config-sudocu-gestion.json
- Se agrega la sección
araienconfig-api-server.json, es recomendable realizar un diff con el archivo de configuracion de la base, asi se incluyen los parametros correspondientes (conexión con Araí-Personas y Araí-Usuarios), estos requieren dos secretos nuevos:arai_personas_api_passwordyarai_usuarios_api_password, los cuales deben incluirse dentro deuunn-overlay/secrets/sudocu-api-server-secret.json, de la siguiente manera:
"arai_personas_api_password": "API_PERSONAS_PASSWORD",
"arai_usuarios_api_password": "API_USUARIOS_PASSWORD"
- MPD y MPC no cambian de arquitectura, solo reciben ajustes menores de ruteo.
Escalar despliegues de SUDOCU a 0 (cuando aplique)
kubectl scale deployment sudocu-api-server-2 sudocu-api-server sudocu-api-worker sudocu-cache sudocu-gestion sudocu-mpc sudocu-mpd sudocu-pdf sudocu-web --replicas=0 -n <namespace>
Al ya no ser necesario el servicio Sudocu Gestión, es necesario eliminarlo para evitar que se produzca cualquier inconveniente a futuro.
Puede realizarlo con:
kubectl delete deployment sudocu-gestion -n <namespace>
Actualización de bases de datos de SUDOCU
-
Realizar el backup de PostgreSQL de manera preventiva
-
Modifique
uunn-overlay/jobs/sudocu/update/kustomization.yaml
resources:
- ../../../../siu-k8s/base-eei/2.0.0/sudocu/jobs/update/
-
Actualizar el secreto y revisar
config-api-server.jsone incorporar los parámetros nuevos de esta versión. Los principales (se recomienda hacer un diff del archivo del overlay con el que esta en la base):arai(obligatorio): nueva sección con las URLs y usuarios de conexión a las APIs de Araí-Personas y Araí-Usuarios. Las contraseñas correspondientes son las que se agregaron al secreto en el paso anterior.firma.sistemas_origen: identifica a SUDOCU como sistema de origen ante Araí-Documentos.throttler: límites de tasa de peticiones (viene deshabilitado por defecto).queue: nuevos parámetros de gestión de colas (remove_on_complete,remove_on_fail,job_timeout).- Nuevos flags funcionales (
vista_area,puedo_cancelar_comunicacion,copiar_archivos_adjuntos—ahora es un objeto en lugar de un booleano—, etc.), detallados en el Changelog.
Como regla general, compare su
config-api-server.jsoncon el archivo de configuración por defecto del módulo e incorpore todo parámetro que no tenga. -
Desplegar el servicio que actualiza la base de datos
Ejecute:
kustomize build --load-restrictor LoadRestrictionsNone jobs/sudocu/update | kubectl apply -f -
Despliegue de aplicacion SUDOCU
Modifique uunn-overlay/apps/sudocu/kustomization.yaml:
resources:
- ../../../siu-k8s/base-eei/2.0.0/sudocu
kustomize build --load-restrictor LoadRestrictionsNone apps/sudocu/ | kubectl apply -f -
Es necesario escalar a las réplicas correspondientes cada una de los servicios correspondientes que previamente fueron llevados a 0 réplicas, para que los servicios queden nuevamente operativos.
Araí-Proveedores (Opcional)
Si posee desplegado el Portal del Proveedor, en esta versión se actualizó la version del Portal basado en SIU-Huarpe y la API de Proveedores.
Escalar despliegues de Araí-Proveedores a 0 (cuando aplique)
kubectl scale deployment proveedores-api proveedores-memcached proveedores-portal --replicas=0 -n <namespace>
Actualización de bases de datos de Araí-Proveedores
-
Realizar el backup de PostgreSQL de manera preventiva
-
Modifique
uunn-overlay/jobs/proveedores/update/kustomization.yaml
resources:
- ../../../../siu-k8s/base-eei/2.0.0/arai/proveedores/jobs/update/
- Desplegar el servicio que actualiza la base de datos
Ejecute:
kustomize build --load-restrictor LoadRestrictionsNone jobs/proveedores/update | kubectl apply -f -
Actualizar API y Portal
Ajustes en variables de entorno
En el archivo [`uunn-overlay/apps/proveedores/config/portal.env] se agrega una nueva variable de entorno para indicar la versión de la API de SIU-Diaguita disponible.
API_DIAGUITA_VERSION:En esta nueva variable de entorno se debe indicar la versión de la API de SIU-Diaguita disponible. En la documentación se encuentran los números de versión de API correspondientes a cada versión del módulo SIU-Diaguita. Ej: Si se cuenta con la versión de SIU-Diaguita 4.2.0, la versión de la API correspondiente a esa versión del modulo es la 1.3
También en [`uunn-overlay/apps/proveedores/config/portal.env] se ajusta la url de conexión a la API de Proveedores.
ARAI_PROVEEDORES_URL: La URL de conexión a la API de Proveedores ahora requiere explicitamente la versión en la url. Ahora la url quedaría de esta forma: http://proveedores-api/api-proveedores/rest/v1/
En [prod/modulos/proveedores/proveedores.env] se ajusta la url de conexión a la API de Araí-Documentos ya que ahora se requiere la ruta completa a la API Backend.
DOCUMENTOS_API_BASE_URI: http://docs-api/docs/rest/backend/v1/
Es recomendable igualmente el realizar un diff del archivo portal.env de su overlay con el que esta en la base en proveedores 2.3.0 que es el actualizado.
Despliegue de aplicacion Araí-Proveedores
Modifique uunn-overlay/apps/proveedores/kustomization.yaml:
resources:
- ../../../siu-k8s/base-eei/2.0.0/arai/proveedores
kustomize build --load-restrictor LoadRestrictionsNone apps/proveedores/ | kubectl apply -f -
Es necesario escalar a las réplicas correspondientes cada una de los servicios correspondientes que previamente fueron llevados a 0 réplicas, para que los servicios queden nuevamente operativos.
Huarpe
Se realizan varias mejoras en la bandeja, todas funcionales.
Bundle de SIU-Diaguita - Patrimonio
En esta versión de Huarpe se incluye una nueva variable de entorno en el archivo [uunn-overlay/apps/huarpe/config/huarpe.env] para indicar la versión de la API de SIU-Diaguita disponible.
API_DIAGUITA_VERSION:En esta nueva variable de entorno se debe indicar la versión de la API de SIU-Diaguita disponible. En la documentación se encuentran los números de versión de API correspondientes a cada versión del módulo SIU-Diaguita. Ej: Si se cuenta con la versión de SIU-Diaguita 4.2.0, la versión de la API correspondiente a esa versión del modulo es la 1.3 Si se cuenta con el bundle de Patrimonio habilitado se debe configurar la version de la API para que se habiliten las nuevas funcionalidades del Bundle dependiendo la version de SIU-Diaguita utilizada.
Es recomendable igualmente el realizar un diff del archivo huarpe.env de su overlay con el que esta en la base en huarpe 3.9.0 que es el actualizado.
Actualizar el despliegue
Modifique uunn-overlay/apps/huarpe/kustomization.yaml:
resources:
- ../../../siu-k8s/base-eei/1.13.0/huarpe
kustomize build --load-restrictor LoadRestrictionsNone apps/huarpe/ | kubectl apply -f -