Other Puppet Module Release Procedures

This section will describe the release procedures for Puppet module projects for which SIMP is not the owner. In these procedures, the SIMP Team will release RPMs of these projects, using SIMP forks to which no SIMP modifications have been made. The purpose of these forks is simply to retain a backup copy of the official repositories in the case that the upstream repositories are compromised or taken down unexpectedly.


We highly recommend that you keep copies of all external repositories as a clone in your internal systems if you are deploying via r10k or Code Manager.


If the owner has made unreleased modifications to the project that are essential to SIMP OR the SIMP Team has an outstanding pull request for the project with essential changes, the SIMP Team must take ownership of this version of the Puppet module to release it. This is the only way for SIMP to release the modified version to PuppetForge.


You can identify whether a Puppet module is owned by SIMP, by examining the outer-most name entry in the module’s metadata.json file. The value for the name key will be of the form <owner>-<module name>. Pre-Release Checklist

For each project, the verification required is to ensure the version desired has already been released to GitHub and PuppetForge by the project owner and has been used for testing SIMP components in unit (rspec), acceptance (beaker), and SIMP ISO validation (packer) tests:

  1. Verify the version required has an official GitHub release.
  2. Verify the version required has been released to PuppetForge.
  3. Verify the .fixtures.yml and metadata.json for SIMP components that depend upon the component match the version being released.
  4. Verify the Puppetfile.tracking file of the simp-core project match the version being released. Build Signed RPM and Deploy to packagecloud If a New RPM Needs to be Built

  1. Build the RPM for the component that you wish to publish
git clone simp-core
git checkout master # or an appropriate branch
bundle update
bundle exec rake pkg:single[MODULE_NAME or PATH]


If, for some reason, the above does not work, you can go into the target component and run rake pkg:rpm

The output will be in the dist directory of the targeted artifact

  1. Pass the RPM over to an authorized signing team member who will sign it using rpm --resign Publish to PackageCloud

  • package_cloud push simp-project/REPO_NAME/el/OS_MAJOR_VERSION /path/to/packages