Spinnaker Plugin Framework: A Major Milestone

Ryan Pei
The Spinnaker Community Blog
3 min readDec 17, 2020

--

Yesterday we announced the general availability of the Spinnaker plugin framework. This marks a notable milestone in the history of the Spinnaker project. Spinnaker is now widely recognized as the best-in-class open-source tool for continuous delivery at-scale, and has pretty much become synonymous with cloud-native enterprise app deployments. Now, as a centerpiece in many team’s SDLCs, there’s growing demand for Spinnaker to integrate with a wide range of adjacent tools and platforms, and to enable more “customize” modes to create a better fit for any team’s specific requirements. Our world of apps, infrastructure, and everything in between has only grown more diverse and has become a hotbed of innovation. While Spinnaker was already fairly extensible because of its multi-cloud functionality and Spring microservice architecture, to ensure Spinnaker’s continued success, teams from Armory and Netflix came together to deliver this plugin framework.

And so here we are, and what a ride it’s been! Just amongst Armory’s customers alone, we’re now averaging over 150 unique plugin downloads a month!

Major props to Rob Zienert at Netflix, Cameron Motevasselani at Armory, and many others who made this all possible. We’ll also give a shout-out to some of the most notable pioneers in our community who were among the first to join us in creating plugins:

  • AWS partnered with Armory to improve the experience of deploying workloads to AWS Lambda.
Webinar by Armory/AWS on Spinnaker plugins for AWS Lambda
  • MayaData created custom stages for LitmusChaos, to enable chaos experimentation using the open-source LitmusChaos service.
Webinar by MayaData about chaos experiment stages in Spinnaker using LitmusChaos
  • Pulumi plugin to enable deploying infra resources as a custom stage
Webinar by Pulumi introducing their Spinnaker plugin

At Armory we’ve also gained tremendous value from the Spinnaker plugin framework ourselves, having released both commercial and open-source plugins that are now much beloved, such as the Policy Engine plugin (commercial) and the Observability plugin (open-source).

Demo of one of Armory’s most popular commercial plugins for Policy Engine

Wow! So how do I get started building or using my own Plugin?

Take a look at our docs; you can also check out this video tutorial on building a plugin using the plugin framework.

Most plugins end up in private or public repos owned by the team who developed them, but some end up in the community’s own plugin repo.

Or if you’re interested in partnering with folks at Armory on building a plugin, you’re also welcome to reach out to us.

What’s next for the Plugin Framework?

Currently Spinnaker 1.20.6 and 1.21+ support plugins via the Plugin Framework, with both server-side and frontend components. In the future, there’s potential for even more extension options, beyond plugins. For example, there’s discussion now about “remote service” extensions which would involve Spinnaker services like Orca simply delegating execution tasks out to your own services, which is nifty because then you may not have to code any Java or Kotlin — and yes, all you Golang geeks reading this, this one’s for you ;). We’re also thinking about how data sets in Spinnaker could be re-organized to make metrics and insights more accessible.

In the meantime, we are continuing to invest in the Plugin Framework to continue to make “lean core Spinnaker, rich extension ecosystem” a reality. If you think you might be up for contributing to this effort, reach out to us here to visit #plugins on Spinnaker Slack — we’d love to get to know you and chat about our love for Spinnaker!

--

--

All posts are my personal opinions. I love tech, politics, history, and science. NYC and California are home.