"Foolproof" install instructions?


I feel ridiculous saying this, but I just can’t seem to get a functional install of Spinnaker. Even the “one click” Google Cloud install locks up if I try to create an application, spinning on “Loading…” forever. (I checked halyard.log and every looks fine.)

Is there a very simple, very foolproof, set of instructions somewhere?

---- Nick


I’m not aware of any instructions beyond those here, but if there are places in the instructions where you’re running into issues that probably means we need to improve the instructions there.

How are you trying to log into the Google Cloud install? You’ll need to forward both ports 9000 (which runs the UI) and 8084 (which runs the API gateway) to the machine you’re using to log into Spinnaker—if you only forward 9000 then you’ll get an infinite “Loading…” screen. If that’s not your issue, please provide some more details on your setup and I’ll do my best to help.



One more thing to try – do you have a running Kubernetes cluster? We have a "one kubectl" command path that you could try out.


I do, and I would LOVE to try that.


Awesome –

give kubectl apply -f https://spinnaker.io/downloads/kubernetes/quick-install.yml a shot.


Lovely. It does appear to deploy flawlessly, but how do I actually access it afterwards…? :slight_smile:


---- Nick


Great! kubectl apply -f https://spinnaker.io/downloads/kubernetes/quick-install.yml works great (google, managed kubernetes). Thank you very much for the tip!

And to access it I am using port forwarding (you need 2, took it from some connection scripts hal is using)
first set your path to kub config
kubectl --context spinnaker --kubeconfig $KUBE_CONFIG_PATH -n=spinnaker port-forward $(kubectl --context spinnaker --kubeconfig $KUBE_CONFIG_PATH -n=spinnaker get po -l=cluster=spin-deck -o=jsonpath='{.items[0].metadata.name}') 9000:9000
kubectl --context spinnaker --kubeconfig $KUBE_CONFIG_PATH -n=spinnaker port-forward $(kubectl --context spinnaker --kubeconfig $KUBE_CONFIG_PATH -n=spinnaker get po -l=cluster=spin-gate -o=jsonpath='{.items[0].metadata.name}') 8084

And then
localhost:9000 gives you the spinnaker UI

Clouddriver in Spinnaker 1.6.0 is more fragile

Thank you for pointing this out @AndreiJ! – @NickChase those instructions above are correct


Beautiful! Thanks @lwander and @AndreiJ! I did have to remove the spinnaker context flags, but otherwise it worked beautifully.

Thank you!

---- Nick


Getting error below with I tried above recipe:

namespace “spinnaker” created
deployment.apps “spin-halyard” created
service “spin-halyard” created
configmap “halconfig” created
persistentvolumeclaim “minio-pv-claim” created
deployment.apps “minio-deployment” created
service “minio-service” created
job.batch “hal-deploy-apply” created
error: unable to recognize “https://spinnaker.io/downloads/kubernetes/quick-install.yml”: no matches for kind “ClusterRoleBinding” in version “rbac.authorization.k8s.io/v1

I have tried with different versions of kubectl - right from 1.6 to 1.10. Target cluster is on Azure - created using AKS.


Hi @Amit_Mujawar

What version of the kubernetes server is running in your cluster?

kubectl version should print both your client and server’s version.



I checked and see that its 1.7.0 on kubernetes cluster.


Hm, ok, judging from the k8s docs it looks like RBAC was at version rbac.authorization.k8s.io/v1beta1 in server 1.7

If possible I’d suggest upgrading your server version. I’ve added a note to the open Github issue we have for the one-step deployment that describes the issue you faced here: https://github.com/spinnaker/spinnaker/issues/2522


When I upgraded my cluster to 1.8.2, the steps worked. However I cannot open the Spinnaker UI even after following the steps mentioned for 9000 and 8084 ports.
I keep getting connection refused for port 8084.


If you run kubectl get all --namespace spinnaker you should see the complete set of pods and services that have been deployed. Do you see any pods that are in an Error / Crash Loop state?


Yes. I saw below output -

minio-deployment-2380741213-78dr4 0/1 Pending 0 19h
spin-clouddriver-5484958bf6-htjg9 1/1 Running 0 12h
spin-deck-5dfd9c565f-n472b 1/1 Running 0 12h
spin-echo-867c86d485-grhkx 1/1 Running 0 12h
spin-front50-5f5db69799-5shxc 0/1 CrashLoopBackOff 117 12h
spin-gate-66bdf56ff9-g8274 0/1 Running 0 12h
spin-halyard-3490164028-z6fhf 1/1 Running 0 12h
spin-orca-699bc8cc84-kwprr 1/1 Running 0 12h
spin-redis-69b6cc4c46-6nn25 1/1 Running 0 12h


I also have a basic question - does this way of installation use Halyard - it appears to be using it based on output of pods. How do I configure spinnaker from this point on? Do I need to setup halyard on the VM separately and configure to manage spinnaker?


minio-deployment-2380741213-78dr4 0/1 Pending 0 19h

This appears to be the source of the issue. If minio can’t start then I expect front50 fails to fully launch due of that.

From the kubernetes docs:

My pod stays pending
If a pod is stuck in Pending it means that it can not be scheduled onto a node. Generally this is because there are insufficient resources of one type or another that prevent scheduling. Look at the output of the kubectl describe … command

So the next step would be to run this and see what the scheduler is having trouble with:

kubectl describe -n spinnaker pod minio-deployment-2380741213-78dr4


does this way of installation use Halyard

Yes it does. Halyard is installed inside a pod (spin-halyard-3490164028-z6fhf in your case) and a kubernetes Job calls hal deploy apply and exits once it completes successfully.

How do I configure spinnaker from this point on? Do I need to setup halyard on the VM separately and configure to manage spinnaker?

You can save this shell script locally and then use it to issue commands to halyard running in its pod:

#!/usr/bin/env bash

HAL_POD=$(kubectl get po -n spinnaker -l "stack=halyard" \
  -o jsonpath="{.items[0].metadata.name}")

kubectl exec $HAL_POD -n spinnaker -- sh -c "hal $*"


Thanks a lot for quick responses and help. I am about to give up on this now since its not really look like quickstart :frowning:
I am going ahead with the spinnaker.io/setup guide for now.