How to use BOM for newbies?



I am a totally newbie when it comes to k8s and spinnaker. Now my task is to setup spinnaker on premise where we do not have access to a public internet directly. We have a intermediate Nexus artifact repository which serves as proxy for the different repositories (docker, helm, …).

Now I understand, that there is a way to use a custom BOM where I basically would contain something like

   debianRepository: https://nexus.intra/repository/spinnaker-releases/
   dockerRegistry: nexus.intra:5000/spinnaker-marketplace
   gitPrefix: https://scm.intra/scm/SPINNAKER/repos

I also understand that for setting up spinnaker by

  • deploying the helm chart
  • go into halyard pod and run hal

Then I read

By default, all BOMs are stored in a publicly readable GCS bucket, gs://halconfig that Halyard reads from when doing a deployment. This bucket location can be changed by setting the spinnaker.config.input.bucket property in /opt/spinnaker/config/halyard-local.yml .

If I am within the halyard pod I can modify the yml file but when I completely remove the spinnaker deployment these changes would be lost. So how do I make this reproducible i.e. how do I configure my values.yml file so that the required configuration is already set when deploying spinnaker via helm?

Same question goes into the “deployment” of the custom BOM. Alternatively to a bucket I could specify to read from the local file system

BOMs can also be read from your filesystem. To indicate to Halyard that you want to read a local BOM, prefix the version you want to deploy ( ${VERSION} ) with local:

To do so, how to I bring my BOM onto the filesystem so that it is were required: ${HALCONFIG_DIR}/.boms/boms/${VERSION}.yml?