Hal should be considered as official tool to install Spinnaker, you may find other ways such as Helm to install though, but they have no official support, meanning you can’t do simple upgrade in the future.

Install Hal

Make sure .hal exists for storing config

Note if create under root, docker volume needs to have enough rights, I’m using regular user Ubuntu.

mkdir ~/.hal

Docker Run

Docker will save all config at ~/.hal

docker run -p 8084:8084 -p 9000:9000 \
    --name halyard --rm \
    -v ~/.hal:/home/spinnaker/.hal \
    -d \
    gcr.io/spinnaker-marketplace/halyard:stable

Exec into Hal docker and config

docker exec -it halyard bash
source <(hal --print-bash-completion)
### Add docker repos
hal config provider docker-registry enable
hal config provider docker-registry account add docker-hub \
        --address https://index.docker.io \
        --repositories library/nginx 
hal config provider docker-registry account add kolla \
        --address https://xxx.ca:5000\
        --username admin\
        --password
hal config provider docker-registry account add tdlab \
        --address https://xxx.ca:5001\
        --username admin\
        --password

enable k8s integration

hal config provider kubernetes enable
hal config provider kubernetes account add dev \
    --provider-version v2 \
    --context $(kubectl config current-context)\
    --docker-registries kolla tdlab\
    --namespaces devops
    
hal config provider kubernetes account add k8s-wt-dev \
    --docker-registries docker-hub kolla tdlab

Enable Openstack integration

hal config provider openstack enable
hal config provider openstack account add cbopenstack \
    --environment cbopenstack\
    --auth-url http://10.240.10:5000/v3  --username admin \
    --domain-name default --regions RegionOne --project-name WT-dev \
    --password 

Distributed installation

use k8s account name dev

hal config deploy edit --type distributed --account-name dev

Helm install minio

helm install --set accessKey=123sqwert,secretKey=123sqwert \
    stable/minio -n minio --namespace devops

Use minio as S3 storage

hal config storage s3 edit --endpoint http://minio.devops:9000\
    --access-key-id 123sqwert \
    --secret-access-key 

Set which Spinnaker version to install

hal config version edit --version 1.7.6

Enable Canary

hal config canary enable
hal config canary prometheus enable
hal config canary prometheus account add prometheus --base-url http://prometheus-server.logging
hal config metric-stores prometheus enable