Changelog History
Page 2
-
v2.7.13 Changes
September 14, 2020👌 Improvements
🚀 This release contains improvements to Pipeline Generation and Integration
👍 Enable Enterprise Vault support, use Safe to init
Instead of using the Vault Genesis kit, some clients need to integrate with
👍 their companies Enterprise Vault. This means supporting namespaces and
disabling strongbox, the process that Safe uses to treat multiple Vault VMs
as a single target when unsealing.⚡️ Since Safe nicely wraps up support for this, the pipelines have been updated
to use Safe to initialize connections to the Vault, making it seamless
regardless of it being Enterprise or not, v1 or v2 kv backend.🔄 Changes:
- In your
ci.yml
, underpipeline.vault
, you can specifynamespace
as
a string, andno-strongbox
as a truthy value to connect to your
enterprise vault.
0️⃣ More dynamic 'default' pipeline layout.
0️⃣ If ci.yml specifies a
default
layout, that layout will be used without
0️⃣ having to specify it, but it will expect the fly target to also bedefault
-- this is at odds with the concourselogin
addon which names the fly
target the same as the environment name.To resolve this, if you only have a single layout in your
ci.yml
file, it
0️⃣ will be considered the default, so it can be named the same as your fly
target aka concourse environment. If you have muptiple layouts, a layout
0️⃣ nameddefault
, if it exists, will be considered default to keep existing
behaviour. Otherwise, if you have multiple named layouts and you didn't
specify one in therepipe
command, it will present you with a list to
chose from. The-t|--target
command will still behave as normal.👉 Use use https instead of ssh for git in pipeliens
Some places must use https endpoints with basic auth for accessing git
repositories instead of ssh with keys. This enables that ability.🔄 Change in behaviour:
- In the
ci.yml
file, underpipeline.git
, you specifyusername
and
password
instead ofprivate_key
- If
username
andpassword
are used, the URI used will be
https://<host>/<owner>/<repo>.git
but this can be specified directly
usingpipeline.git.uri
- In your
-
v2.7.12 Changes
August 06, 2020🐛 Bug Fixes
- 🛠 Fixes missing bosh config error in pipeline deployments
-
v2.7.11 Changes
July 29, 2020👌 Improvements
➕ Add better kit id to exodus data
🚀 As more things use the previously deployed kit to determine what needs
⬆️ to be upgraded, it is important to have this information correctly
identified. Prior to this change, dev kits reported the name as dev and
✅ the version as latest (from the env yaml file)This change uses the kit name and version located in the kit.yml file
directly, and also addskit_is_dev
to record that a dev kit is being
👉 used.➕ Added features to exodus export, info script
🔋 Features are now stored in exodus on successful deploy, and reported by
the info command.💥 BREAKING CHANGE Hooks now use
CREDHUB_*
environment variables to
🚀 connect to credhub. This required your BOSH to be deployed with
⬆️ bosh-genesis-kit v1.15.1 or later - please upgrade your bosh prior to
🚀 deploying any kits that use Credhub (cf, cf-app-autoscaler)Decouple vault/bosh with loading of env
Not all genesis commands need vault or bosh, but it was being
proactively connected any time the env was loaded.Kit Development Improvements
➕ Add ability to require connections to kit hooks
Normally, hook don't need bosh or vault, but if they do, the kit can
specify which hook needs vault or bosh (or in the future credhub) so
the connection can be validated before the hooks are run (similar to the
required_configs behaviour)👍 Allow feature hook to access the same environment variables and helper
script that the other hooks use.🐛 Bug Fixes
🔧 When safe was not configured with any targets, the error that occurred in
Genesis was confusing and not explanatory. It will now plainly explain that
it is can't read.saferc
and therefore not select the desired vault.🛠 Fixed some BOSH config requirements that were problematic for some edge cases
👌 Improve hook standard error handling.
Previous improvements stopped STDERR from being output directly to
⏪ screen. This has been reverted so that STDERR would be output directly to
the terminal in real time.Resolve recursion issue with feature hook checking if bosh create-env is
specified, which needs to check features, which runs feature hook...Prevent double check_prereq calls
Minimum Dependencies
- bosh: v5.0.1
- spruce: v1.26.0
-
v2.7.10 Changes
June 25, 2020👌 Improvements
The
--cloud-config|--cc
and--runtime-config|--rc
have been streamlined
into a single--config|-c
with backwards compatibility to the existing
-c
(for cloud config). You can now specify named configs as such:-c [type[@name]=]/path/to/config.yml
If type is not given, it is assumed cloud, and likewise if name is not
0️⃣ given, it is assumed to be the unnameddefault
config for the given
type.-c
can be specified multiple times to specify multiple configs. It
does not error check that you haven't specified the same type and name
multiple times, so that's on you to ensure you're not doing that.🐛 Bug Fixes
- The overly agressive downloading of cloud config for most activities has
🚀 been reduced to only deployment and check, as was the previous behaviour.
🚀 Likewise, the downloading of cloud config is not attempted when deploying a
🚀 proto-bosh (or anything else that uses create-env for deployment)
- The overly agressive downloading of cloud config for most activities has
-
v2.7.9 Changes
June 23, 2020👌 Improvements
➕ Add new secret type of UUID
0️⃣ In kit.yml, you can now generate UUIDs of all types. By default, you just
need to specify the type 'uuid' for a path and key (similar to how 'random'
works. The full syntax is:🛠
uuid [v1|time|v3|md5|v4|random|v5|sha1] [namespace (<UUID>|dns|url|oid|x500)] [name <string>] [fixed]
With no arguments, a v4/random UUID is generated. If v3/md5 or v5/sha1 is
🏗 specified, it takes a name and optional namespace argument to build the
hash, which will always generate the same value for the same input
arguments, unlike the other versions. The name can be any string, and the
namespace can be the pre-defined namespaces of dns, url, oid or x500, or any
arbitrary UUID string.👍 Expanded config support. Kits can now specify which configs are required
and for what hook scripts. This allows for custom cloud and runtime configs
to be validated and used for information. Furthermore, cloud config can now
be used during thenew
script to check if the required keys are present or
even propose values that can be added.💅 This is done using one of the following two styles:
--- # kit.yml required_configs style 1 required_configs: - cloud - runtime - runtime@thiskit --- # kit.yml required configs style 2 required_configs: cloud: true runtime: [blueprint new] funky: false
💅 In the first style, all hooks will require the listed configurations. In
💅 the second style,cloud
config will always be required,runtime
will
🖨 only be required when processingblueprint
andnew
hooks, andfunky
will never be required.0️⃣ By default, if no
required_configs
block is specified, onlycloud
config
🖨 is requred when processingblueprint
, and no other hooks. This is
effectively the previous behaviour.Add
move_secrets_to_credhub
bash helper functionmove_secrets_to_credhub src_path:key dst_path
🚚 This will move a secret under the environments Vault area to the
environments credhub area. Do not include the secrets base before the
🚀src_path
, or the bosh env/deployment prefix before thedst_path
.Derived features are features that are artificially created by the
hooks/features script to facilitate absent of other features or a specific
👍 combination of features, so that secrets can be better specified (ie a
secret that only exists if a feature ISN'T specified) They must start with
a+
, are not checked with the validation features, and cannot be
explicitly stated in an environment file.🐛 Bug Fixes
🚀 Kit releases that preceed the current version by 30 or more releases are no
longer reported as non-existant.✅ Compiled kits no longer contain the spec tests and kit devtools, as they
aren't needed to use the kit.👌 Improved details given when hooks fail, specifically when
blueprint
fails
🔀 to determine which manifest fragments are requied for mergingDon't populate missing
maybe
paramsWhen a parameter is conditionally available, the
maybe:
parameter
dereference would prevent errors if the parameter was missing, but it would
leave an empty string as the value. This changes that behaviour to drop the
key or the array element that was being set to the missing parameter. -
v2.7.9-rc4 Changes
June 16, 2020🚀 Minor incremental release candidate to rc3:
🐛 Bug Fixes
- Missing setting alternate bosh and credhub envs on create - 'config' config should be 'cloud' config for default required configs
-
v2.7.9-rc3 Changes
June 16, 2020🚀 Release Candidate v2.7.9-rc3
✅ rc1 and rc2 were internal testing only
👌 Improvements
👍 Expanded config support. Kits can now specify which configs are required
and for what hook scripts. This allows for custom cloud and runtime configs
to be validated and used for information. Furthermore, cloud config can now
be used during thenew
script to check if the required keys are present or
even propose values that can be added.💅 This is done using one of the following two styles:
--- # kit.yml required_configs style 1 required_configs: - cloud - runtime - runtime@thiskit --- # kit.yml required configs style 2 required_configs: cloud: true runtime: [blueprint new] funky: false
💅 In the first style, all hooks will require the listed configurations. In
💅 the second style,cloud
config will always be required,runtime
will
🖨 only be required when processingblueprint
andnew
hooks, andfunky
will never be required.0️⃣ By default, if no
required_configs
block is specified, onlycloud
config
🖨 is requred when processingblueprint
, and no other hooks. This is
effectively the previous behaviour.Added
move_secrets_to_credhub
bash helper functionmove_secrets_to_credhub src_path:key dst_path
🚚 This will move a secret under the environments Vault area to the
environments credhub area. Do not include the secrets base before the
🚀src_path
, or the bosh env/deployment prefix before thedst_path
.➕ Added
ccq
andrcq
helper functions that allow jq queries directly on
provided cloud config and runtime config structures.🐛 Bug Fixes
🚀 Kit releases that preceed the current version by 30 or more releases are no
longer reported as non-existant.✅ Compiled kits no longer contain the spec tests and kit devtools, as they
aren't needed to use the kit.👌 Improved details given when hooks fail, specifically when
blueprint
fails
🔀 to determine which manifest fragments are requied for mergingDon't populate missing
maybe
paramsWhen a parameter is conditionally available, the
maybe:
parameter
dereference would prevent errors if the parameter was missing, but it would
leave an empty string as the value. This changes that behaviour to drop the
key or the array element that was being set to the missing parameter. -
v2.7.8 Changes
May 21, 2020💥 Breaking Changes
No longer set $HTTPS_PROXY to $BOSH_ALL_PROXY
This broke under two conditions:
If you wanted to use BOSH via a proxy, but your vault was on your
home network👍 If you used a protocol of ssh+socks5, which is not supported by
HTTPS_PROXY.Instead, if you are setting BOSH_ALL_PROXY, you must set HTTPS_PROXY or
alternatively SAFE_ALL_PROXY instead of relying on Genesis to do that
for you.👌 Improvements
👍 Now supports extraction of bosh variables and credhub secrets into exodus
👍 data for cross-kit integration and addon support.✅ When testing availability of the vault, it specifies the alias and url of
the vault instead of specifying "selected vault"🚀 Clarify usage of --recreate and --fix options for deploy
🐛 Bug Fixes
⏱ Universal support for timeout detection when attempting to connect to remote
🛠 BOSH and Vault, with better feedback in case of timeout (Fixes #412)➕ Adds support for multiline provided secrets rotation and addition (Fixes #413)
🛠 Fix typo in rotate-secrets help (Fixes #414)
🚀 Deployments using legacy mode for secrets providers now get the vault
connection validated prior to using it🛠 Fixed bug where non-standard secrets mount would report the vault was
uninitialized.Kit Authoring Improvements
Kit manifests can now use the same environment variables used by the hooks
script, via spruce, to perform actions such as:
(( vault $GENESIS_EXODUS_MOUNT params.cf_deployment_name ":admin_password" ))
➕ Add features hook
🖨 While blueprint hook has the ability to make decisions on when a feature
is NOT present, or on specific combinations of features, that ability is
beyond other interactions.We used to have a subkit hook which would allow you to create derived
🔋 features so that default features and not-features could show up as
explicit features, which allows things like secrets management to
determine dependencies for these. (ie lack of a features can result in a
0️⃣not-feature
derived feature to add secrets for a default state)This has been re-realized as a
features
hook, which given a list of
features in the$GENESIS_REQUESTED_FEATURES
value, can provide a
derived list of features, which will be used by internal genesis for the
environment's features list, which in turn will be used to populate
$GENESIS_REQUESTED_FEATURES
for other hooks. -
v2.7.8-rc1 Changes
May 07, 2020👌 Improvements
👍 Now supports extraction of bosh variables and credhub secrets into exodus
👍 data for cross-kit integration and addon support.✅ When testing availability of the vault, it specifies the alias and url of
the vault instead of specifying "selected vault"🐛 Bug Fixes
⏱ Universal support for timeout detection when attempting to connect to remote
🛠 BOSH and Vault, with better feedback in case of timeout (Fixes #412)➕ Adds support for multiline provided secrets rotation and addition (Fixes #413)
🛠 Fix typo in rotate-secrets help (Fixes #414)
🚀 Deployments using legacy mode for secrets providers now get the vault
connection validated prior to using it🛠 Fixed bug where non-standard secrets mount would report the vault was
uninitialized. -
v2.7.7 Changes
April 23, 2020👌 Improvements
Soften secrets validation assessment
⚠ This commit lowers the validation assessment from error to warning on the
following:X509:
- CN doesn't match kit's expected CN
- SAN doesn't match kit's expected SAN, or if CN matches a diffent SAN
- Usage doesn't match kit's expected usage.
dhparams, rsa and ssh:
- size doesn't match kit's expectation
random string:
- size doesn't match kits expection
- characters used contain invalid characters
➕ Added warnings for when certificate is expected to expire withing the
next 30 days.Ensure genesis.env is present, warn on params.env
🗄 2.6.13 deprecated
params.env
, and for a brief time printed a warning
to that effect until it was determined that it was too noisy.🚚 2.7.0-2.7.6 removed the usage of
params.env
and enforced the migration
of params.env to genesis.env, and kits declared with minimum version of
2.7.0 were expected to usegenesis.env
where they before used
params.env
.⚠ After pushback, we have decided to soften the stance, and print warnings
🔖 when the environment uses a kit with genesis_version_min of 2.7.0 or
higher. As these kits require genesis.env to be set, we do so as part
🔀 of the manifest merge.🐛 Bug Fixes
🛠 Fix kit version lookup on unsaved new environments
Fix expanded path in GENESIS_CALLBACK_BIN
If the genesis binary invoked involved a symlink in the path, then the
🛠 binary reference would have the full path. This fixes that.