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
:
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.