Rationale
Some clients of O2 software need to use RPMs to deploy O2 software and its dependencies. We support two kind of RPM builds:
- Parallel installable RPMs, where the version of the packages is actually part of the name, allowing parallel installation a-la CVMFS.
- Updatable RPMs, which behave like common RPMs for Centos / RHEL.
The RPM creation is not a rebuild of the tarballs which are usually deployed on CVMFS,
but a mere repackaging of the tarballs, via the same script which does the publishing
on CVMFS. The script itself is called aliPublish
and as usual it’s part of the
alisw/ali-bot repository.
For the RPM case, in particular, the script runs in Nomad as a publish-rpm-*
job.
The script runs asynchrounously and publishes packages as specified by the configurations for parallel and updateable RPMs.
Nomad job management
Just like CI and Jenkins builders, RPM publishers are configured as templated Nomad jobs.
They are declared using one YAML file for each architecture.
For instance, for the Alma 8 RPMs, see ci-jobs/rpm-creation/el8.yaml
:
---
arch: el8.x86_64
configs:
- aliPublish-rpms-cc8.conf
- aliPublish-s3-updatable-rpms.conf
This declares the architecture for which RPMs are created as arch
, and the configuration files from ali-bot/publish/
to use as configs
.
Updates to aliPublishS3
or the configuration files are picked up automatically between runs.