Introducing the Spinnaker Operator (Early Release)
Aug 22, 2019 by Nicolas Cohen
Our customers overwhelmingly install Spinnaker in Kubernetes to take advantage of out-of-the-box scaling and roll out of new settings or versions. But we also hear that Spinnaker can be hard to install and manage when administrators are used to deploy and configure other tools with
Today, we’re sharing a project we’ve been working on: a Kubernetes operator for Spinnaker. The Spinnaker operator lets you manage the entire lifecycle of Spinnaker with your favorite tools.
Operators can perform various functions from deployment to monitoring. Our first iteration lets you deploy Spinnaker without using Halyard and creates load balancers to expose Spinnaker. Let’s see how it works.
Installing the Spinnaker Operator
$ kubectl -n mynamespace apply -f kubernetes/basic/
Installing the operator consists of 5 Kubernetes manifests:
- A Custom Resource Definition (CRD) which extends Kubernetes APIs
- A service account, role, and role binding to grant the operator access to the Kubernetes objects it needs to watch or modify.
Deploymentobject for the operator itself.
$ kubectl -n mynamespace apply -f example/spin-config.yml $ kubectl -n mynamespace apply -f example/spinnaker-service.yml
The first manifest is a
configMap that contains all the necessary information to configure Spinnaker. It should not contain any secrets (read how to separate secrets from configuration) but you could still use a
The second manifest simply references the second one:
apiVersion: spinnaker.io/v1alpha1 kind: SpinnakerService metadata: name: spinnaker spec: spinnakerConfig: configMap: name: spinconfig-v001
That’s it! The operator will pick up the configuration and deploy Spinnaker.
Need to make a change? Update the
SpinnakerService to point to a different
configMap or just update the
configMap itself. The entire Spinnaker configuration is represented in standard Kubernetes objects that you can store in git. You don’t need to invoke Halyard from your CI tool.
Got questions or suggestions? Want to give it a try? Get in touch to see how this would help you install and upgrade Spinnaker in your environment.
Update 8/27/19: The operator has been open-sourced at: https://github.com/armory/spinnaker-operator
Recently Published Posts
A day in the life of a TAM
I’ve been asked what a Technical Account Manager (TAM) does so I wanted to take the opportunity to illustrate it by walking through a standard day in the life. Before we can look at what a day in a life of a TAM is, I should provide some background in what is a TAM and […]
Read more →
Nikema’s Spinnaker Summit 2021 Recap
My Second Spinnaker Summit is in the Books! Last week I attended and spoke at my second Spinnaker Summit. Like last year’s summit, it was fully virtual. This time Spinnaker Summit was co-located with cdCon and took place on the Hopin platform. Last year, I spoke on a panel about Black professionals a few months […]
Read more →
Announcing General Availability of Armory Policy Engine Plugin
Armory Policy Engine provides support for automating policy compliance with Spinnaker. Policy Engine Plugin is the latest version of Policy Engine and adds support for both advanced role-based access control (RBAC) use-cases and open source Spinnaker. The release of Policy Engine Plugin comes with new documentation, including a library of example policies from across Armory’s […]
Read more →