Config changes via Halyard without having to `hal deploy apply`?


#1

One of our customers asks this about configuration:

“Whenever I add a kubernetes account via hal config provider kubernetes account add, I have to redeploy spinnaker (hal deploy apply) in order for me to choose the account from the dropdown on the Deck UI on the Deploy Configuration page. Is there any alternative to add a kubernetes account on Spinnaker without having to redeploy spinnaker?”


#2

Great question. There is no alternative - Spinnaker preaches immutable infrastructure, and hot-reloading configuration generally goes against that. But there are two things to keep in mind:

  1. Redeploying Spinnaker with Halyard does not introduce downtime. While the process is a little slow, you can keep using Spinnaker while hal deploy apply runs.

  2. You can speed things up a bit by only deploying Clouddriver, the service that talks to Kubernetes. This can be done by passing it as a parameter using hal deploy apply --service-names clouddriver.


#3

One helpful tip, if you are interested in what --service-names you can pass in, check out:

An example recently was I needed to make changes to the API server, and instead of doing a deploy I just passed in --service-names=gate, which is much faster than a full deploy.


#4

We are observing high memory usage with Clouddriver when we add multiple account at a sequence, with a restart of only clouddriver after account addition. Does this impact the other accounts which are in execution mode ?


#5

Which version of Spinnaker is this happening on?


#6

We are currently on 1.8.0 , and planning to move 1.9.0.


#7

Can you provide more details about which accounts are being added (provider type, size of infra, etc…) and what steps exactly you’re taking to update, as well as how the memory usage grows?