Skip to content

v6.0

Compare
Choose a tag to compare
@dsabeti dsabeti released this 12 Mar 18:35

Updates

  • bbl 6. The latest version of bbl deprecates several commands and flags. You can see the full list in the bbl release notes, but the most impactful to these tasks is the removal of create-lbs.

  • Reversion to bbl-state over env-repo. In order to accommodate customizations provided to bbl -- for example, custom terraform templates, scripts for deploying customized BOSH directors, and ops-files for overriding defaults in the cloud-config -- we've redesigned the bbl-up task to include two primary inputs: bbl-state and bbl-config.

    • bbl-state serves the role that env-repo (and bbl-state in versions prior to v5) have served. It's where bbl leaves all state about what it has created, and how.
    • bbl-config is an input for housing all customizations that the user wants to pass through to bbl. See below for more specific information.
    • Likewise, the output of the bbl-up task has been renamed to updated-bbl-state.

    The goal for splitting these two inputs is to separate customizations from state. For example, if you were to run bbl destroy outside of your pipeline, the information in bbl-config should still exist and you'd be able to re-run bbl up in your pipeline. Likewise, you can write a bbl-config customization, and then apply it to multiple environments.
    As a result of this change, you'll need to change env-repo to bbl-state in all of your tasks.

  • Removed params. Now that the tasks expose bbl's interface to users directly, we've removed the following parameters, which were merely wrappers to bbl features:

    • BBL_EXTRA_FLAGS
    • OPS_FILES
    • IS_BOSH_LITE

bbl-config

If you want to customize your setup, you can provide the following overrides:

  • create-director-override.sh and delete-director-override.sh are scripts that you can provide in the top-level directory of bbl-config. If present, bbl will ignore its default scripts for creating/deleting the director and use your override instead.
  • create-jumpbox-override.sh and delete-jumpbox-override.sh are scripts that you can provide in the top-level directory of bbl-config. If present, bbl will ignore its default scripts for creating/deleting the jumpbox and use your override instead.
  • cloud-config/*.yml are ops-files that will be applied when bbl runs the bosh update-cloud-config command against the BOSH director. If you need to create custom vm extensions, for example, this would be a good way to achieve that.
  • terraform/*.tf are terraform templates that will included when bbl runs terraform apply.
  • vars/*.tfvars are variables that will get templated in when bbl runs terraform apply.

For example, this is how one could configure Concourse to set up a bosh-lite:

input_mapping:
  bbl-state: env-repo
  bbl-config: bosh-bootloader
params:
  BBL_STATE_DIR: bbl-state
  BBL_CONFIG_DIR: plan-patches/bosh-lite-gcp
  SKIP_LB_CREATION: true

As our bbl-config, we provide the "plan patch" from bosh-bootloader, which has most of these overrides defined.