Overview
The end-user's primary interface for deployments is the various environment
YAML files in the deployment repository. Since pretty much the beginning of
Genesis 2, it has been composed of two top-level components: kit and
params. The kit section identified the kit to be used and the features
to include, and the params block was for providing values for the kit to
use in building its manifest, with the name derived from the spruce ((
param )) operator. Anything outside these two blocks was merged overtop of
the manifest, allowing users to explicitly override any section of the
generate manifest.
As Genesis has evolved, we have seen the need to separate the areas of
concern from what Genesis needs to do its job (deployment, secrets
management, etc) from what the kit needs to build its manifest. To that
end, the genesis block was added in v2.6.x, and values that are
Genesis-centric have been migrated there.
As of v2.7.7, continued use of the params versions of values that should
be found under genesis will generate a warning. In prior version of the
2.7.x line, it would actually error out, and we found users were not clear
on the action needed, so we have moved to a warning and this document to
explain the impact and resolution. It will once again become required in a
later version ov the 2.7.x line.
Impact
The following params entries have been moved under genesis:
params.envbecomesgenesis.envparams.boshbecomesgenesis.bosh_envparams.vault_prefix(and the legacyparams.vault) becomegenesis.secrets_path
The Process
Simply edit your environment files, create a top-level genesis block, and
move any of the params entries above to the associated genesis
entries.
As an optional step, instead of moving, you can remove params.vault_prefix
or params.vault entries that contain the default vault path for the
environment. This will be the environment name with all hyphens (-)
changed to slashes (/), followed by a /<kit-type>. For example, if my
cf-genesis-kit environment file "c-aws-dev-1.yml" had a
params.vault_prefix of c/aws/dev/1/cf, it would be safe to remove. This
is not required, but such entries are redundant.
As always, if using pipelines, make sure you embed the new version of
Genesis in your deployment repos every time you upgrade Gensis. This can be
done by simply running genesis embed inside each of your repos.
Help & Support
If you have concerns about the impact of this migration process, or need assistance running through it, please don't hesitate to find us in #help on Slack.