Skip to content

support puppetlabs-stdlib up through version 9.x#14

Open
jackdpeterson wants to merge 22 commits into
walkamongus:masterfrom
jackdpeterson:master
Open

support puppetlabs-stdlib up through version 9.x#14
jackdpeterson wants to merge 22 commits into
walkamongus:masterfrom
jackdpeterson:master

Conversation

@jackdpeterson
Copy link
Copy Markdown
Contributor

expand range of stdlib to support up through version 9.
Add additional supported OS versions (I'm testing on ubuntu 24.04) w/ Puppet 8.

jackdpeterson and others added 22 commits July 26, 2024 13:09
expand range of stdlib to support up through version 9.
Add additional supported OS versions (I'm testing on ubuntu 24.04) w/ Puppet 8.
…f ruby 3.2 assumption. ubuntu 26.04 ships with Ruby 3.3. The workaround is to not use the default AWS installer script and just go straight to the referenced .deb or .rpm files in this module and not fuss with that junk. IDK why they made that decision -- it would've made more sense to just link the OS-dependent installers directly in docs.
…h Ruby 3.3

The codedeploy-agent .deb declares dependencies on Ruby <= 3.2, but
source analysis confirms the agent runs correctly on Ruby 3.3
(Ubuntu 26.04). Removed snap-based Ruby 3.2 workaround in favor of
using the system ruby-full package with dpkg --force-depends.

- Simplified install.pp (no version-specific branching)
- Updated tests and README with compatibility note
- Added extracted_deb/ to .gitignore
After dpkg --force-depends, apt considers the system broken because
the ruby3.2 dependency is unsatisfied. This blocks all subsequent
apt operations. apt-mark hold prevents apt from flagging the package.
Instead of using dpkg --force-depends (which breaks subsequent apt
operations), repack the upstream .deb to add ruby3.3 as an alternative
in the Depends field. This allows clean dpkg installation with no
broken dependency state.

Verified: apt install works normally after the patched package is
installed on Ruby 3.3 (Ubuntu 26.04/Debian 13).
- files/patch_codedeploy_deb.sh handles repacking with ruby3.3
- Script is idempotent: no-ops if already patched or upstream includes ruby3.3
- Puppet unless guard skips exec entirely when upstream deb has ruby3.3
- Will self-disable when AWS patches codedeploy-agent
On systems with Ruby <= 3.2, the upstream deb installs cleanly without
patching. The repack logic now only runs when the ruby fact reports
version >= 3.3.
The ruby fact reflects the puppet agent's Ruby at catalog compile time,
not the system Ruby that will be installed. Use OS release version
(Ubuntu 26.04+ ships Ruby 3.3) which is always available and reliable.
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