🔍 1. Identify and Analyze the Module
- Extract a module name from the
Puppetfile
. - Search for the module on Puppet Forge.
- Compare available versions and identify the latest one.
📝 2. Review Changes in the Module
- Follow the Project URL on the Forge page to the GitHub repository.
- Check recent changes under Releases or in the Changelog.
Example:
⚠️ 3. Watch for Breaking Changes
- Possible breaking changes:
- Removal of support for EOL software
- API changes
- Renamed parameters or variables
- Note: Not every breaking change will affect your setup.
- Example: Dropping EL6 support likely doesn’t concern you.
🔍 4. Evaluate Other Changes
- Linked pull requests (PRs) may offer additional insights.
- Check whether changes are understandable and whether breaking changes apply to your environment.
🌱 5. Integrate into Development Branches
- If the module is considered ready for update:
- Integrate into a feature or development branch.
🌲 6. Control Repo Branch Structure
Typically present:
development
production
- Optionally:
staging
beforeproduction
- Additionally: 0–n feature branches
🧪 7. Testing in Development Environment
- Test the updated module in a suitable environment (VM, container).
- Observe how it interacts with other modules.
Possible findings:
- Dependencies on specific module versions
- New facts writing additional data to PuppetDB
- New or modified parameters requiring Hiera data
🔄 8. Forward the Change
- Once all adjustments are complete:
- Pass the change to the next branch for further testing or rollout preparation.
🤖 9. Automation with Renovate Bot
- This process is quite detailed and time-consuming.
- With Renovate Bot, collecting and reviewing relevant updates becomes much easier.
- Renovate can be integrated into GitLab or GitHub.
- It works similarly to GitHub’s built-in Dependabot, but is more flexible and configurable.
🧰 10. Automation with VoxBox
- You can also try using the Vox Pupuli VoxBox to list all dependencies for the entire control repo.
- This doesn't work with every setup.
- If there are private modules in the Puppetfile, the person running the command must have access to them.
- Example command:
podman run -it --rm -v $PWD:/repo:Z ghcr.io/voxpupuli/voxbox:latest r10k:dependencies
- More useful information can be found in the Vox Pupuli VoxBox documentation
Top comments (0)