All Versions
21
Latest Version
Avg Release Cycle
11 days
Latest Release
1236 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 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 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
    👷 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 a file key to specify
    which file contains the kit.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 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)

    💥 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
  • 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
    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 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
    👻 https://concourse-ci.org/resources.html 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.