Building OSS community culture online, Part 2: July Spinnaker Gardening Days

Rosalind Benoit
The Spinnaker Community Blog
8 min readJul 27, 2020

--

Gardeners [making it fun | working hard] to learn a trick from magician Robert Strong at happy hour.

We have open source software collaboration on the brain as another Spinnaker Gardening Days wrapped up last Thursday. July’s weeklong hackathon had an awesome showing of new and veteran community members, despite the peak of summer in the northern hemisphere and tumultuous socioeconomic times worldwide. Participants from around the globe showed up to take their next steps as contributors, leverage a compute sponsorship from AWS, and prove the promise and resilience of Spinnaker innovation.

Winners Among Winners

While I might argue that ALL participants are winners (and indeed, you’ll all receive a Gardening Days care package in the mail eventually, so be patient) we had some exceptional ones. Presenting our July results:

Individual Challenge

Our Simple Google Sheets + Big Query contribution tracking doc for July Gardening Days, go.armory.io/contributors

Our list of contributors grew by more than 2.5x from April when we extended the hack period to a week and provided a managed development environment via AWS. Many attendees, including our top two contributors, Chini (@chinikins) and Stephanie (@stephly07), entered the event excited to contribute significantly to their first open source project. Both will soon have a coveted crystal-growing hedgehog (among other prizes) to show for it : )

The individual challenge winner, Chini Mukhopadhyay, set her sights on the Spin CLI, adding functionality to its project feature and identifying needed maintenance and extensibility. A part of the Spinnaker team at Cloudera, Chini also distinguished herself by answering questions on Spinnaker Slack, fielding PRs and help requests from other Gardening participants, and reaching out to SIGs to engage and provide feedback on her experience using Spinnaker in production. As part of her ongoing work with the project, she has already begun climbing the contributor role ladder. The Spinnaker community welcomes this hackathon superstar, and we can’t wait to collaborate with her further!

Team Challenges

In addition to competing via the point system for individual rewards in a tiered prizing scheme, teams of individuals were also awarded prizes for their work.

Watch the project demos and closing ceremony in this live recording from the Spinnaker YouTube Channel

Plugins Challenge

  • Winner: MS Teams Notifications Plugin Team — on this team, Ige Adetokunbo Temitayo and Victor Odusanya worked with Armory engineer Dan Peach to develop a plugin which adds Micsosoft Teams Notifications as a notification option in the pipeline stage configuration dialog.
  • Runner-up: HashiCorp Nomad Plugin Team — on this team, Chris Baker of HashiCorp worked with Armory engineers to expand the Nomad plugin to include custom stages that integrate support for deploying workloads to Nomad clusters into Orca. This project is still in progress and received honorable mention.

Automate Your SDLC Challenge

  • Winner: Team Autobots — on this team, AbdulBasit Kabir and Christos Arvanitis worked to create automation for an end to end SDLC example pipeline. Using Kubernetes, they prepared a quickstart project to take developers from code commit, through CI, to production using a combination of Jenkins, Spinnaker, and Prometheus, showcasing canary deployments.
  • Runner-up: Team Deuces Wild— on this team, DeWitt Gibson put together a polished article for LinkedIn that we’ll soon cross-post to this blog, and that deserves an honorable mention. He traces Spinnaker’s “why” and origins story at Netflix through to today, when operators can leverage the new Splunk integration with Spinnaker.

SIG Challenge

Retrofit 500 Challenge

  • Winner: Team Josephine Garis — on this team, Chini Mukhopadhyay, Abhilash Gnan, and Karl Skewes worked on adding the ability to create, delete, and manage projects and their pipelines in Spinnaker programmatically through the Spin CLI. They also performed and identified some needed cleanup in the Spin CLI code and UI.

Giant thanks for all those those who reached out to collaborate with fellow contributors, and took the time to compete. We can’t wait to see you around the community, at our SIG meetings and events, and on GitHub!

Development Environments: April Showers, July Flowers

After the April event, TOC member Rob Zeinert recognized that the setup of a Spinnaker development environment represents a significant blocker to many engineers who want to improve and extend Spinnaker:

Zeinert’s April message about development environments in #gardening-general

Resources access, time constraints, and lack of knowledge of Spinnaker’s operating processes and specs can all get in the way of an effort to upstream an extension or confront a bug. And indeed, we identified this as the main reason that April’s Gardening Days added only a few new contributors to the Spinnaker org.

We have set out to solve that blocker, not only for our Gardening attendees, but for the present and future Spinnaker community. The Plugin framework has greatly improved Spinnaker’s extensibility, and the ease in plugin development and lifecycle management has enticed HashiCorp and Pulumi to build plugins, along with many organizations that use Spinnaker in their SDLCs. Still, we find further value in creating a standard environment for those contributing to the core, and hackathons highlight the appeal of a “just-add-water” experience for developers eager to start contributing.

Enter Amazon Web Services (AWS)!

Screenshot of the New Spinnaker Contributors Workshop, which walked new contributors through setting up a Spinnaker development environment with telepresence and AWS’ EKS.

