Spinnaker Gardening Days Success: Building the MS Teams Notification Plugin

Nikema Prophet
The Spinnaker Community Blog
6 min readDec 17, 2020

--

Ige Adetokunbo Temitayo is a DevOps engineer at Emirates Airlines and co-founder of the newly formed Contributor Experience special interest group (SIG). Ige shared time with Rosalind Benoit and me to speak about his technical background and experience building a plugin in a Spinnaker Gardening Days hackathon.

I enjoyed learning more about him and the motivations behind his work, in his career and in open source.

Who is Ige Adetokunbo Temitayo?

Ige is a seasoned engineer passionate about business continuity, SRE and DevOps who holds a Master of Science in Business Information Technology.

His vast experience in computing cuts across the Software Development lifecycle and includes management of Enterprise Applications, Infrastructure, Databases, and Incidents. He has worked on different projects in various sectors of Information Technology in Nigeria, Mauritius and remotely with US & UK companies. During his free time, he writes articles to share his experience solving issues with the community; you can view his articles on medium.com/@igeadetokunbo

“I’m very passionate about technology…I try as much as possible to learn new things daily. I’m keen about continuous learning and continuous improvement.” -Ige Adetokunbo Temitayo

Getting Started with Gardening Days

This year, Armory launched the Spinnaker Gardening Days (SGD) hackathon program as an experiment to introduce a new wave of DevOps professionals to the Spinnaker ecosystem. Ige found out about the July Gardening Days by reading about it on his future teammate’s WhatsApp profile. Victor Odusanya, Ige’s former colleague from Nigerian FinTech company Interswitch, participated in Google Summer of Code on behalf of the CDF this year and built a plugin to implement a Drone CI Spinnaker pipeline stage.

Ige had been looking for a way to participate in the open source technology community, and since SGD offered one closely tied to his professional ambitions, he embraced it at Victor’s invitation. It took some time to fully understand how everything worked, but once Ige had attended his first workshop series, on setting up a Spinnaker development environment and building plugins, he was on track to contribute.

The supportive community environment of SGD was encouraging to Ige as a newbie open-source contributor. Along with Victor, Ige invited more colleagues, such as @Abulkay, to join the fun, and started getting to know other engineers from the Spinnaker community.

Build a Spinnaker pipeline in highly regulated bank environment — AbdulBasit Kabir (@Abulkay)

The Spinnaker Platforms SIG, which spearheaded the development of the project’s Plugin Framework this year thanks to leadership from Armory and Netflix, has worked to extend the functionality of the framework this year by adding new extension points and shepherding developers through the early access phase. Extension points offer developers straightforward interactions with the Spinnaker codebase while they extend it.

What They Built

Upon joining the hackathon, Ige and Victor didn’t have a clear idea of what to work on. Lots of exciting plugin ideas were on the table, like an extension to surface DORA metrics, integrations with Kafka and Azure blog storage, and innovation around manual judgements. After checking out some prior art in the plugin examples repo, the team decided to build an MS Teams Notifications Plugin for Spinnaker, a feature add on the wish lists of several community members.

Screenshot of GitHub Issue Add support MS Teams to Echo
Don’t forget to submit issues when you’re craving a Spinnaker integration to connect your SDLC! If you don’t have time to build it, another developer can pick it up.

Ige has experience working with MS Teams notifications in his job at Emirates Airlines, and had previously integrated it with Nagios for monitoring. This nicely complemented Victor’s Kotlin experience, and his growing familiarity with the Spinnaker plugin framework, thanks to his GSoC project mentored by Armory engineer Cameron Motevasselani, helped the team succeed.

The plugin Ige and Victor built extends the built-in notification types implemented in the NotificationAgent interface in Echo, which handles most pipeline notifications. It adds a new HTTP notification type and integrates with the MS Teams notification system, so that developers working for organizations using Spinnaker to manage their SDLCs can easily send MS Teams notifications about the status of deployments moving through pipeline stages.

Challenges

