Commit graph ansible-koji/.agents
Author SHA256 Message Date
ec69441d1c
feat(opentofu): add UEFI base image generation with explicit kickstart template
- Implement build-base-image.bash to automate UEFI base image creation
- Use explicit base-image.ks.tftpl template for virt-install kickstart
- Document base image requirements, package list, and partition layout in README
- Generalize path resolution and support terraform.tfvars overrides
- Fix clean-certs target in GNUmakefile to create directory if missing
- Update journals

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-18 22:59:21 -06:00
e56d8094a7
docs(journal): document libXrender failed build deletion
Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-18 19:09:17 -06:00
7b4bbbef8a
docs(journal): update journal for 2026-06-18
Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-18 17:22:01 -06:00
7b498b7d3c
fix(koji-sign-spooler): include build_dir when resolving signed RPM paths
The signature spooler daemon failed to run the ownership fix (chown to apache:apache)
on signed RPM files because it looked for them in the top-level koji_dir
instead of the package build subdirectory.

By including `build_dir` in `signed_rpm_path`, we ensure the file check succeeds
and the chown command is correctly executed, preventing permission errors
during repo regeneration tasks.

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-18 15:18:28 -06:00
de813e4883
fix(koji-bootstrap): map package names containing + to plus in SCM URL
Gitea/Forgejo normalizes '+' in repository names to 'plus' (e.g.,
'perl-Text-Tabs+Wrap' becomes 'perl-Text-TabsplusWrap').

Update `bootstrap-baseos.py` to replace '+' with 'plus' when triggering
builds so Koji can pull the source files from the correct SCM URL.

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-18 11:59:26 -06:00
21c0d674f1
fix(koji-web): restrict nested table CSS overrides to non-data-list tables
The custom `table.nested th` CSS rule was applying `display: inline-block !important`
to all nested tables, which broke standard nested data tables (like Active
Buildroots on hostinfo page) that need proper column alignment.

