feat: Integración de Siguldry PKCS#11 y spooler de firmas

* Implementación del rol de Ansible 'siguldry' para CentOS Stream 10
* Migración del plugin de firmas de Koji Hub a un spooler asíncrono
* Modificación de roles para utilizar empaquetamiento RPM nativo de siguldry-pkcs11
* Documentación de decisiones (ADRs) y roadmap en docs/technical/
* Limpieza de binarios locales pesados de PKCS#11 en Ansible

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
This commit is contained in:
Rénich Bon Ćirić 2026-06-16 10:06:44 -06:00
commit 89d6f66be8
Signed by: renich
GPG key ID: AB2A9F49384FE324
32 changed files with 1453 additions and 321 deletions

View file

@ -0,0 +1,48 @@
==================================
Roadmap de Desarrollo de MxOS Koji
==================================
Este roadmap define el camino a seguir para el desarrollo y optimización de la infraestructura de compilación de MxOS. El enfoque prioritario es lograr la compatibilidad absoluta con CentOS Stream 10 antes de introducir optimizaciones adicionales.
Igualacion a CentOS Stream
--------------------------
El primer hito es replicar los mecanismos de compilación y firma oficiales para ser compatibles con CentOS Stream:
* **Estandarización de Fuentes (Lookaside Cache)**:
* Adoptar el script oficial `get_sources.sh` o su equivalente compatible con el formato de la caché lookaside.
* Modificar los scripts de sincronización locales para integrarse con la estructura oficial.
* **Firma con Sigul Oficial**:
* Desplegar en staging el servidor y el puente de Sigul (`sigul-server` y `sigul-bridge`) usando certificados TLS dedicados y políticas de ACL de Sigul.
* Configurar e importar llaves GPG reales de pruebas en el servidor de Sigul.
* Reescribir el plugin de Koji Hub (`sigul_sign.py`) para invocar el cliente `sigul` oficial.
* **Políticas de SCM en el Hub**:
* Restringir el Koji Hub mediante la propiedad `AllowedSCMs` para forzar las compilaciones a partir de los repositorios Git en `git.mx-os.mx/RPMs/`.
Branding de Koji a MxOS
-----------------------
Para personalizar la interfaz de Koji Web con la identidad gráfica de MxOS (utilizando los recursos de logotipos en SVG en la raíz del proyecto):
* **Conversión de Recursos Gráficos**:
* Utilizar herramientas nativas de CentOS Stream 10 para convertir los archivos de logotipos SVG (``mxos.svg`` y ``mxos-reducido.svg``) a formato PNG con la resolución adecuada para Koji Web.
* **Creación de Tema para Koji Web**:
* Implementar el rol de Ansible para crear el directorio del tema en `/usr/share/koji-web/static/themes/mxos/`.
* Copiar el logotipo de MxOS en `images/koji.png` dentro del tema.
* Personalizar la hoja de estilos `koji.css` del tema mxos para aplicar la paleta de colores y estilos corporativos.
* **Configuración del Tema en el Servidor**:
* Configurar `KojiTheme = mxos` y `SiteName = MxOS Koji` en `/etc/kojiweb/web.conf` a través de las plantillas del rol `koji_hub`.
Planes de Mejora y Escalabilidad
--------------------------------
Una vez alcanzada la paridad técnica con CentOS Stream, se procederá con las siguientes mejoras de infraestructura y automatización:
* **Asincronía vía Bus de Mensajes**:
* Reemplazar los callbacks locales por la emisión de mensajes AMQP mediante `koji-messagebus` (RabbitMQ).
* Crear un servicio consumidor de firmas autónomo que escuche los eventos de compilación terminada para firmar paquetes asíncronamente sin afectar a Apache.
* **Autenticación Centralizada (Kerberos)**:
* Integrar FreeIPA o Red Hat IDM para autenticar de manera segura a los builders y desarrolladores.
* Configurar `sssd` en los nodos y configurar `mod_auth_gssapi` en Koji Hub y Koji Web.
* **Múltiples Builders**:
* Escalar horizontalmente el número de Koji Builders activos, asociándolos a canales especializados (como compilar arquitecturas secundarias o tareas prioritarias).