Changelog History
Page 1
-
v2.7.23 Changes
December 06, 2020๐ Improvements
๐ Better deployment process and output, suppression of duplicate warnings.
๐ This change also allows kits to use the pre-deploy hook to validate
conditions AFTER the manifest has been fully generated.Extract redacted vars file into repo (along with existing redacted manifest)
๐ after deployment.When a Genesis command needs access to BOSH, it would check if it was
reachable. However, reachable does not mean accessible, so we now check
that the user is authenticated with the BOSH director.๐ Improvements to README.md generated when initializing a new Genesis
repository. Thanks to Vasyl Tretiakov. -
v2.7.22 Changes
December 01, 2020๐ Improvements
Pipeline: ci-show-changes now states explicitly when no differences were
found.Unless explicitly a config of a given type is explicitly identified by name,
๐ we now fetch and merge all configs of a given type (ie cloud, runtime) when
a kit indicates that they are needed.๐ Bug Fixes
๐ Better error message if
genesis.env
(and alsoparams.env
) is missing from
the environment file.๐ Pipeline: cpi configs are not associates with deployment, so there's no way
to tell which version of the CPI configs were used on the previous
๐ deployment. Therefore, we now exclude cpi config in ci-show-changes.๐ Auto-authenticate to vault after running a long-deployment so that exodus
๐ data could be added successfully was added a few releases back, but for kits
that use credhub (ie cf-genesis-kit), access to the bosh director's exodus
data (and thus vault) was needed to assemble the exodus data to be stored.
This happened prior to reauthenticating to vault, and therefore failed.
This has now been resolved.๐ Better support for multi-doc yaml: Ensure YAML partition is on a new line
YAML files are text files, and text files (in *nix) consist of a series
of lines, each terminated by a newline character, including the last
๐ one. So this is the behaviour Genesis expected when merging multiple
source YAML files into a multi-doc file.HOWEVER, certain editors don't naturally obey this spec, and when
Genesis encountered these files in the wild, the"---\n"
separator was
appended to whatever the last value in the previous file was, which
didn't result in a proper multi-doc file and data was corrupted. We now
join with"\n---\n"
just in case. -
v2.7.21 Changes
November 18, 2020๐ Bug Fix
๐ Fixes adaptive loading of environment that would otherwise break due to
spruce operator errors (missing paths or vault access). This was required
๐ to support multi-doc parsing released in v2.7.20, but contained edge cased
that have now been resolved.If you continue to have issues loading environments, you may use
export GENESIS_UNEVALED_PARAMS=1
to restore previous behaviour (assuming you are
not using multi-doc yaml files. Please open a github ticket if you
encounter such an error, and provide the content (sanitized of any private
information by replacing with dummy values) of your environment hierarchy.๐ Pipeline deploy now correctly checks enviornment prior to deploying, as per
๐ the method manualgenesis deploy
does it.๐ Fix missing BOSH variable during the pipeline show-pending-changes step.
This resulted in any location using a BOSH variable showing up as a change.๐ Handle missing cloud config fields when checking environment has the correct
cloud config settings. If an entire field was missing instead of just a
entry in that field, the check script would fail with ajq
error. -
v2.7.20 Changes
November 17, 2020๐ REDACTED: This release can cause inadvertent regressions of deployments when hierarchical environment files are in use. Please stand by for v2.7.21 for fix
๐ Improvements
- ๐ Support multi-doc environment files, so that spruce-specific layering can be
done in a single file.
๐ Bug Fixes
๐ Fix errant pipeline warning without cause. This was introduced in v2.7.19,
but was overly-aggressive and mistook an empty list as an entry.โ Remove double-deep cached files from git repo. Fixed in v2.7.19, Genesis no
longer creates the double-deep cache. However, this meant that existing
erroneous entries would show up as differences, and cause the
๐ทc-generate-cache
job to fail to "copy" over the now absent file. - ๐ Support multi-doc environment files, so that spruce-specific layering can be
-
v2.7.19 Changes
November 13, 2020๐ Pipeline Cache Propagation Bug Fixes
๐ Source of errant duplicate drectories found and fixed. If you have
.genesis/cached/cached/
or.genesis/cached/<env>/<env>/
directories, the
๐ deeper directory can be safely removed.๐ Pipeline deploys correctly propagates the cached versions it was deployed
๐ with. There was a scenario that caused the pipeline to deploy with the
cached version of a common ancestor file, but then propagate its local file.๐ Detection of cached files now occurs earlier in the pipeline deploy process,
๐ which solves a race condition that caused the deployment to use the uncached
(outdated) files, or not include a file at all.๐ Improvements
genesis init
can now useGIT_AUTHOR_NAME
andGIT_AUTHOR_EMAIL
instead
of requiring the .gitconfig to have those values set. For the initial
commit,GIT_COMMITTER_NAME
andGIT_COMMITTER_EMAIL
will be used, but
will default to the equivalentGIT_AUTHOR_*
values if not also present.
๐ Bug Fixes
๐ Fixed exodus helper for hooks. This is required for vault-genesis-kit
v1.6.1 if using the explicitly listed static IPs๐ Fix deploy continuing on failed environment check. Prior to this fix, if
environment check failed, but secret check succeeded, the failed environment
๐ check would be ignored, and deployment would continue. -
v2.7.18 Changes
October 23, 2020๐ Bug Fixes
- ๐ Fixed error in
pipeline.task.privileged
configuration inci.yml
- ๐ Fixed error in
-
v2.7.17 Changes
October 21, 2020Pipeline Improvements
โ Added
pipeline.task.privilege
in ci.yml, which allows you to provide a
๐ list of evironments that will run thebosh_deploy
task in privileged mode
๐ (which may be needed when deploying proto-BOSH environments). See
๐ท https://concourse-ci.org/jobs.html#schema.step.task-step.privileged for more
information.๐ Allow genesis to create and authenticate to safe targets, which is used in
๐ง the pipeline to target the vault specified in the configuration.๐ Allow genesis to reauthenticate to safe after a long-running bosh deployment
๐ so it can store the updates to the deployment's exodus data.โ Add auto-update to pipeline
โก๏ธ This creates a genesis-updates group that contains a job that is
๐ triggered when a new verison of the kit is released, and will update the
๐ kit version in the deployment repo, and embed the latest version of
โ genesis if not at the latest version.It will then commit these changes, which will trigger the primary
pipeline for the repo to progress through the various environments.โก๏ธ The
pipeline.auto-update
block in ci.yml, requires afile
key to specify
which file contains thekit.version
entry. More details can be found in
๐docs/PIPELINES.md
.โ Adds
pipeline.git.commits
map entry to ci.yml, that can contain
user_name
anduser_email
keys for specifying the user name and email
๐ when the pipeline makes commits to the deployment repo. Defaults to
'Concourse Bot' and '[email protected]' respectively.โ Add a safe "dry-run" on notifications to identify what changes will be
๐ deployed on the pending environment. This is different thatbosh deploy --dry-run
in that it doesn't alter the director's databases, nor upload
๐ releases, and it identifies changes in credhub values (but doesn't leak them
๐ฒ to the output log)Other Improvements
๐ Support auto-authenticate with Safe.
โฑ As a side effect of enabling pipelines to re-authenticate after timeout,
๐ users can now set environment variables to automatically authenticate with
their safe. The environment variables areVAULT_AUTH_TOKEN
for token
๐ authentication,VAULT_USERNAME
andVAULT_PASSWORD
for userpass
authentication, andVAULT_GITHUB_TOKEN
for authenticating with a Github
Personal Access Token.๐ Bug Fixes
- Vault detection fix to allow conditions when no vault is available (a valid
condition for some Genesis sub-commands)
๐ฅ BREAKING CHANGES
โก๏ธ If you are still specifying stemcell update information in your ci.yml
๐ง configuration, you will need to remove it. It has not been supported for many
๐ releases, but this release removes it validity.โก๏ธ Dependency Updates
- Safe bumped to v1.5.8
- Vault detection fix to allow conditions when no vault is available (a valid
-
v2.7.16 Changes
September 22, 2020๐ Bug Fixes
- ๐ Fixed error-check on create-env deploy options. Auto-vivication was causing
the options to appear in use even though they weren't.
- ๐ Fixed error-check on create-env deploy options. Auto-vivication was causing
-
v2.7.15 Changes
September 22, 2020๐ Improvements
โก๏ธ Updates to pipelines:
๐ Commit state file on failed create-env deployment.
โ Add pipeline.notifications to ci.yml. Can take the arguments of
0๏ธโฃinline
(default),parallel
, andgrouped
.Both
parallel
andgrouped
make the notifications parallel to the
๐ task that is being notified as ready, so dont block the manual trigger progression.
groupedhas the additional behaviour that moves the notification tasks into a separate group. The default
inline`
maintains the original behaviour of notification preceeding the manual
task.๐ Bug Fixes
๐ Don't block -y|--yes for create-env deploys
๐ Since create-env deploys follow the spirit of the 'yes' option, we will
๐ allow it even though it has no effect. This will allow automation to
๐ blindly specify -y without having to check if the deployment is a
create-env.โช This reverts a change found in Genesis 2.7.14
๐ Fix failures when no safe target is available
๐ Detection of the safe target was moved to Genesis::Top in v2.7.14, but
there are a select few circumstances that does not require the safe
target to be known, such asgenesis embed
. This fix makes the missing
โ safe target non-fatal, but adds a debug warning message if missing. -
v2.7.14 Changes
September 18, 2020๐ Improvements
๐ Allow
genesis repipe
to keep pipelines paused.โก๏ธ Update generated pipelines:
โ Add icons to resources.
๐ Replace deprecated
aggregate
within_parallel
.๐ Support for git resource extra configurations.
๐ง This allows adding configurations to all git resource types. The extra
๐ง configurations can be specified underpipeline.git.config
. Common
๐ง configurations that are expected to be utilized would becheck_every
andwebhook_token
, but any value specified on
๐ป https://concourse-ci.org/resources.html could be used (with the exception
ofname
andtype
).๐ Support for an upcoming
generic
Genesis Kit.๐ Bug Fixes
Prevent new_enough helper from exiting on false
๐ Error if create-env deploy uses invalid options
In particular, specifying --dry-run on a create-env, has no effect. It
actually changes the target, which can be destructive and allowing this
๐ option gives users a false sense of security. Options --yes, --fix and
๐ --recreate are also considered invalid forgenesis deploy
when deploying
a create-env.