Ohai,
I wanted to add support for running Foreman on Ubuntu 22.04 and thought it’d be a good idea to have a checklist, which can also be re-used in the future, on adding new operating systems. The below list is specific for Debian/Ubuntu, but most steps can be translated to EL-based distributions too.
OS provided software
- PostgreSQL: 14 – should be fine for us
- Ruby: 3.0 – currently unsupported by Foreman: Tracker #32684: Ruby 3.0 support - Foreman
External dependencies
- Puppet Agent – https://tickets.puppetlabs.com/browse/PA-4233
- Puppet Server – https://tickets.puppetlabs.com/browse/SERVER-3193
- Vagrant Box (libvirt) – please add Ubuntu 22.04 Jammy · Issue #238 · lavabit/robox · GitHub
- Container – available at Docker
- beaker-docker – no changes required this time (GitHub - voxpupuli/beaker-docker: Docker hypervisor for Beaker acceptance testing framework)
- beaker-hostgenerator – no changes required this time (GitHub - voxpupuli/beaker-hostgenerator)
- factdb – no 22.04 facts yet (GitHub - voxpupuli/facterdb: A Database of OS facts provided by Facter)
-
the new OS needs to be added to
metadata.json
of each external Puppet module we use (this depends on Puppet Agent being actually available for the OS)- (example) puppetlabs-postgresql: Add Ubuntu 22.04 support by evgeni · Pull Request #1341 · puppetlabs/puppetlabs-postgresql · GitHub
Foreman infrastructure
- builder configuration – add Ubuntu 22.04 Jammy to pbuilder by evgeni · Pull Request #1735 · theforeman/foreman-infra · GitHub
- enable package building – add Ubuntu 22.04 Jammy to nightly package building by evgeni · Pull Request #208 · theforeman/jenkins-jobs · GitHub
- enable testing in pipelines – add Ubuntu 22.04 Jammy to nightly test pipelines by evgeni · Pull Request #209 · theforeman/jenkins-jobs · GitHub
- probably need to make hacks like git.postgresql.org Git - pgapt.git/blob - jenkins/sbuild-update.sh to allow our archive to consume the packages (because of https://bugs.debian.org/892664)
Foreman Puppet modules
-
the new OS needs to be added to
metadata.json
of each of our modules (this depends on Puppet Agent being actually available for the OS)
Building packages
Once the “builder configuration” and “enable package building” steps are done, we can start building packages.
- dependencies
- foreman
Status
Given that Foreman currently does not support Ruby 3.0 and there are no Puppet packages yet, I don’t expect seeing Foreman on Ubuntu 22.04 too soon. We’ll keep this post updated with details as they arise.