This repository contains the necessary config to deploy Spinnaker into the same Kubernetes cluster that it will manage. All containers are deployed into a spinnaker
namespace.
This assumes that you already the following things setup, and in working order, and accessible by the Kubernetes cluster:
- An NFS Server
- A Docker Registry
- A Jenkins build server
- Clone this repo onto your Kubernetes Master, or wherever your
kubectl
is installed. - Replace
<NFS_IP_ADDRESS>
with your NFS Server IP inhalyard.yml
andminio/standalone.yml
. - Run
./install.sh
. This will deploy halyard into a single replica. - Exec into your halyard pod:
kubectl exec -it -n spinnaker <HALYARD_POD> bash
. Runningkubectl get pods -n spinnaker
will give you the halyard pod name. - Copy the contents of
~/.kubeconfig
from your Kubernetes master, to/root/.kubeconfig
in the halyard container. - Copy the contents of
configure-halyard.sh
from this repo, to/root/configure-halyard.sh
in the halyard container. - From the halyard container, update the jenkins and docker registry environment variables to your paths, credentials etc.
- From the halyard container, run
./root/configure-halyard.sh
to configure and deploy Spinnaker. This will prompt for the following 3 passwords:- Minio: This will be
Test1234
by default, but should be changed to something more secure by changing the value of theMINIO_SECRET_KEY
environment variable inminio/standalone.yml
. - Docker Registry: Enter the password for your Docker Registry
- Jenkins: Enter the password for the Jenkins user.
- Minio: This will be
- To provide Spinnaker access to deploy containers into a specific namespace, run
./permit-namespace.sh "namespace_name"
from the halyard container. (NOTE: This is only works for a single namespace. More roles/rolebindings .yml would have to be created if Spinnaker needs access to deploy to more than one namespace) - Expose the Spinnaker dashboard(Deck) by running
./expose-deck.sh
from the Kubernetes master. - Access the Spinnaker dashboard at http://localhost:9000