Search code examples
redisamazon-elasticachespinnakerspinnaker-halyard

How do you configure Spinnaker to use an ElastiCache redis cluster?


Following the instructions here, I am attempting to configure Spinnaker to use an ElastiCache redis cluster, with cluster mode enabled.

Spinnaker: 1.40.2
Halyard: 0.35
Cloud driver provider: k8s (1.7.4)
Cloud: AWS

I have an ElastiCache Redis cluster configured in cluster mode, it has its configuration endpoint:

redis-spinnaker.1234.clustercfg.use1.cache.amazonaws.com:6379

It has one node:

I have created the following file: halyard/default/service-settings/redis.yml

overrideBaseUrl: redis://redis-spinnaker.1234.clustercfg.use1.cache.amazonaws.com:6379

I also tried

overrideBaseUrl: redis://redis-spinnaker-0001-001.1234.0001.use1.cache.amazonaws.com:6379

Note that both of these addresses are accessible from the cluster.

When I run halyard deploy apply, spin-gate times out

/ Deploy spin-gate
  Timed out

And the whole deploy times out.
Problems in Global:
! ERROR Unexpected exception:
  DaemonTaskInterrupted(interruptedTime=1507614194943, message=Task interrupted at
  Tue Oct 10 05:43:14 UTC 2017 with message: Interrupted during reap by exception:
  null)

- Failed to deploy Spinnaker. Task killed because it was taking too
  long.

At this point, I'm not sure what to do to make this work?


Solution

  • I cannot make spinnaker work with clustered / replicated elasticache redis, so what I do is use only a single ElastiCache redis node and then set service.redis.host in spinnaker-local.yml to the appropriate redis endpoint and set redis.configuration.secure in gate-local.yml to true