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:
- Fetch the changes from puppetlabs/pdk-templates
- Create branch from pdk-templates/X.XX and name vp-X.XX
- Rebase the last named branch ie. vp-1.17 into this new branch
- 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
- Remove module from modulesync configs
- Add module to pdksync managed_modules.yml
- Commit changes and CI should run through managed_modules.yml and update to use latest templates
PDK Puppet Module Conversion Workflow using pdk
- Remove module from modulesync configs
- Use pdk convert and pdk update to convert the module to pdk using either puppet or voxpupuli templates
- Follow New puppet module workflow
New Puppet Module Workflow using pdk
- New modules can be created with PDK either referencing the puppetlabs or voxpupuli pdk-templates
- New module will be added to pdksync managed_modules list
- 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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.