In this step, you tell Halyard in what type of environment to install Spinnaker.
The recommended path is a distributed installation onto a Kubernetes cluster, but all of these methods are supported:
Distributed installation on Kubernetes
Halyard deploys each of Spinnaker’s microservices separately. This is highly recommended for use in production.
Local installations of Debian packages
Spinnaker is deployed on a single machine. This is ok for smaller Spinnaker deployments, but Spinnaker will be unavailable when it’s being updated.
Local git installations from github
This is for developers contributing to the Spinnaker project. If you’re a contributor, you’ll probably have two separate installations—a distributed one for using Spinnaker in production, and this local Git one for developing Spinnaker contributions.
Distributed installations are for development orgs with large resource footprints, and for those who can’t afford downtime during Spinnaker updates.
Spinnaker is deployed to a remote cloud, with each microservice deployed independently. Halyard creates a smaller, headless Spinnaker to update your Spinnaker and its microservices, ensuring zero-downtime updates.
If you haven’t already done so, configure a provider for the environment in which you will install Spinnaker.
This must be on a Kubernetes cluster. It does not have to be the same provider as the one you’re using to deploy your applications.
We recommend at least 4 cores and 8GB of RAM available in the cluster where you will deploy Spinnaker.
kubectlis installed on the machine running Halyard.
After you install it, you might need to update the
$PATHto ensure Halyard can find it, and if Halyard was already running you might need to restart it to pick up the new
Run the following command, using the
$ACCOUNTname you created when you configured the provider:
hal config deploy edit --type distributed --account-name $ACCOUNT
The Local Debian installation means Spinnaker will be downloaded and run on the single machine Halyard is currently installed on.
Intended use case
The Local Debian installation is intended for smaller deployments of Spinnaker, and for clouds where the Distributed installation is not yet supported; however, since all services are on a single machine, there will be downtime when Halyard updates Spinnaker.
Note that a Halyard Docker installation cannot be used as a Local Debian base image because it does not contain the necessary packages to run Spinnaker.
Required Halyard invocations
Currently, Halyard defaults to a Local Debian install when first run, and no changes are required on your behalf. However, if you’ve edited Halyard’s deployment type and want to revert to a local install, you can run the following command.
hal config deploy edit --type localdebian
The Local Git installation means Spinnaker will be cloned, built, and run on the single machine Halyard is run on.
Intended use case
The Local Git installation is intended for developers who want to contribute to Spinnaker. It is not intended to be used to manage any production environment.
Install local dependencies
Ensure that the following are installed on your system:
sudo apt-get install git
sudo apt-get install curl
sudo apt-get install redis-server
- OpenJDK 8 - JDK (we’re building from source, so a JRE is not sufficient)
sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install openjdk-8-jdk
- node (version >=8.9.0, can be installed via nvm, summarized below)
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash # Follow instructions at end of script to add nvm to ~/.bash_rc nvm install v8.9.0
npm install -g yarnor guide
Fork all Spinnaker repos
Setup SSH keys
Follow these guides to setup ssh access to your github.com account from your local machine:
- Generating a new ssh key and adding it to your ssh agent
- Adding a new ssh key to your Github account
Required Halyard invocations
Halyard defaults to a Local Debian install when first run. If you will be contributing code to the Spinnaker project, you can change your deployment type to Local Git type and set up your development environment with the latest code.
hal config deploy edit --type localgit --git-origin-user=<YOUR_GITHUB_USERNAME> hal config version edit --version branch:upstream/master
NOTE: Be sure to use the same username here that you forked the Spinnaker repositories to
- Spinnaker Architecture for a better understanding of the Distributed installation.
Now that your deployment environment is set up, you need to provide Spinnaker with a Persistent Storage source.