7.3.2.3. 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.

Note

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.

Important

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.

Note

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>.

7.3.2.3.1. 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.

7.3.2.3.2. Build Signed RPM and Deploy to SIMP Download Server

7.3.2.3.2.1. 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]

Note

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

7.3.2.3.2.2. Push to SIMP Download Server

Currently the authorized signing team member that signs the RPM will use scp to push the file to the proper folder on the SIMP Download Server. The file will then be accessible by following the appropriate path at https://download.simp-project.com.