The primary challenge that Ige remembers in the July Gardening Days happens to be an excellent contribution opportunity for other aspiring contributors: documentation. “There wasn’t much good documentation at the time,” Ige recalls, but “the example that Daniel did [on the NotificationAgent] was quite interesting and easy to work on, so we followed it.”

Figuring out the way things worked in Spinnaker, interacting with the Echo service, and understanding the plugin development process all presented challenges. He and Victor worked wisely to “break everything down into different phases,” to make their hackathon entry manageable. Initially, they added the UI components to Spinnaker itself via the plugin, validating first that they could get text to show up in the appropriate dialog box.

At this point, existing extension points came in handy. After integrating everything with Spinnaker so that users can manipulate the new notification type in the UI, the next challenge was to extend the NotificationAgent to receive MS Teams notifications. After creating and testing a webhook, the team needed only to troubleshoot messaging formatting to achieve a working integration.

Get Started with Plugin Development: A Github plugin for workflow dispatches — Victor Odusanya

In collaborating with Victor, Ige recalls how helpful it was to work with a developer who had done Spinnaker plugin development before. Armory engineer Dan Peach and product manager @ryanppei were also on deck to advise. As a commercial open source company, Armory channels the hidden value in fostering relationships with developers in open source communities. The authentic friendships that come with co-hacking on projects build an excellent foundation for Armory to learn about our users. By working together, we get insight into their experiences using our platforms and solving problems.

Encapsulating all those learnings into product? That’s the gold!

Lessons on Contributor Experience

Rosalind organized Spinnaker Gardening Days, but the July event happened before I joined the community team at Armory. When I heard from Ige about his experience with the hackathon, I gained a greater understanding about his motivation for co-founding the Spinnaker Contributor Experience Special Interest Group (SIG).

A few points stick out to me about what made SGD successful from a contributor experience perspective. All quotes are from Ige.

It was an opportunity to get started with open source contributing

“I’ve always been trying to figure out, or find a way to participate in open source technology or community. I’ve never had that opportunity”

SGD is a low-stakes and fun way to meet people in the Spinnaker community, learn new skills, and contribute to open source. As developers, we are advised to contribute to open source to build our portfolios and for professional development. If there’s an open door like a hackathon event, there’s a lower barrier to entry.

The high-touch and friendliness aspects were encouraging

“…what kept me going as a new contributor back then was that you were very accommodating during these Gardening Days. You’re always reaching out to people.”

Somebody is “always available and persistent, always ready to help you when you reach out, or even if you don’t reach out, tries to reach out to you.”

It’s affirming to be welcomed in and supported when you join a new community. It helps to have “somebody to guide you when you are a newbie.” Having experienced hands on-deck and on-call gives new contributors resources to quickly get to work with what might be an unfamiliar code base.

Plugins simplify extending Spinnaker functionality

Using the plugin framework allows developers who are comfortable with Java and Gradle to build features without altering the core services. This benefits a developer or team in several ways:

  • You aren’t building from scratch, you’re using Gradle to build a very specific type of project.
  • You can work independently of Spinnaker to create the specific features you need, and push your code to a repo you maintain and share.
  • The plugin framework is easier to develop against than Spinnaker itself.

Invitation to Build with Us

Ige and his team had a positive and productive contributor experience as participants in Spinnaker Gardening Days. As co-founders of the new Spinnaker Contributor Experience SIG, Ige and I will be working to support such a great experience for all Spinnaker contributors, new and existing. We are both passionate about technology and community building. I hope this post demonstrates how much expertise and experience Ige brings to our community.

We are looking for new GSoC Spinnaker projects for next year. People who are interested should reach out in the CX sig channel: https://spinnakerteam.slack.com/archives/C01BL8MCLA2

Interested in partnering with Armory on building a plugin? Read more, and reach out to our Plugin Product team!

--

--

Mom, founder of PopSchools, Inc., artist, developer. Neurodivergent and socially awkward. I’m doing my best.