Using S3 with Spinnaker instead of Cassandra Backend

Aug 22, 2016 by Ben Mappen

Cassandra is used by Spinnaker to persist pipelines configuration and cluster information. While Cassandra may suit your needs it might be overkill for POCs or early development phases where the number of configurations and continuous deployments are small. While Spinnaker can be configured to have an Amazon S3 backend, it’s not always trivial to setup.

You might find an error in the front50 log that looks like the following:

org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [com.netflix.spinnaker.front50.model.pipeline.PipelineDAO] is defined: expected single matching bean but found 2: pipelineRepository,s3PipelineDAO

Setting an Active Spring Profile

Spinnaker heavily relies on the Spring framework. The Spring framework expects there only one object that matches the interface for a backend repository.

You can change the default options passed into spinnaker by editing the defaults file for spinnaker /etc/default/spinnaker

in there you can change the default active profile by setting the java front50 options to the following:

FRONT50_OPTS="-Dspring.profiles.active=s3"

Another common mistake is that folks forget to disable Cassandra in their front50.yml which you can find at /opt/spinnaker/config. Make the following change:

    enabled: false```
Hope these changes help!
If you haven't heard of Spinnaker, its a next generation cloud deployment tool originally built by Netflix and subsequently open-sourced.  It's best know for continuous delivery at Netflix and helping them achieve more than 4,000 deployments/day.  It's currently being contributed to by over 30 developers from Google, Pivotal, Netflix, Veritas and Microsoft.

Recently Published Posts

Reduce the Blast Radius of a Bad Deployment with Automated Canary Analysis

May 23, 2022

Software deployment processes differ across organizations, teams, and applications. The most basic, and perhaps the riskiest, is the “big bang deployment.” This strategy updates all nodes within the target environment simultaneously with the new software version. This deployment strategy causes many issues, including potential downtime or other issues while the update is in progress. It […]

Read more

Reliable and Automatic Multi-Target Deployments

May 16, 2022

Multi-target deployments can feel tedious as you deploy the same code over and over to multiple clouds and environments — and none of them in the same way. With an automatic multi-target deployment tool, on the other hand, you do the work once and deliver your code everywhere it needs to be. Armory provides an […]

Read more

Learning out Loud: KubeCon EU edition

May 11, 2022

KubeCon+CloudNativeCon EU is one of the world’s largest tech conferences. Here, users, developers, and companies who have and intend to adopt the Cloud Native standard of running applications with Kubernetes in their organizations come together for 5 days. From May 16-20, 2022, tech enthusiasts will congregate both virtually and in person in Valencia, Spain to […]

Read more