Minio

Spinnaker supports using Minio for persisting your Application settings and configured Pipelines.

:warning: Losing Minio’s data will mean losing all your Spinnaker application metadata, and configured pipelines.

Minio is an S3-compatible object store that you can host yourself. This is the persistent storage solution we recommend when you don’t want to depend on a cloud provider to host your Spinnaker data.

Prerequisites

Install Minio following the instructions on the Minio homepage , making sure to have it run on an endpoint reachable by Spinnaker. Record the following values:

  • ENDPOINT: The fully-qualifed endpoint Minio is reachable on. If Minio is running on the same machine as Spinnaker, this might be http://127.0.0.1:9001 (note that using localhost instead of 127.0.0.1 doesn’t work because the AWS SDK will then try to connect to http://.localhost:9001).

  • MINIO_ACCESS_KEY, MINIO_SECRET_KEY: The access/secret keypair you’ve configured Minio with. These env vars need to be visible to the Minio process for them to work.

Editing your storage settings

Given that Minio doesn’t support versioning objects, we need to disable it in Spinnaker. Add the following line to ~/.hal/$DEPLOYMENT/profiles/front50-local.yml:

spinnaker.s3.versioning: false

$DEPLOYMENT is typically default. Read more here . If this file does not exit, it may have to be created.

Run the following commands (notice we are picking S3 as our storage type, because Minio implements the S3 API):

Ubuntu installation

echo $MINIO_SECRET_KEY | hal config storage s3 edit --endpoint $ENDPOINT \
    --access-key-id $MINIO_ACCESS_KEY \
    --secret-access-key # will be read on STDIN to avoid polluting your
                        # ~/.bash_history with a secret

hal config storage edit --type s3

Docker container installation

# The next two lines should be run inside the docker container only
chcon -R --reference /root/.bashrc /root/.hal/
ls -lZa /root # Make sure the SELinux context is the same for all files/folders

echo $MINIO_SECRET_KEY | hal config storage s3 edit --endpoint $ENDPOINT \
    --access-key-id $MINIO_ACCESS_KEY \
    --secret-access-key # will be read on STDIN to avoid polluting your
                        # ~/.bash_history with a secret

hal config storage edit --type s3

Notes

:warning: Unless you’ve configured Minio to support virtual-host-style requests , you need to enable the path-style access mode: hal config storage s3 edit --path-style-access true. Otherwise, Front50 will fail with java.net.UnknownHostException: $BUCKET_NAME.localhost exceptions.

Next steps

After you’ve set up Minio as your external storage service, you’re ready to deploy Spinnaker .

Last modified May 4, 2021: rest of migration (700781a)