Giter Site home page Giter Site logo

pdksync_config's Issues

PDK Conversion Guide

PDK Templates conversion guide

This document serves as the steps required to convert voxpupuli organization to start using the pdk on current and future puppet nodules.
Please note this is an opt-in strategy as to not cause disruption with existing modules.

Step 1 (Pdk-templates):

  • Fork the pdk-templates
  • Create branch from pdk-templates/1.17 and name vp-1.17 (all future branches will follow this same naming scheme)
  • Copy and/or sync files from modulesync templates over to pdk-templates fork
  • Commit changes
  • Push changes
  • Update travis file to work with VoxPupuli standards
  • Update Gemfile to work with VoxPupuli acceptance tests, and litmus
  • Perform test run of publishing Gem
  • Have peers review pdk-templates are similar to modulesync_config templates

Future pdk-template updates will follow this workflow:

  1. Fetch the changes from puppetlabs/pdk-templates
  2. Create branch from pdk-templates/X.XX and name vp-X.XX
  3. Rebase the last named branch ie. vp-1.17 into this new branch
  4. push changes

This gives us the ability to add in our own changes, as we will likely have different opinions on which files are included in the templates by default.

Step 2: (PDKSync )

  • Create a new repo named pdksync_config
  • In the gemfile reference either the pdksync gem or the github repo
  • Create and initial pdksync.yml file, similar to how modulesync works
  • Reference the pdk-templates version we will to sync all modules too
  • Create a CI file that allows us to either constantly run pdksync or through a push button model

Step 3: Convert or Create modules with PDK at will

Since this can be done in a number of ways I have outlined all the possibilities and provided a workflow for each method

Existing Puppet Module Conversion Workflow using pdksync

  1. Remove module from modulesync configs
  2. Add module to pdksync managed_modules.yml
  3. Commit changes and CI should run through managed_modules.yml and update to use latest templates

PDK Puppet Module Conversion Workflow using pdk

  1. Remove module from modulesync configs
  2. Use pdk convert and pdk update to convert the module to pdk using either puppet or voxpupuli templates
  3. Follow New puppet module workflow

New Puppet Module Workflow using pdk

  1. New modules can be created with PDK either referencing the puppetlabs or voxpupuli pdk-templates
  2. New module will be added to pdksync managed_modules list
  3. Pdksync runs pdk update on this new module using the voxpupuli fork of pdk-templates

Notes

  • The pdk version will always have a version associated with it in the pdk-templates repo.
  • The VoxPupuli fork will pull in the latest changes to pdk-templates and merge in additional changes thereafter if required.
  • Using PDK for a module is opt-in only
  • Users cannot use modulesync and PDK
  • PDKsync gem will perform the necessary automation to keep a module updated, however the content of those changes comes from pdk-templates fork.
  • There is the fundamental difference between modulesync and pdksync. With modulesync the templates and automation are stored as a single repo. Where with pdksync the templates are separated. This separation allows pdk CLI and pdksync to utilize the same template repos and have a single source of truth.
  • PDKsync can allow a module to decide on a specific version of the pdk-templates if desired
  • PDKsync can force a specific version of pdk-templates on the module if desired.
  • A module cannot be in modulesync list and PDKSync at the same time, chaos will ensue.
  • PDK and PDKsync both use pdk update to make the changes.

https://github.com/puppetlabs/pdk-templates
https://github.com/puppetlabs/pdksync

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.