184.108.40.206. 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
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
name entry in the module’s
metadata.json file. The value
name key will be of the form <owner>-<module name>.
220.127.116.11.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:
- Verify the version required has an official GitHub release.
- Verify the version required has been released to PuppetForge.
- Verify the
metadata.jsonfor SIMP components that depend upon the component match the version being released.
- Verify the
Puppetfile.trackingfile of the
simp-coreproject match the version being released.
18.104.22.168.2. Build Signed RPM and Deploy to packagecloud¶
22.214.171.124.2.1. If a New RPM Needs to be Built¶
- 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
The output will be in the
dist directory of the targeted artifact
- Pass the RPM over to an authorized signing team member who will sign it using
126.96.36.199.2.2. Publish to PackageCloud¶
package_cloud push simp-project/REPO_NAME/el/OS_MAJOR_VERSION /path/to/packages