- Update Caddy tasks and templates to serve from /srv/www/repo.
- Update Koji Hub export script to target /srv/www/repo/.
- Redeploy Caddy config via Ansible.
- Update ADR-05 and package compilation documentation.
- Log progress in the project journal.
Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
- Provision cs10-repo.mx-os VM with 500 GB system disk using OpenTofu.
- Create and apply Ansible role to install and configure Caddy to serve /srv/repo/.
- Update Koji Hub export script to rsync signed binary RPMs to the repo server and trigger createrepo_c.
- Record ADR-05 detailing this design decision and update package compilation guide.
- Log progress in the project journal.
Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
- Record ADR-05 detailing the topological sorting and cyclic group resolution.
- Update package compilation guide with instructions for running the bootstrap daemon and the Forgejo package exporter.
- Log agent progress in the project journal.
Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
- Configure mxos-packages DNF repository to allow siguldry-pkcs11 package resolution.
- Verify if rsvg-convert exists on localhost to bypass become/dnf installation check when passwordless sudo is unavailable.
- Align PKCS#11 module path to /usr/lib64/pkcs11/libsiguldry_pkcs11.so in spooler and docs.
Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
* Explicación de la carga de RPMs a través del API de Forgejo
* Configuración del repositorio local DNF
* Ejemplo de workflow en YAML para Forgejo Actions
Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
* 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>
- Configurar rol dist_git como Lookaside Cache únicamente (sin git-daemon).
- Actualizar estructura de caché a 'rpms/pkg/file/algo/hash/file' compatible con upstream.
- Añadir scripts bin/sync-sources.bash y bin/sync-all-sources.bash para sincronizar fuentes desde CentOS Stream.
- Eliminar bin/import-srpm.bash obsoleto.
- Actualizar script mxos-get-sources.bash en kojid para usar la nueva estructura de URL.
- Corregir lógica de 'add-host' en koji_bootstrap para manejar reintentos limpiamente.
- Actualizar documentación (README.rst, docs/instalación.rst) reflejando los cambios.
- Correcciones menores en rutas de configuración y nombres de grupos en deploy.yaml.
Este commit introduce varias mejoras en los roles de Ansible para Koji:
- **Rol koji_hub:**
- Se reemplazó `lineinfile` con una plantilla completa para `hub.conf` para mejorar la legibilidad y mantenibilidad.
- Se aseguró la instalación del paquete `python3-koji-hub-plugins` para soportar el plugin `echo`.
- Se eliminó una tarea `blockinfile` redundante que duplicaba la configuración de la base de datos en `hub.conf`.
- Se rehabilitó el plugin `echo` en `hub.conf` después de asegurar su disponibilidad.
- **Rol postgresql:**
- Se modificó la configuración de `pg_hba.conf` para iterar correctamente sobre todos los hosts en el grupo `kojihub`, asegurando que todas las instancias del hub puedan conectarse a la base de datos.
- **Rol dist_git:**
- Se implementó el etiquetado persistente de contextos SELinux para los directorios de `dist-git` usando `semanage fcontext` y `restorecon`, asegurando que los contextos persistan tras reetiquetados del sistema de archivos.
- **Rol common:**
- Se mejoró la seguridad en la generación de claves GPG usando un archivo temporal para el script por lotes, el cual se elimina de forma segura después de la generación de la clave.
- **Configuración Global:**
- Se introdujo la variable `koji_source_script_path` en `vars/default.yaml` para centralizar la ruta del script `mxos-get-sources.bash`, eliminando rutas hardcodeadas en `kojid_allowed_scms` y las tareas de `kojid`.
- **Documentación:**
- Se actualizó `docs/instalación.rst` para reflejar los cambios en la configuración de Dist-Git, plugins y variables.
Se estandarizan los nombres de los directorios de roles, cambiando guiones por guiones bajos.
Se añaden nuevos scripts para limpieza y callbacks en Koji Hub. Además, se actualizan las configuraciones de Kojid, Kojira y PostgreSQL, incluyendo la instalación de paquetes, ajustes de mock y la gestión de variables.