class: center, middle, inverse # Vox Pupuli - Empowering the Puppet Community --- background-image: url(blue-skies.jpg) background-size: cover ## $ whoami * Tim 'bastelfreak' Meusel * Systems Engineer for heg.com * Puppet Contributor since 2012 * Merging stuff on Vox Pupuli since 2015 * Vox Pupuli PMC member * Archlinux(.de) Community Manager --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## What is Vox Pupuli? ] .right-column[ * Vox Pupuli * VoxPupuli * Voxpupuli * puppet-community -> Vox Pupuli ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## What is Vox Pupuli (and why is it awesome)? ] .right-column[ ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## What is Vox Pupuli (and why is it awesome)? ] .right-column[ * Maintain many many modules ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## What is Vox Pupuli (and why is it awesome)? ] .right-column[ * Maintain many many modules * Be helpful and excellent to each other ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## What is Vox Pupuli (and why is it awesome)? ] .right-column[ * Maintain many many modules * Be helpful and excellent to each other * Be open-minded to people and technology ] .footnote[@bastelsblog for @voxpupuliorg] --- ## Vox Pupuli  .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## What is Vox Pupuli (and why is it awesome)? ] .right-column[ * Provide a home for orphaned Puppet modules * Unite lonely module and tooling authors to a collective * Ensure continued development for our code ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## Who is Vox Pupuli? ] .right-column[ * Currently 94 people with merge permissions * We were 80 in november 2016 * 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 ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## Who is Vox Pupuli? ] .right-column[ * Many git newbies * Many administrators of legacy infrastructures * Puppet2.7, Ruby187 * Now also legacy: Puppet3, Ruby191, Ruby2.0 ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## Why is Vox Pupuli? ] .right-column[ * 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 ] .footnote[@bastelsblog for @voxpupuliorg] --- ## Vox Pupuli .left-column[ ## How? ] .right-column[  ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## How? ### modulesync ] .right-column[ * We are managing more than 81 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 * Everybody can start it ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## How? ### modulesync ### travis ] .right-column[  * Free platform * rpsec-puppet common Puppet*Ruby versions * release modules to the forge * 10-60min per module, doesn't scale :sadface: ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## How? ### modulesync ### travis ### Release task ] .right-column[ * Gem called voxpupuli-release * provides rake task to bump + tag a module * Also pushed to the forge ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## How? ### modulesync ### travis ### Release task ### beaker ] .right-column[ * creates a virtual machine or docker instance * starts a complete OS in it * executes puppet in it * checks if everything looks as expected ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## How? ### modulesync ### travis ### Release task ### beaker ] .right-column[ Can be executed: * on your notebook before you contribute a patch (same for rspec) * with docker on travis * on our own infra with docker or QEMU/Virtualbox ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## How? ### modulesync ### travis ### Release task ### beaker ### Tooling ] .right-column[ * https://github.com/underscorgan/community_management * Open Issues and PRs sorted in different ways * https://voxpupuli-open-prs.herokuapp.com/ * Also open PRs * https://github.com/voxpupuli/thevoxfox * IRC bot, allows us to merge stuff + trigger modulesync (soon, maybe) ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## How? ### modulesync ### travis ### Release task ### beaker ### Tooling ] .right-column[ * http://voxpupuli.bastelfreak.de/ * IRC stats * https://github.com/bastelfreak/contributorstats * count contributions ] .footnote[@bastelsblog for @voxpupuliorg] --- ## Vox Pupuli .left-column[ ## How? ### modulesync ### travis ### Release task ### beaker ### Tooling ] .right-column[  ] .footnote[@bastelsblog for @voxpupuliorg] --- ## Vox Pupuli .left-column[ ## Governance? ] .right-column[  ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## Governance? ###PMC ] .right-column[ * 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 ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## Governance? ### PMC ### Collaborators ] .right-column[ * 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 ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## Governance? ### PMC ### Collaborators ### Officers ] .right-column[ * Election officer for managing the yearly PMC election * Security officer * Julien Pivotto (@roidelapluie) * Official contact for security issues, deals with CVEs * Defines our security guidelines: https://voxpupuli.org/security/ ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## Summary ] .right-column[ * 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 ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## Summary ] .right-column[ * 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 for your attention! ]