By using the `:not(.data-list)` pseudo-class, we exclude tables with
the `data-list` class, allowing them to render as proper tables.

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-18 03:37:58 -06:00
b23953d061
docs(journal): update journal log for translations
Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>

Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-18 03:18:11 -06:00
8849b610eb
docs: translate english technical guides to mexican spanish
Translate bootstrap.rst, siguldry_pkcs11.rst, and svg_conversion.rst to Mexican Spanish. Create AGENTS.md rule file specifying Mexican Spanish for documentation and English for code/comments.

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>

Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-18 03:18:03 -06:00
8251af3542
docs(bootstrap): document live scaling of builder disk and jobs capacity
Add 'Live Scaling Builder Resources (Hot-Resizing)' subsection covering virsh blockresize, growpart, resize2fs, and koji edit-host --capacity.

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>

Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-18 03:16:58 -06:00
751a4b6a94
docs(journal): document builder disk scaling and job capacity capping
Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>

Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-18 03:13:40 -06:00
7bf97894e9
feat(resources): scale builder disk to 500G and reduce max jobs to 4
Upgrade cs10-koji-03 builder disk volume to 500 GiB and cap kojid capacity to 4 jobs to reduce host CPU oversubscription. Also commit the repository split overrides parsing logic.

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>

Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-18 03:12:49 -06:00
ffa6d42717
docs: Log user-provided podman dnf query tip in journal
Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-18 02:42:41 -06:00
50d184fd5d
feat: Implement automatic repository classification (BaseOS/AppStream/CRB)
- Add mxos-generate-repo-map.py to build repository package mappings from CentOS Stream 10 primary metadata.
- Add mxos-split-repo.py to dynamically categorize and hardlink compiled packages into BaseOS, AppStream, and CRB repos on Koji Hub, followed by running createrepo_c.
- Update mxos-repo-sync.bash.j2 to trigger mxos-split-repo.py and sync BaseOS, AppStream, and CRB repositories independently.
- Update mxos.repo.j2 to define client DNF configuration for all three repositories.

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-18 02:42:26 -06:00
66400151c7
feat: resolve koji noarch buildroot 404, optimize known_hosts and rpm signing
- Restrict tag arches to x86_64 only to prevent mock from referencing missing noarch directories and causing 404s.
- Clean and scan host keys natively in Ansible roles/common/tasks/main.yaml instead of using host_key_checking=False.
- Fix koji-sign-spooler concurrency/race conditions by copying RPMs to tmp before signing, importing signature, and calling write_signed_rpm.
- Adapt mxos-get-sources.bash to parse flat checksum formats used in CentOS Stream 10 lookaside.
- Boost PostgreSQL max connections to 1000 and kojid capacity to 100 jobs.
- Refactor siguldry server role to dynamically initialize PKCS11 bindings with exported certificate.
- Clarify in documentation the difference between Koji Bootstrapping and MxOS Bootstrapping.

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-18 00:05:57 -06:00
cf531c6de6
feat(infra): fix backing store format and align bootstrap paths
Fix UEFI boot issues by explicitly specifying the qcow2 format for the system disk backing stores. Standardize the script locations by moving Koji import and orchestration scripts from /root/ to /home/kojiadmin/bin/ and updating get_baseos_src_packages path resolution. Resolve staging deploy race condition by creating the kojiadmin user on the Hub during nfs_client setup. Update all documentation references accordingly.

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-17 04:13:55 -06:00
a37e0560ce
feat(infra): use backing_store and target blocks in OpenTofu
Configure libvirt_volume resources to use the shared base_image as backing_store and specify capacity explicitly. This allows proper thin provisioning and volume resizing (expanding the virtual size beyond the 5GB base template). Correct target formatting schema block syntax.

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-17 03:46:04 -06:00
d7b36c0e85
feat(infra): scale builder VM resources and disk capacities in OpenTofu
Add locals configuration in opentofu/cs10-base.tf to scale the Koji Builder VM (index 3) to 8 cores and 16 GiB of RAM. Increase disk sizes dynamically across the cluster nodes (Hub to 50 GiB, NFS to 150 GiB, and Builder to 120 GiB) to guarantee sufficient storage capacity for the full BaseOS bootstrap process.

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-17 03:37:16 -06:00
69ebf450ac
refactor(theme): extract Koji CSS overrides to dedicated file
Extract the 400+ lines of Koji Web CSS overrides from the main.yaml tasks file into roles/koji_hub/files/koji.css and update the Deploy MxOS koji.css task to copy it from this source file. This improves task readability and modularity.

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-17 03:34:45 -06:00
62d8a294af
docs(fork): document fork strategy and bootstrap phase 1 and 2
Add docs/estrategia_de_fork_y_bootstrapping.rst to document the strategic meta of the project, detailing the step-by-step procedures for Phase 1 (bootstrap using CentOS Stream seeds) and Phase 2 (autonomous self-hosting rebuild), as well as explaining the technical value of this architecture in Mexican Spanish.

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-17 03:33:22 -06:00
6de3ebd1cf
feat(bootstrap): use public CentOS mirrors and add Spanish Koji docs
Configure centos_stream_10_baseos_url and centos_stream_10_appstream_url to point directly to public CentOS Stream 10 repositories, enabling 100% automated and reproducible bootstrap from scratch. Added a new Mexican Spanish documentation file explaining Koji concepts and nomenclature (targets, tags, inheritance) to align with standard CentOS Stream conventions. Staged the necessary orchestrator and comps bootstrap scripts in the bootstrap role.

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-17 03:25:29 -06:00
35aad22563
journal: log spooler race fix and comps-based bootstrap calculation progress
Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-17 03:01:43 -06:00
38a0669db8
feat: implement automatic, atomic, and push-based repository synchronization
- Switched from systemd path monitoring to a custom wrapper script `mxos-trigger-dist-repo.sh` spawned by the Koji signing spooler.
- Wrapper script runs Koji `dist-repo` synchronously and triggers the `mxos-repo-sync.sh` script to perform an atomic rsync of packages to the Caddy server.
- Excluded reposerver from distro-sync to work around VM disk space constraints.
- Configured Koji tag `mxos0` to cancel older pending/running `distRepo` tasks when a new one is triggered.
- Verified successful repository generation, synchronization, and DNF resolution.

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-16 23:57:02 -06:00
8ca23088f4
feat(build): fix lookaside cache fallback and organize repository structure
- Add fallback to official CentOS Stream lookaside cache in SCM get-sources script
- Update documentation to reflect CentOS-style structured repositories on cs10-repo
- Update project journal with progress and decisions

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-16 21:34:34 -06:00
1b2509b079
feat(theme): make Koji Web layout fully responsive and full-width
Remove the centered max-width #wrap layout on desktop viewport widths
and clear default #innerwrap margins to allow Koji Web tables to utilize
the full screen width, preventing layout cramming.

Co-developed-by: Gemini AI <renich+gemini@woralelandia.com>
Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
2026-06-16 21:24:58 -06:00
b7c28ade88
refactor: change repository path to /srv/www/repo for SELinux compliance
- 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>
2026-06-16 16:52:29 -06:00
c290878c96
feat: deploy Caddy repository server for BaseOS packages
- 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>
2026-06-16 16:10:32 -06:00
06e8edfc4f
docs: add bootstrap order and Forgejo export details
- 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>
2026-06-16 15:47:16 -06:00