As we looked at how we could offer more advanced training for contributors at the 2.0 Gardening Days, the environment problem again arose. Luckily, Armory engineer Fernando Freire got inspired. Thanks to our compute sponsor AWS, he was able to put together Terraform automation to generate a completely free managed Spinnaker development environment in EKS for each training participant. To use the environment, trainees only needed to quickly install Spinnaker using the new Operator, get Telepresence up and running to connect locally-running service(s) to the EKS cluster, and they were off and running.

As we realized the impact this short-cut could have on the participant experience, we decided to try offering it to all attendees, who could follow the documentation and training video in their own namespace. Fernando and some interested gardeners have renewed the conversation in #dev-toolkit on Spinnaker Slack. In collaboration with interested gardeners, we will soon share an open-source version of the automation Fernando built for use in future Gardening events, and that we hope can be adapted to advance the quest for a standard environment!

Iterating on Results Collection

With a managed development environment in place, we were able to invite 11 new contributors to repositories in the Spinnaker organization via Gardening Days, along with and even more new contributors in our spinnaker-hackathon organization, which houses plugins and other hackathon projects as well as event docs. Collectively, these contributors generated 284 eligible GitHub events (PRs, PR comments, Issues, Issue comments, Pushes, Commits, and Repo creation events), which we detected via this query —

SELECT
actor.login,
COUNT(*) as cnt,
FROM
`githubarchive.month.*`
WHERE
(repo.name LIKE 'spinnaker/%' OR repo.name LIKE 'spinnaker-hackathon/%' OR repo.name LIKE 'ExitoLab/spinnaker-ms-teams-notification-plugin' OR repo.name LIKE 'ExitoLab/examplePluginRepository' OR repo.name LIKE 'carvanitis/spingarden-training')
AND created_at >= '2020-07-16 00:00:00'
AND created_at < '2020-07-23 19:00:00'
AND _TABLE_SUFFIX > '2020'
AND type IN (
'IssuesEvent',
'IssueCommentEvent',
'PullRequestReviewCommentEvent',
'PullRequestEvent',
'PushEvent',
'CreateEvent',
'CommitCommentEvent')
GROUP BY
actor.login
ORDER BY cnt DESC
LIMIT
180

against a dataset of unique actions in GitHub. Note that in this event, we allowed contributors to request that we “count” actions in repositories external to spinnaker-hackathon where Spinnaker projects were underway.

This was a lower-touch method than the GraphQL approach from April Gardening Days, but it had its own drawbacks. First, a live leaderboard is preferable for motivating participants — it’s hard to wait 24 hours or more to see your work reflected. To make that possible, we’ll need to have an endpoint that can pull the above data directly from GitHub APIs rather than waiting for it to aggregate in a dataset. Another shortcoming is that the tabulation of non-GitHub activities is still very manual and difficult to track.

So for the next Gardening Days, we’re excited to announce two more planned iterations:

  • Proposed Contributor Experience SIG co-lead Ige Adetokunbo Temitayo has created a design doc as the first work on a contributions tracking app for Spinnaker and other CDF projects. This app will focus on highlighting individual contributions as part of our professional portfolios (as opposed to DevStats, which excels at visualizing contribution stats in aggregate with the time specificity that Grafana offers). This application will include a live leaderboard view that we can configure for tracking during events like Gardening Days, and will also help us to motivate and reward contributors year-round.
  • We will also introduce self-service Slack methods for enabling participants to post non-GitHub contributions, tag those posts with specific emoji, and see a total individual count reflected in a Slack channel and/or on the leaderboard application, for easier and more transparent tracking.

Next Time Around: See You At Spinnaker Summit!

Watch Robert Strong shockingly awesome Zoom magic routine, and a conversation with Isaac Mosquera about his new role on the Spinnaker Steering Committee. Look for Robert again at the Summit!

As soon as I saw the incremental success of our 2.0 improvements, I became fixated on how incredible our 3.0 Gardening Days can be, given this momentum.

:satisfied: *

Next time around, Gardening Days will become part of Spinnaker Summit, the conference that has brought the Spinnaker community together in increasing numbers in September/October for the last three years. The Spinnaker Summit SIG has already stressed the importance of adding both a “Contributor Days” experience, and more user-generated community content, to the Summit. Gardening Days has provided a perfect blueprint for this experience, and we will combine our learnings from it, as well as new ideas borrowed from Kubernetes and other open source projects, to make it even richer as part of our virtual Spinnaker Summit.

So look out for more opportunities to connect, discuss projects and roadmaps, receive guidance, and be recognized in October. July Gardening participants loved the longer hack period, and several requested that more than one weekend be included next time to allow for more off-duty hacking. With that in mind, while we hammer out the details, expect for October Gardening Days to begin on or around October 15th, 2020!

If you haven’t yet submitted your Spinnaker Summit talk, you still have until July 31st. Submit today, and we’ll see you there. Want to get more involved in planning Gardening and Contributor Days, and the Contributor Experience work we’re starting? Ping @dnilasor in #gardening-general and let’s chat.
:sparkling_heart: *

*Anyone else follow the documentation and standard method to include emoji in Medium post and it just…doesn’t…work? And you feel like a loser? Yeah, that’s me. Please advise, I need my emoji, :wink:

--

--

Director of Community at Armory. Ops ‘n webapps. The only 1 in the world waking up every morning with the thought, “How can I make Spinnaker inevitable today?”