Example Repository for using platform-automation
The structure of this repository allows for multiple environments to be represented in a single repository
folder holds the configuration for a given deployment where there is a subfolder for a given iaas and environment name. IaaS
folder would likely be optional
Within each iaas/foundation name folder there would be multiple folders
-
defaults
- this folder contains the default values for a given tile. This is generated byom config-template
Promotable -
templates
- this folder contains the resulting interpolated template based on operations files that have been applied to the output ofom config-template
. This is created byscripts/generate-config.sh
Promotable -
vars
- this folder contains environment specific variables per product that is being deployed. Not Promotable -
secrets
- this folder contains the templates that can be interpolated usingcredhub interpolate
to be used as secrets inputs to other tasks Promotable -
versions
- this folder contains both the product version and stemcell version per product. Promotable
Used to store opsmanager state.yml file leveraged by create-vm task. State folder inside environment directory
-
apply-product-changes
- task to allow specifying selective deploy for a single product -
download-create-opsman
this task is an aggregate that will try to short-circuit and not download opsmanager if state file has content otherwise with download opsmanager viaom download-product
and create it viap-automator create-vm
-
download-upgrade-opsman
this task is an aggregate that will short-circuit and not download opsmanager if the version installed is the version expected. This optimization only works in 2.5.x due to how opsmanager versioning worked prior to 2.5.x. If version mismatches it will download product viaom download-product
and update vm viap-automator upgrade-opsman
-
download-stage-tile-stemcell
this task is an aggregrate that will only download the tile if that version is not already staged. It will also only download the expected stemcell if that version hasn't already been uploaded. Otherwise it will download both tile and stemcell usingom download-product
, upload tile and stemcell, stage tile and assign the specified stemcell version to the tile (always regardless of download) -
make-commit
- this task avoids committing state.yml usingporcelain
option, PR has been accepted so this task will be replace with platform-automation task once it's shipped -
run-errand
- this task will run an errand via bosh cli