The Provisioner
This tool is not meant to be invoked directly and is instead meant to run on the preload vm
created by the finish-image-build
step in the
cos-customizer
The command line tool and it's configs are packaged in an image named cidata that is formatted with the
FAT filesystem. This image is uploaded and mounted onto the preload VM at /mnt/disks/cidata
and the
provisioner is executed by a cloud-init script called
startup.yaml.
This cloud-init file creates two files:
/tmp/startup.sh
/etc/systemd/system/customizer@.service
The systemd service customizer@.service calls the startup.sh script which will then call the provisioner.
The provisioner reads from a file called the prov.config
, also packaged in the cidata disk, which contains all
the optional steps specified by the cos_customizer. The implementation of these steps are located at //src/pkg/provisioner.
Here are the available implementations of those steps:
- disable_auto_update_step.go
- install_gpu_step.go
- install_packages_step.go
- run_script_step.go
- seal_oem_step.go
You'll notice that these steps map exactly to the optional steps in the
cos-customizer.