Vox Pupuli is a group of more than 100 Puppet module/tooling/documentation authors, all working together to ensure a continuing development process. We elected our first Project Management Committee with one of its goals being to include Vox Pupuli as an official project under the Software Conservancy. We do not only provide a home for every orphaned Puppet module, but also proper tooling and automation for every interested developer. Some of the most frequently used Puppet modules (zabbix, collectd, archive, extlib) are managed by us. Vox Pupuli is in the Top 10 of the most frequent Puppet Forge release groups. Have a look at our funny journey of hunting broken gems and changing upstream software! We invite everybody to participate. We will get into the details of what Vox Pupuli is, how you can interact/contribute/benefit and also we will share some funny and sad stories about all the bugs we discovered in the Puppet and Ruby ecosystem and how we migrated 80 modules to Puppet 4!
2. $ whoami
Tim 'bastelfreak' Meusel
DevOps Engineer for heg.com -> GoDaddy EMEA
Puppet Contributor since 2012
Merging stuff on Vox Pupuli since 2015
Vox Pupuli PMC member
Organizing BBQ events for Arch Linux Community
2 / 31
4. What? Maintain many many modules
VoxPupuli
@bastelsblog for @voxpupuliorg
4 / 31
5. What? Maintain many many modules
Be helpful and polite to each other
VoxPupuli
@bastelsblog for @voxpupuliorg
5 / 31
6. What? Maintain many many modules
Be helpful and polite to each other
Be open-minded to people and technology
VoxPupuli
@bastelsblog for @voxpupuliorg
6 / 31
7. What? Maintain many many modules
Be helpful and polite to each other
Be open-minded to people and technology
Provide a home for orphaned Puppet modules
VoxPupuli
@bastelsblog for @voxpupuliorg
7 / 31
8. What? Maintain many many modules
Be helpful and polite to each other
Be open-minded to people and technology
Provide a home for orphaned Puppet modules
Unite lonely module and tooling authors to a collective
VoxPupuli
@bastelsblog for @voxpupuliorg
8 / 31
9. What? Maintain many many modules
Be helpful and polite to each other
Be open-minded to people and technology
Provide a home for orphaned Puppet modules
Unite lonely module and tooling authors to a collective
Ensure continued development for our code
VoxPupuli
@bastelsblog for @voxpupuliorg
9 / 31
10. What?
Who?
Currently 107 people with merge permissions
We were 80 in november 2016
Just a few people work for Puppet Inc.
Most of the contributors participate in their free time
Normal administrators that have to deal with puppet at work
VoxPupuli
@bastelsblog for @voxpupuliorg
10 / 31
11. What?
Who?
Many git newbies
Rebasing a feature branch against upstream master is hard
Many newcomers to test frameworks
Dealing with rspec/rubocop/beaker is hard as well
VoxPupuli
@bastelsblog for @voxpupuliorg
11 / 31
12. What?
Who?
Many administrators of legacy infrastructures
Puppet3, Ruby191, Ruby2.0
November 2016: Puppet2.7, Ruby187
Do we already call Puppet4 legacy? (yes pls)
VoxPupuli
@bastelsblog for @voxpupuliorg
12 / 31
13. What?
Who?
Why?
Maintaining a module on your own is hard
Changing best practices, vacations, losing interest
Proper testing of a module requires a lot of stuff from the ruby
ecosystem
Ruby ecosystem and related tools are changing too fast for
a single person
Everything has to work on multiple Ruby/Puppet versions
Rubocop
Rubocop
VoxPupuli
@bastelsblog for @voxpupuliorg
13 / 31
14. How?
modulesync
We are managing more than 88 modules
We had 75 in november 2016
modulesync was developed by Puppet Inc, moved to Vox Pupuli
It takes a config file + templates, throws it into every modules
git repo
Works with GitHub Pull Requests
Everybody can start it
Every of our Collaborators can approve/merge it
VoxPupuli
@bastelsblog for @voxpupuliorg
14 / 31
15. How?
modulesync
travis
Free CI platform
Puppet Inc. sponsors us unlimited? concurrent travis slots
rpsec-puppet on common Puppet*Ruby versions
release modules to the forge
beaker acceptance tests
VoxPupuli
@bastelsblog for @voxpupuliorg
15 / 31
16. How?
modulesync
travis
Release task
Gem called voxpupuli-release
provides rake task to bump + tag a module
Also pushed to the forge
Upcoming: Also create a github release
VoxPupuli
@bastelsblog for @voxpupuliorg
16 / 31
19. Governance?
PMC
We elected a Project Management Committee in 2016!
PMC enforces CoC
Brings Vox Pupuli into the Software Freedom Conservancy
PMC guidelines are created by the community
https://tinyurl.com/voxpupuli-governance-md
Next election will start soonish
VoxPupuli
@bastelsblog for @voxpupuliorg
19 / 31
20. Governance?
PMC
Collaborators
Review pull requests
Explain why we don't support ruby187 anymore
New: Explain why we don't support Puppet3 anymore
Help with git
Trigger the automated release process
VoxPupuli
@bastelsblog for @voxpupuliorg
20 / 31
21. Governance?
PMC
Collaborators
O cers
Election officer
Spencer Krum (@nibalizer)
Runs the PMC election 2017
Security officer
Julien Pivotto (@roidelapluie)
Official contact for security issues, deals with CVEs
Defines our security guidelines:
https://voxpupuli.org/security/
VoxPupuli
@bastelsblog for @voxpupuliorg
21 / 31
28. DailyBusiness
BrokenStu
voxpupuli is the place to be if something is broken
puppetlabs-stdlib
puppetlabs-stdlib again
puppetlabs-apt
puppet-systemd (sorry)
VoxPupuli
28 / 31
29. DailyBusiness
BrokenStu
Quotes
'Release early - release often' - Igor Galic
'Version numbers are cheap - use them' - Igor Galic
'DevOps is all about empathy' - Rob Nelson
VoxPupuli
29 / 31
30. Summary We have great tooling and automation
We have great people
You need help with Puppet?
Let us know, we help out!
You have an orphaned module or know one?
Ping us, migrate it to us
You have domain specific knowledge?
Ruby, Python, Rspec, Beaker, $software we automate
VoxPupuli
@bastelsblog for @voxpupuliorg
30 / 31
31. Summary You want to help out?
We are always looking for new Collaborators and
Maintainer
Contact:
IRC #voxpupli on freenode
Slack: #voxpupuli on puppetcommunity.slack.com
voxpupuli@groups.io
pmc@voxpupuli.org
tim@bastelfreak.de
Thanks foryourattention!
VoxPupuli
31 / 31