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.env
becomesgenesis.env
params.bosh
becomesgenesis.bosh_env
params.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.