Skip to content

(MODULES-11724) Add Puppet 9 support - #126

Open
imaqsood wants to merge 1 commit into
mainfrom
MODULES-11724
Open

(MODULES-11724) Add Puppet 9 support#126
imaqsood wants to merge 1 commit into
mainfrom
MODULES-11724

Conversation

@imaqsood

Copy link
Copy Markdown

Summary

Adds Puppet 9 support to puppetlabs-node_encrypt, mirroring the approach used in puppetlabs-motd / inifile / apache (MODULES-11700).

metadata.json

  • Widen the puppet requirement from >= 8.0.0 < 9.0.0 to >= 8.0.0 < 10.0.0.
  • Prune supported OSes to Puppet 9-capable platforms:
    • Removed entirely: CentOS, OracleLinux, Scientific.
    • Dropped releases: RedHat 7, SLES 12, Debian 10, Ubuntu 18.04, Windows 2012 and 2012 R2.
    • Added: RedHat 10, Debian 13.
    • Kept: Solaris 11/12, AIX 7.1/7.2, Rocky 8, AlmaLinux 8, remaining Windows/Ubuntu releases.
  • Final list: RedHat 8/9/10, SLES 15, Debian 11/12/13, Ubuntu 20.04/22.04/24.04, Solaris 11/12, Windows 2016/2019/2022/10, AIX 7.1/7.2, Rocky 8, AlmaLinux 8.

Gemfile (variant A — has gems['bolt'], gem source via gemsource_puppetcore)

  • Add a puppet9_stream flag that detects the Puppet 9 (8.99.x) stream from PUPPET_GEM_VERSION.
  • Gate voxpupuli-puppet-lint-plugins to ~> 7.0 on the Puppet 9 stream (~> 5.0 otherwise), since puppet-lint 4.x crashes on Ruby 3.4+.
  • Resolve Puppet 9 prerelease puppet/facter gems from PUPPET_GEM_SOURCE (falling back to puppetcore when empty) using a prerelease-aware range; gems['bolt'] left in place.

Lint / spec gating

  • Disable strict_indent in the Rakefile (its expected indentation differs incompatibly between the 7/8 and 9 lint lanes).

ci.yml

  • Point the Spec workflow at puppetlabs/cat-github-actions/.github/workflows/module_ci.yml@MODULES-11700-puppet9-gem-source.
  • Install libcurl4-openssl-dev (patron native extension needs libcurl headers) and inherit secrets.
  • No Acceptance job exists in this module's ci.yml, so no acceptance flag change was needed.

Temporary branch dependencies

  • puppetlabs_spec_helper → git branch MODULES-11700-allow-puppet-lint-5 (allows puppet-lint 5.x).
  • puppet_litmus → git branch MODULES-11700-collection-platform-exclude (adds --collection-platform-exclude).
  • cat-github-actions@MODULES-11700-puppet9-gem-source.

All three are TODO-marked to revert to released gems once the upstream support ships.

Local verification

  • OLD lane (Puppet 8, Ruby 3.1.1): rake lint exit 0; unit specs 28 examples, 0 failures.
  • NEW lane (Puppet 9 lint tooling, Ruby 3.4.6, forced 5.x path): rake lint exit 0.

https://perforce.atlassian.net/browse/MODULES-11724

@imaqsood
imaqsood requested a review from a team as a code owner July 22, 2026 10:33
@imaqsood
imaqsood force-pushed the MODULES-11724 branch 2 times, most recently from 3fbcedc to eef1b7a Compare August 10, 2026 15:21
Widen the puppet requirement to < 10.0.0 and refresh supported OSes
(drop EOL/no-agent platforms; add RedHat 10 and Debian 13 where applicable).

Gate the newer lint stack (puppet-lint 5.x) behind the Puppet 9 (8.99.x)
stream since puppet-lint 4.x crashes on Ruby 3.4+, resolve Puppet 9
prerelease gems from PUPPET_GEM_SOURCE, and disable strict_indent (its
expected indentation differs incompatibly between the 7/8 and 9 lint lanes).

Point the Spec workflow at the Puppet 9 gem-source branch (installing
libcurl headers for the patron native extension) and exclude ubuntu-20.04
from the Puppet 9 acceptance lane only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant