a practical guide to modules - puppetconf 2014

17
2014 Presented by A Practical Guide to Magic Modules Morgan Haskel Module Engineer | Puppet Labs @KnittyNerd Lauren Rother Technical Writer | Puppet Labs @GrandmaHenri

Upload: puppet-labs

Post on 28-Nov-2014

461 views

Category:

Technology


1 download

DESCRIPTION

A Practical Guide to Modules - Lauren Rother, Puppet Labs & Morgan Haskel, Puppet Labs

TRANSCRIPT

Page 1: A Practical Guide to Modules - PuppetConf 2014

2014

Presented by

A Practical Guide to Magic ModulesMorgan Haskel Module Engineer | Puppet Labs @KnittyNerd

Lauren Rother Technical Writer | Puppet Labs @GrandmaHenri

Page 2: A Practical Guide to Modules - PuppetConf 2014

Presented by

Clarifications

Intermediate level talk

Internal setup vs community modules

Page 3: A Practical Guide to Modules - PuppetConf 2014

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?

Page 4: A Practical Guide to Modules - PuppetConf 2014

Presented by

Planning for TomcatResearch

RTFM

Experiment

Automate

Page 5: A Practical Guide to Modules - PuppetConf 2014

Presented by

One No Module to Rule Them All

Each module needs to manage only one thing.

Everything else belongs in profiles!

Page 6: A Practical Guide to Modules - PuppetConf 2014

Presented by

Transfiguring Your Module

Classes

Defined Types

Parameters

Page 7: A Practical Guide to Modules - PuppetConf 2014

Presented by

Classes and Defined Types

Page 8: A Practical Guide to Modules - PuppetConf 2014

Presented by

Parameterize All The Things!

Page 9: A Practical Guide to Modules - PuppetConf 2014

Presented by

Moar Advanced Topics

Page 10: A Practical Guide to Modules - PuppetConf 2014

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.

Page 11: A Practical Guide to Modules - PuppetConf 2014

Presented by

McGonagall’s Guide to Style

Being a good community member means following your guides.

Page 12: A Practical Guide to Modules - PuppetConf 2014

Presented by

Use the README Template!

https://docs.puppetlabs.com/puppet/latest/reference/modules_documentation.html

Page 13: A Practical Guide to Modules - PuppetConf 2014

Presented by

You Shall Not Pass (Lint)Whitespace, alignment, and formatting, oh my!

Inheritance

Namespacing

Avoid selectors

Page 14: A Practical Guide to Modules - PuppetConf 2014

Presented by

SemVer!X.Y.Z

Increment X for backwards incompatible changes

Increment Y for new features

Increment Z for bug fixes

Page 15: A Practical Guide to Modules - PuppetConf 2014

Presented by

Pull Requests

Follow the style guide!

Update tests!

Update documentation!

Page 16: A Practical Guide to Modules - PuppetConf 2014

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

Page 17: A Practical Guide to Modules - PuppetConf 2014

Presented by

Questions?