All Versions
Latest Version
Avg Release Cycle
11 days
Latest Release
1232 days ago

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 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

    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 also params.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 manual genesis 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 a jq 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.

  • 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 use GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL instead
      of requiring the .gitconfig to have those values set. For the initial
      commit, GIT_COMMITTER_NAME and GIT_COMMITTER_EMAIL will be used, but
      will default to the equivalent GIT_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 in ci.yml
  • v2.7.17 Changes

    October 21, 2020

    Pipeline Improvements

    โž• Added pipeline.task.privilege in ci.yml, which allows you to provide a
    ๐Ÿš€ list of evironments that will run the bosh_deploy task in privileged mode
    ๐Ÿš€ (which may be needed when deploying proto-BOSH environments). See
    ๐Ÿ‘ท for more

    ๐Ÿ‘ 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 block in ci.yml, requires a file key to specify
    which file contains the kit.version entry. More details can be found in
    ๐Ÿ“„ docs/

    โž• Adds pipeline.git.commits map entry to ci.yml, that can contain
    user_name and user_email keys for specifying the user name and email
    ๐Ÿš€ when the pipeline makes commits to the deployment repo. Defaults to
    'Concourse Bot' and 'concourse@pipeline' respectively.

    โž• Add a safe "dry-run" on notifications to identify what changes will be
    ๐Ÿš€ deployed on the pending environment. This is different that bosh 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 are VAULT_AUTH_TOKEN for token
    ๐Ÿ‘‰ authentication, VAULT_USERNAME and VAULT_PASSWORD for userpass
    authentication, and VAULT_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)


    โšก๏ธ 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
  • 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.
  • 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, and grouped.

    Both parallel and grouped 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 defaultinline`
    maintains the original behaviour of notification preceeding the manual

    ๐Ÿ› 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

    โช 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 as genesis 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 with in_parallel.

    ๐Ÿ‘Œ Support for git resource extra configurations.

    ๐Ÿ”ง This allows adding configurations to all git resource types. The extra
    ๐Ÿ”ง configurations can be specified under pipeline.git.config. Common
    ๐Ÿ”ง configurations that are expected to be utilized would be check_every
    and webhook_token, but any value specified on
    ๐Ÿ‘ป could be used (with the exception
    of name and type).

    ๐Ÿ‘Œ 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 for genesis deploy when deploying
    a create-env.