Skip to content

(MODULES-11718) Add puppet 9 support in puppetlabs-docker - #1065

Merged
imaqsood merged 2 commits into
mainfrom
MODULES-11718
Sep 23, 2026
Merged

imaqsood merged 2 commits into
mainfrom
MODULES-11718

Conversation

@imaqsood

Copy link
Copy Markdown
Contributor
  1. ci, nightly & mend update for puppet 9 support
  2. Gemfile udpate for new gem compatible with puppet 9
  3. rakefile and metadata change for puppet 9

Checklist

  • 🟢 Spec tests.
  • 🟢 Acceptance tests.
  • Manually verified. (For example puppet apply)

@imaqsood
imaqsood requested a review from a team as a code owner August 25, 2026 06:57
@imaqsood
imaqsood force-pushed the MODULES-11718 branch 2 times, most recently from 76fe34f to 2e593d9 Compare August 25, 2026 07:39
@Magisus

Magisus commented Sep 8, 2026

Copy link
Copy Markdown

Interested in getting this in, as part of CD4PE support for Puppet 9. Our cd4peadm module, used to install and manage the app, depends on puppetlabs-docker.

imaqsood and others added 2 commits September 16, 2026 15:17
  1) ci, nightly & mend update for puppet 9 support
  2) Gemfile udpate for new gem compatible with puppet 9
  3) rakefile and metadata change for puppet 9

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
voxpupuli-puppet-lint-plugins 7.0, needed for the Puppet 9 lane, bundles
exec_idempotency and params_not_optional_with_undef, which 5.0 never
shipped. With fail_on_warnings = true already set, their six warnings fail
`rake lint` outright and short-circuit metadata_lint, check:* and rubocop.

All four findings are false positives against deliberate code:

  - image.pp:153      exec is `~>`-chained off a notify, so it only fires
                      on refresh; an `unless` guard would be dead code.
  - services.pp:168   `docker service update` and `docker service scale`
  - services.pp:187   are non-idempotent by design, guarded by $update /
                      $scale.
  - run.pp:209        `Variant[String,Array[String[1],1],Undef] $net =
                      undef` is equivalent to Optional[Variant[...]];
                      rewriting it risks shifting type-checking for
                      consumers of $net.

Disabling keeps this PR scoped to Puppet 9 enablement and follows the
existing disable_strict_indent precedent directly above, which was added
for the same class of lane-dependent plugin behaviour.

Co-Authored-By: Claude <noreply@anthropic.com>
@jst-cyr

jst-cyr commented Sep 21, 2026

Copy link
Copy Markdown
Member

@imaqsood : Are there any other steps needed here to move this forward?

@imaqsood

Copy link
Copy Markdown
Contributor Author

CI failures are pre-existing infra, not this PR

All 6 red jobs fail before any module code runs — 5 in Provision environment, 1 in Install Puppet agent. No docker manifest, task or spec is ever evaluated. The same failures are red on main in last night's nightly, run 35803489415.

1. Dead GCE image family alias (5 jobs) — CentOS-8 (pc8 + pc9), Ubuntu-20.04 (pc8), Debian-11 (pc8 + pc9):

provisioning of centos-stream-8 failed.
  {"kind"=>"provision_service/service_error", "code"=>"500",
   "body"=>"<h1>Internal Server Error</h1>"}

Once a distro goes EOL, Google marks every image in its family DEPRECATED, and GCE family lookup only returns non-deprecated members — so the alias 404s and the provision service returns a bare 500:

$ gcloud compute images describe-from-family debian-11 --project=debian-cloud
ERROR: The resource 'projects/debian-cloud/global/images/family/debian-11' was not found

Same for centos-stream-8 and ubuntu-2004-lts. Not an outage — the platforms that pass in this run (centos-stream-9, ubuntu-2204-lts, windows-2019) all resolve to current images. CentOS-7 passes only because project ia-content carries a hand-copied EOL rescue image for it; there is none for these three.

2. Debian 10 apt mirrors archived (1 job) — provisions fine, then fails agent install with exit 100:

Err:6 http://deb.debian.org/debian buster Release  404  Not Found

Buster has moved to archive.debian.org. Puppet's own repo installed fine from artifactory.

Follow-up tracked under MODULES-11955: metadata.json still advertises CentOS 8, Ubuntu 20.04, Debian 10 and Debian 11 — all EOL, three unprovisionable. Realigning the support matrix is a separate change.

@imaqsood
imaqsood merged commit acb558a into main Sep 23, 2026
19 of 25 checks passed
@imaqsood
imaqsood deleted the MODULES-11718 branch September 23, 2026 05:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants