Concourse v6.7.2 Release Notes

Release Date: 2020-11-30 // 3 months ago
  • ๐Ÿš€ This release focuses on optimizations and bug fixes.

    ๐Ÿฑ โœˆ๏ธ Features

    ๐Ÿฑ Optionally skip resource checking for put-only resources. (#6271) @evanchaoli ๐Ÿ”—
    Resource checking for put resources can be optionally turned off by using the feature flag CONCOURSE_ENABLE_SKIP_CHECKING_NOT_IN_USE_RESOURCES on the web command. Only resources which are used as inputs to a job will be checked as a result. This can lower the resource checking load on some instances. This feature was originally added in 6.0.0 and reverted in 6.6.0 because of two side effects: 1) put-only resources will no longer show version history in the UI, and 2) custom resource types of put-only resources will no longer be automatically checked. Please note that these side effects still exist at the moment.

    โž• Add index to improve pipeline and build deletion (#6273) @vito ๐Ÿ”—
    ๐Ÿ›  Pipeline deletion had become slow and even caused some deadlocks in the database. This migration fixes those issues.

    ๐Ÿฑ Ensure pipelines contain at least one job (#6310) @taylorsilva ๐Ÿ”—
    ๐Ÿ”ง Pipelines are now validated to ensure that they contain at least one job. Pipeline configurations with no jobs will be rejected.

    ๐Ÿฑ ๐Ÿž Bug Fixes

    โœ‚ Remove any existing guardian assets on worker startup (#6257) @taylorsilva ๐Ÿ”—
    ๐Ÿš€ The guardian runtime executable contains some other executables as dependencies, such as runc. Interestingly, it writes them to disk (/var/gdn/assets) at startup, and proceeds to run them from there. If the dependencies already exist from a previous version of guardian then they're not overwritten preventing the updated dependencies from being used. The worker will now clear out any preexisting guardian assets every time it starts. This fixes in-place upgrade scenarios on BOSH deployments where guardian kept using older versions of runc.

    ๐Ÿ— Abort a rerun build if input version is gone (#6265) @xtremerui ๐Ÿ”—
    ๐Ÿ— Sometimes a rerun of a build can get stuck in the pending state forever. This can happen if the resource version used for the original build no longer exists. For example, an older commit disappears when a user force pushes to a git repository. Builds will now abort instead of getting stuck when the resource version no longer exists.

    ๐Ÿ›  Fix regression preventing the use of nested fields with fly set-pipeline --var (#6280) @aoldershaw ๐Ÿ”—

    • A regression was introduced in 6.5.0 that prevented the use of nested fields when setting a pipeline variable via fly set-pipeline --var
      • For instance, pre 6.5.0, fly set-pipeline --var foo.bar=123 --var foo.baz=456 would create the variable foo with value {bar: 123, baz: 456} (that can be referenced in the pipeline config as ((foo.bar)), ((foo.baz)))
      • In 6.5.x/6.6.x, the same command would create variables "foo.bar" = 123 and "foo.baz" = 456 (that would have to be referenced in the pipeline config as (("foo.bar")) and (("foo.baz")), respectively)

      - If you want to set a variable with a . in it, you can now quote the flag: e.g. fly set-pipeline --var '"foo.bar"=123' (note that this requires quoting the entire flag in '...' to avoid shell expansion)

    ๐Ÿฑ Only increment checks-enqueued when a check is created. (#6282) @evanchaoli ๐Ÿ”—
    There was a metrics bug where checks-enqueued would get incremented even if a check already exists. This gave it a higher value than checks that have just been created.

    ๐Ÿฑ Prevent set_pipeline runtime error (#6307) @evanchaoli ๐Ÿ”—
    ๐Ÿ”ง set_pipeline of a YML pipeline configuration file with no jobs: or resources: no longer causes a runtime error: invalid memory address or nil pointer dereference. This is a backport #6116.

    ๐Ÿฑ ๐Ÿคท Miscellaneous

    • โšก๏ธ Optimize fly tests (#6299) @muntac ๐Ÿ”—

Previous changes from v6.7.1

  • ๐Ÿš€ This release bumps the docker-image resource type to v1.5.1 which contains a fix for the HEAD => GET request flow.

    NOTE: the docker-image resource type does not support configuring credentials in registry_mirror. This issue is somewhat fundamental, as the the docker CLI which the resource type uses doesn't support it either. If your registry mirror requires credentials, we recommend using the registry-image resource type instead - it's much more efficient, and it will replace the docker-image resource type entirely once it's ready.