Consul-Terraform-Sync v0.2.0

Hello all,

We’ve just released Consul-Terraform-Sync v0.2.0. Please checkout our blog post to read more about this release!

In this release we have a number of features, fixes, and breaking changes. The CHANGELOG is listed below with more details.

Notable features in this release:

  • Support for Terraform v0.15. Users now have the option to configure CTS to download and use Terraform v0.15. Please note that there are a couple breaking changes to consider before upgrading which are summarized below.

  • Support for tasks to execute only on service registration changes. Users now have the option to configure a task with a Catalog-Service Condition to specify which services’ registration and deregistration will trigger a task to execute in addition to the default configuration which executes on service instance changes.

Corresponding documentation updates are now live on the Consul website.

As always, please test in an isolated environment before upgrading. If you experience issues with CTS, you can report them on the CTS GitHub issue tracker or post to the CTS Discuss Forum for any general questions.

Thanks!

Consul API Tooling Team

CHANGELOG

BREAKING CHANGES:

  • Change task source for local modules to expect path based on directory where CTS is run instead of task directory. [GH-264, GH-283]

  • Change the empty namespace value for var.services from null to empty string "". This effects CTS when used with Consul OSS, and no changes when used with Consul Enterprise where the default namespace value is "default". [GH-303]

FEATURES:

  • Add support for Terraform v0.15 [GH-277]

  • Add support to only trigger a task on service registration (on first instance of a service registering) or on service deregistration (on last instance of a service deregistering) [GH-307]

  • Add support for filtering service nodes using a filter expression. Deprecate tag in favor of filter, where tag will be removed in CTS v0.4.0. [GH-295]

  • Execute Terraform validate after tasks are initialized [GH-306]

BUG FIXES:

  • Add support for relative paths for task variable files [GH-279, GH-288]

  • Fix Terraform installation issue when path is set to an empty string [GH-212, GH-297]

  • Fix missing event when task was enabled and executed using the CLI enable sub command [GH-318, GH-319]

TERRAFORM 0.15 UPGRADE NOTES

Module authors: We identified two breaking changes in v0.15 that may impact your module. Please update your module if it uses the below removed features or update your module’s documented Terraform compatibility to be <0.15

  • list and map functions were deprecated in v0.12 and removed in v0.15. Please replace these with the tolist([…]) and tomap({…}) functions respectively. (#26818)

  • Declaring variables with quoted type strings was deprecated previously and will error in v0.15. Please replace these with types e.g. use map(string) instead of "map". (#27852)

Operators configuring and running CTS:

  • Please confirm that the modules configured at the CTS task source are v0.15 compatible. See above bullets to understand how a module may not be v0.15 compatible.

  • If you have configured Google Cloud Storage (gcs) as your Terraform backend, the path config was deprecated in v0.11 and removed in v0.15. Please use the prefix config instead. (#26841)

  • Terraform has made some updates when running on Windows that do not present any technical hurdles preventing users from running Terraform (and therefore CTS) on earlier versions of Windows. However, we strongly encourage migrating to a newer version of Windows since the Terraform team will only test future releases on up-to-date Windows 10 and make no guarantees on supporting older versions.

For more details on the upgrade notes summarized above, please see the Terraform 0.15 upgrade notes.