Skip to content
No description, website, or topics provided.
Shell
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
guides Stuff Nov 13, 2019
manifests MVP Aug 23, 2019
scripts add autocomplete to script (#23) Nov 15, 2019
.gitignore Add gitignore Oct 29, 2019
readme.md Docs(readme): Fix typos (#28) Dec 12, 2019

readme.md

Spinnaker All-In-One (Minnaker) Quick Start

Previously known as Mini-Spinnaker

This is currently intended for POCs and trying out Spinnaker.

Background

  • Given a single Linux machine (currently tested with Ubuntu 18.04 and Debian 10)
  • Install k3s
    • Traefik turned off
  • Install minio in k3s
    • Use a local volume
  • Set up Halyard in a Docker container (running in Kubernetes)
  • Install Spinnaker using Halyard
  • [Optionally] Configure development environment

Prerequisites

  • Linux distribution running in a VM or bare metal

    • 2 vCPUs (recommend 4)
    • 8Gb of RAM (recommend 16)
    • 30GB of HDD (recommend 40+)
    • NAT or Bridged networking with access to the internet
  • Install curl and git:

    • Debian
      • sudo apt-get install curl git

Installation

  • Login (SSH) to your VM or bare metal box

  • Clone the minnaker repository

    git clone https://github.com/armory/minnaker
  • Change the working directory to minnaker/scripts

    cd minnaker/scripts
  • Make the install script executable

    chmod 775 all.sh
  • Execute the install script (add the -o flag if you want OSS Spinnaker)

    This will, by default, install Armory Spinnaker and use your public IP address (determined by curling ifconfig.co) as the endpoint for Spinnaker. If you are installing this on a baremetal or local VM, you should indicate the IP address for your server with the -p and -P flags (-p is the 'Private IP', and must be an IP address that exists on an interface on the machine; -P is the 'Public IP' and must be an address or DNS name you will use to access Spinnaker).

    ./all.sh

    For example, to install OSS Spinnaker on a VM with the IP address of 192.168.10.1, you could do something like this:

    export PRIVATE_IP=192.168.10.1
    export PUBLIC_IP=54.252.234.226
    ./all.sh -o -P $PUBLIC_IP -p $PRIVATE_IP
  • Installation will continue and take about 5-10 minutes to complete, depending on VM size

Accessing Spinnaker

  • Determine your IP_ADDR

    hostname -I

    Alternately, run this command:

    grep override /etc/spinnaker/.hal/config

    And grab the first URL

  • Open your browser to the above IP_ADDR (https://IP/)

  • Get the Spinnaker password (you may need to ssh into your machine)

    cat /etc/spinnaker/.hal/.secret/spinnaker_password
  • User credentials

    • User: admin
    • Password: paste from above
  • Port 443 on your VM need to be accessible from your workstation / browser

  • As of 10/18/2019, we no longer need port 8084

  • As of 11/11/2019, we use 443 instead of 80, and use Traefik's default self-signed certificate

Changing Your Spinnaker Configuration

  • SSH into the machine where you have installed Spinnaker

  • Access the Halyard pod

    export HAL_POD=$(kubectl -n spinnaker get pod -l app=halyard -oname | cut -d'/' -f 2)
    
    kubectl -n spinnaker exec -it ${HAL_POD} bash
  • Run Halyard configuration commands like this example

    hal config version
  • Type exit to leave the pod

  • All of the Halyard configuration files are stored in /etc/spinnaker/.hal

Details

By default, this will install Spinnaker and configure it to listen on port 443, using paths / and /api/v1(for the UI and API).

If you installed Minnaker prior to November 2019, you can switch to the new path mechanism using Switch to Paths.

Notes:

  • If you shut down and restart the instance and it gets different IP addresses, you'll have to update Spinnaker with the new IP address(es):

    • If the public IP address has changed:
      • Update /etc/spinnaker/.hal/public_ip with the new public IP address
      • Update /etc/spinnaker/.hal/config Update with the new public IP addresses (Look for overrideBaseUrl fields) (if you haven't switch to DNS)
      • /etc/spinnaker/.hal/config-seed Update with the new public IP addresses (Look for overrideBaseUrl fields) (if you haven't switch to DNS)
    • If the private IP address has changed:
      • Update /etc/spinnaker/.hal/private_ip with the new private IP address
      • Update the kubeconfigs at /etc/spinnaker/.kube/config and /etc/spinnaker/.hal/.secret/kubeconfig-spinnaker-sa with the new private IP address (in the .clusters.cluster.server field)
    • Run hal deploy apply
  • Certificate support isn't yet documented. Many ways to achieve this:

    • Using actual cert files, create certs that Traefik can use in the ingress definition(s)
    • Using ACM or equivalent, put a certificate in front of the instance and change the overrides
    • Either way, you must use certificates that your browser will trust that match your DNS name (your browser may not prompt to trust the untrusted API certificate)
  • If you need to get the password again, you can see the generated password in /etc/spinnaker/.hal/.secret/spinnaker_password:

    cat /etc/spinnaker/.hal/.secret/spinnaker_password
You can’t perform that action at this time.