a practical guide to modules - puppetconf 2014
DESCRIPTION
A Practical Guide to Modules - Lauren Rother, Puppet Labs & Morgan Haskel, Puppet LabsTRANSCRIPT
2014
Presented by
A Practical Guide to Magic ModulesMorgan Haskel Module Engineer | Puppet Labs @KnittyNerd
Lauren Rother Technical Writer | Puppet Labs @GrandmaHenri
Presented by
Clarifications
Intermediate level talk
Internal setup vs community modules
Presented by
Getting Your Wands in OrderWhat task do you need your module to accomplish?
How will your module accomplish this task?
How does this fit in with the broader Puppet ecosystem?
Presented by
Planning for TomcatResearch
RTFM
Experiment
Automate
Presented by
One No Module to Rule Them All
Each module needs to manage only one thing.
Everything else belongs in profiles!
Presented by
Transfiguring Your Module
Classes
Defined Types
Parameters
Presented by
Classes and Defined Types
Presented by
Parameterize All The Things!
Presented by
Moar Advanced Topics
Presented by
Will Someone End Up a Lizard?Add tests to ensure module functionality.
Unit tests for most things.
Acceptance tests for high-level functionality.
Presented by
McGonagall’s Guide to Style
Being a good community member means following your guides.
Presented by
Use the README Template!
https://docs.puppetlabs.com/puppet/latest/reference/modules_documentation.html
Presented by
You Shall Not Pass (Lint)Whitespace, alignment, and formatting, oh my!
Inheritance
Namespacing
Avoid selectors
Presented by
SemVer!X.Y.Z
Increment X for backwards incompatible changes
Increment Y for new features
Increment Z for bug fixes
Presented by
Pull Requests
Follow the style guide!
Update tests!
Update documentation!
Presented by
Module TriageThursdays from 1700-1800 UTC
Link will be posted in #puppet-dev
Agenda driven by community requests
Ping: _morgan, Hunner, crinkle, or cyberious on #puppet-dev
Presented by
Questions?