Puppet 8 support

Hello.
I couldn’t find any information about the plans for Puppet 8 support. Is adding support for Puppet agent/server/PuppetDB 8 on the roadmap. If it is, which Foreman release is targeting to include it?

I think there is no roadmap for this as it requires all dependencies to be updated for compatibility first.

But when you look at the puppet module in the github organisation of Foreman, many already got a commit to lift the boundaries to be allow Puppet 8 and commits to ensure compatibility with new versions of the dependencies.

An the other end Puppet 6 support was dropped in the installer, what is also not mentioned in the nightly documentation.

So I would say it is an ongoing process and I would expect it to hit already the next version if nothing is blocking.

Foreman documentation states that nightly only supports configuring hosts using Puppet 7: Supported Puppet Versions And System Requirements.

Puppet 8 bundles Ruby 3.2. It also has some changes around legacy facts. Supporting both Ruby 2.5 and Ruby 3.2 can be challenging so we have started to drop Puppet 6 support (after deprecating it in Foreman 3.6).

Within Vox Pupuli there is work ongoing to include Puppet 8 support in Puppet modules. In particular the CI bits, which we reuse. I don’t know how large the impact will be, but some modifications must be made in our modules to support Ruby 3.2. Given we’re releasing Puppet modules for Foreman 3.7 this week it’s unlikely we’ll have Puppet 8 support for 3.7. Mostly due to a lack of time.

2 Likes

Thanks everyone for the information. I’m looking forward to testing Foreman and Puppet 8 once the ball gets rolling.

For those interesting: we use the tooling maintained in Vox Pupuli. A while back I did a significant update of that (by writing GitHub - voxpupuli/gha-puppet: Reusable workflows to run Puppet tests within GitHub Actions) and so far it’s worked very well. Tim has just posted an update on the effort to support Puppet 8 in the tooling:

https://groups.io/g/voxpupuli/message/455

For Foreman we’ll follow a similar step plan (except we don’t have to reinvent the tooling). We’ve already dropped Puppet 6 and EOL operating systems, so the next step would be a modulesync update. That means matching the changes that went into 6.0.0 to foreman-installer-modulesync and then updating our modules.

Then there should be a batch of PRs to add Puppet 8 to metadata.json and seeing what fails on those.