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?

1 Like

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.

1 Like

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.

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

Are there any updates on when Puppet 8 will be supported by Katello? I am about to build an entirely new environment and am currently evaluating whether to wait for Puppet 8 or just use Puppet 7.

A community member has submitted pull some pull requests to get Puppet 8 support. I’ve put them on a GH project:

We’re planning to do Foreman 3.8 installer module releases in the next few days so I’m not sure we can get it merged in time. And even then, per the schedule, it’s not planned to be available for a while. For now I’d start with Puppet 7.

isn’t this wider than foreman ?

adding foreman support, the process looks great with the work done on reusing some of the work from Vox etc.

isn’t the challenge that once Foreman supports puppet 8, that will mean Katello will need to support Puppet 8, which means that will impact RHEL Satellite support and compatibility, wouldn’t RedHat have to commit to Satellite support for Puppet 8 and EOL/update components with all it’s customers of Satellite, before Katello could use Puppet 8 ?

Well, it’s wider than foreman-installer itself. I suspect Foreman should also be updated to stop using legacy facts. And even the issues on the board aren’t complete for foreman-installer.

I’ve written a large part of that Vox work with the exact intention of using it in our our while not maintaining it all by myself. It also mean that the specifics to add Puppet 8 support didn’t have to be written by me.

Katello (4, since Pulp 3) does nothing with Puppet so I’m not sure how that’s relevant.

interesting, I thought Puppet was still a fully supported by Satellite by RHEL, so I assumed that (if that was true) then RHEL would need to continue support current versioning until EOL of current versions had been announced and end of any extended support time line had elapsed.

Katello isn’t the whole of Satellite, only a part of it. Katello is a Foreman plugin, just like https://github.com/theforeman/foreman_puppet is. And a lot of the integration (facts, reports) still lives in Foreman itself. So for Puppet 8 support Katello is mostly irrelevant.

This is offtopic, but I always describe Satellite as the combination of 3 projects (Foreman, Pulp and Candlepin) with a bunch of plugins.

1 Like