As an operator rolling Spinnaker out to production, one of the first hurdles to get over is how to automate adding and removing accounts for various cloud providers. In a world where creating AWS accounts and Kubernetes clusters is as simple as calling a single command in your shell, it’s critical that these resources are available to users as fast as possible. However, until the release of Spinnaker 1.15, adding accounts to your configuration was a largely manual process. You had to edit configuration files by hand and manually redeploy Clouddriver, the service responsible for interfacing with cloud provider APIs. Fortunately, thanks to the work of Armory and Pivotal, we’ve added features to Clouddriver that make it easier to automate this process.
Let’s take a look at the tools we’ve introduced to make this happen!
Spinnaker 1.15 introduces the concept of Dynamic Accounts, a mechanism for loading configurations from a remote source, such as Github or a database, and dynamically refreshing that configuration without restarting Clouddriver. To do this, we integrated Spring’s Cloud Config Server into Clouddriver. This integration enables us to decouple our configuration from the file system and treat the backing store as a type of API for serving up all of the properties Spinnaker needs to configure itself.
Armory’s Account Management API
While Cloud Config Server allows Clouddriver to read from remote sources, it doesn’t provide operators with an API to make changes to a configuration programmatically. Programmatic configuration changes are a prerequisite to enabling full automation for installing and configuring Spinnaker.
The goal of Armory’s Account Management API is to fill in this gap and provide an API surface to manage your Kubernetes account configuration without manually making changes to configuration files. With this API, adding a new account is as simple as calling an API with your desired account configuration and allowing it to get picked up by Clouddriver automatically.
Check out a video of our prototype!
Using the Account Management API will serve as a means to quickly and efficiently add new accounts to Spinnaker and make them available to your users as soon as they’re provisioned.