Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Info

Add your comments directly to the page. Include links to any relevant research, data, or feedback.

Page Properties
label


Status
Status
colourYellow
titleIn progress
Impact

Status
colourRed
titleHIGH

Driver
Approver
ContributorsTrevor VaughanJeanne GreulichJudith JohnsonShark BruhahaLiz NemsickMichael Morrone
InformedBrandon Riden Kendall Moore, Nick MarkowskiDylan CochranSteven PritchardNick Miller,  Adam Yohrling
Due date05 April 2019
Outcome


...


Option 2.5: (refines Option 2) Provide a simp command to generate a Puppetfile that uses local git repositories

Option 3: (Includes Option 1 + Option 2) Automatically create and maintain a local Control Repository

Description

Provide a simp command for users to generate a Puppetfile to o load the current RPM-installed Puppet modules from their tagged local git repositories:

The reference Puppetfile loads a separate SIMP-specific Puppetfile.simp that can be easily replaced with the output of later simp gen_puppetfile runs:

./                   # Puppet environment directory
│ 
├── Puppetfile       # Environment's Puppetfile
| # (maintained by site admin, includes Puppetfile.simp) └── Puppetfile.simp # Puppetfile of tagged modules from local SIMP git repos
# (generated by `simp gen_puppetfile`


Info

This is currently no longer considered a viable option for SIMP 6.4.0.

It is included here to documentation the fact that we considered it.


The decision log "How to restructure the RPM installation sequence to be more r10k/Code Manager friendly" assumed that we would automatically provide a  local bare git control repository.   The intent was to provide a simple and safe experience for inexperienced Puppet administrators by automatically providing a local repository on their behalf.

However, after exploring different implementation options, it's not clear that this strategy would be simpler or safer. 

What has become clear is that most implementations are likely to add more trouble and complexity for site admins and SIMP developers than the idea is worth.

Usage
  • Initial setup by site admins:
    • Create/edit the target environment's Puppetfile to include Puppetfile.simp 
      • (This could automated as an option of simp gen_puppetfile)
    • Generate Puppetfile.simp with simp gen_puppetfile > ${environment_dir}/Puppetfile.simp
  • After the initial copy, site admins will:
    • Install new SIMP Puppet module RPMs
    • Generate new Puppetfile.simp with simp gen_puppetfile > ${environment_dir}/Puppetfile.simp
N/A
Related Issues

Jira Legacy
serverSystem JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId45e63be1-2551-37a6-b050-86a38172f71d
keySIMP-6197

N/A

Pros and cons

(plus) Less elaborate and magical than Option 2

(plus) Immediately provides a working Puppetfile that can deploy tagged modules using r10k puppetfile install

(plus) Site admins decide when/if/how to update their Puppetfiles, and in which environments

(plus) Reference Puppetfiles always deploys the current RPM-delivered versions of each module

(plus) The Puppetfiles/simp/ directory provides a simple place to drop updated SIMP Puppetfiles.

(info) This option encourages, but does not require (or provide) a git Control Repository.

(info) This option expects site admins to use r10k/Code Manager to deploy modules (if not environments)

(minus) Puppet environments (and their modules) are no longer directly updated after SIMP RPM module upgrades

(minus) Existing SIMP users that are not fluent on r10k will need documentation/support to allow them to take advantage of the Puppetfiles

(plus) Sounds convenient when described at a high level

(minus) Likely to make too many assumptions

(minus) Requires the creation and maintenance of original tooling and logic.

(minus) Nullifies the advantages of switching to community-supported deployment tools by adding a layer on top of them.

(minus) Makes control repo management complicated and brittle for both admins and SIMP development.

(minus) (Re-)confuses the separation between RPM-delivered files, SCM, control repositories, and local SIMP configurations.

(minus) Proposals so far have tended to unwittingly re-engineer similar problems to the temporarily-obsoleted module upgrade dilemma that afflicts the original design of SIMP's simp-rpm-helper  + module RPMs.

(minus) No matter what we build, it will be wrong for someone.

Estimated cost
Status
colourYELLOW
titleMEDIUM
Status
colourRed
titleINFINITE

...