Installing Armory Spinnaker from the Debian Package

We provide a Debian package that will install all the dependencies needed. To install the debian package, currently the only supported OS is Ubuntu Trusty, 14.04

apt-get update && apt-get install -y \  
      apt-transport-https \
      ca-certificates \
      curl

curl -fsSL https://yum.dockerproject.org/gpg | sudo apt-key add -

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61 


echo "deb https://apt.dockerproject.org/repo/ ubuntu-$(lsb_release -cs) main" \  
        | sudo tee -a /etc/apt/sources.list

echo "deb https://dl.bintray.com/armory/debians trusty main" \  
  | sudo tee -a /etc/apt/sources.list

apt-get update

apt-get install armoryspinnaker  

Fine Grained Rate Limits

Spinnaker queries your cloud provider (AWS, GCP, Azure, Kubernetes, etc) frequently to understand about the state of your existing infrastructure and current deployments. In doing so however, you might run into rate limits imposed by the cloud provider. Below is an example configuration for global rate limits for all services that you would place in clouddriver-local.yml.

serviceLimits:  
  defaults:
    rateLimit: 20

If you have multiple cloud providers, you can limit each one differently:

serviceLimits:  
  cloudProviderOverrides:
    aws:
      rateLimit: 15

You can provide account specific overrides as well in case you have significantly more resources in one account while others have less

serviceLimits:  
  accountOverrides:
    test:
      rateLimit: 5
    prod:
      rateLimit: 100

And lastly, you can have more fine-grained control for particular AWS endpoints that might have a different rate limits:

  implementationLimits:

    AmazonEC2:
      defaults:
        rateLimit: 200
      accountOverrides:
        prod:
          rateLimit: 500

    AmazonElasticLoadBalancing:
      defaults:
        rateLimit: 10

Using these rate limits will help you avoid hitting the rate limits and potentially make Spinnaker more responsive as the cloud provider clients won't have to implement back-off strategy to continue to query the infrastructure.

As always, we want to provide ridiculously responsive support, let us know how we can help.

Modify Global User-Data For All Deployments

When new server-groups are deployed Spinnaker attaches a global user-data script/file that is pre-pended to any application specific user-data configured in a server Spinnaker pipeline. By default Armory Spinnaker comes with a user-data file which is placed in /opt/spinnaker/config/udf/udf0. This can be modified and overwritten to your specific needs.

Enabling Jenkins & Igor to talk to Spinnaker

To enable Igor, Gate to integrate with your Jenkins build you'll need to edit your spinnaker-local.yml file. First configure Jenkins by finding your password or API Token. You can find your token here: http://${YOUR_JENKINS_URL}.armory.io/me/configure.

Then configure spinnaker local and add the following:

services:  
  igor:
    enabled: true
  jenkins:
    enabled: true
    defaultMaster:
      name: Name-of-Jenkins-Service
      baseUrl: http://${YOUR_JENKINS_URL}
      username: ${YOUR_USERNAME}
      password: ${API_TOKEN}

Manual Rollback of Armory Spinnaker

If you deploy a configuration or a change that takes down Spinnaker it'll be impossible to rollback since Spinnaker would not be available. In order to manually to deploy back you'll have to do the following:

  1. Look for the existing deployment for with the armoryspinnaker prefix.

  2. Find the ASGs of Armory Spinnaker that was deployed. Typically it should be armoryspinnaker-ha-polling-v${VER} where ${VER} is something like 023. You should see 2 ASGS, one that has active instead and the older version should be disabled. armory spinnaker ASGs

  3. Edit the older ASG and remove any suspended processes that are listed remove suspended process

  4. Increase the number of instance armoryspinnaker-ha-polling ASG to just 1 and the other ASG armoryspinnaker-ha, the non-polling ASG back to atleast 2.
    ASG upping desired capacity count

  5. Reduce the latest ASGs down to 0 so that they're no longer behind the ELB

  6. Check the Armory Spinnaker ELB, make sure all instances back behind both the user-facing and internal-services ELB.

  7. Go back to your Armory Spinnaker URL and make sure all is back to a working state.