Releases: hashicorp/terraform-google-consul
v0.5.0
Modules affected
consul-cluster
[BACKWARDS INCOMPATIBLE]install-consul
[BACKWARDS INCOMPATIBLE]install-dnsmasq
[BACKWARDS INCOMPATIBLE]run-consul
[BACKWARDS INCOMPATIBLE]
Description
This is a major release that adds support for rolling cluster updates and Consul 1.8.3. It also includes the following changes:
-
Updated this repo to work with Consul 1.8.3:
install-consul
now supports installing and configuring Consul 1.8.3.run-consul
now supports launching Consul 1.8.3.- We have switched from
supervisord
tosystemd
to launch and manage the Consul process. This also supports gracefully leaving the Consul cluster by executing theconsul leave
command.
-
Updated this repo to work with Google Provider 3.38.0:
- The
consul-cluster
module no longer uses thetemplate_file
workaround and two separategoogle_compute_instance_template
resources. It instead takes advantage of the Terraformdynamic
block feature to create the access config dynamically. - The examples have been updated to use Terraform 0.12.28 and Packer 1.6.2.
- The
-
Dropped Dep in favor of Go modules.
Support for Ubuntu 16.04 deprecated. Note that this means the modules are no longer compatible with Ubuntu 16.04. Starting from this release, you must use Ubuntu 18.04 with these modules.
Migration Guide
Steps
- Clone this repo to a new directory. Note: Don't overwrite the directory with your existing deployment!
- Build a new image using the Packer template (
examples/consul-image
) and update your Terraform variables (consul_server_source_image
andconsul_client_source_image
). - Deploy the root example using the same cluster tag name values as your existing cluster. I.e. be sure to set
var.consul_client_cluster_tag_name
andvar.consul_server_cluster_tag_name
to the same values as your existing cluster. - The Consul nodes will automatically propagate the data once they discover each other.
- Once the new nodes are healthy you can safely terminate the old cluster nodes using the Terraform state file in the old directory.
For more information please refer to the [Upgrading Consul guide[(https://www.consul.io/docs/upgrading).
Notes
- We only recommend upgrading to this release if you're also ready to upgrade to Consul 1.8.x. We are no longer testing this repo with older versions.
- We recommend building a new AMI for Consul and deploying it with the new versions of the Terraform modules.
Special thanks
Special thanks to @arvindamirtaa and @naiduarvind for their contributions!
Related links
v0.4.0
Modules affected
consul-cluster
[BACKWARDS INCOMPATIBLE]
Description
All the modules are now terraform 0.12.0 compatible. Note that this means the modules are no longer compatible with terraform 0.11 and under. Starting this release, you must use terraform 0.12.0 or greater to use this module.
All the module variables have been updated to use concrete types based on the new type system introduced in terraform 0.12.0. You can learn more about the types in the official documentation.
Note that as part of this, we switched to using null
to indicate unset values when passing them through to resources. If you were previously using a 0 value (""
for strings and 0
for numbers), review the module variables.tf
file to double check if the 0 value has been converted to a null
.
Related links
0.3.2
v0.3.1
v0.3.0
#28: We now expose a required variable gcp_project_id
and an optional variable network_project_id
so that you can explicitly set the GCP project used for the Consul cluster and the network-related resources it uses (such as firewall rules).
This is useful in the case where your environment's default GCP project may different from the GCP project in which you want to launch a Consul cluster.
v0.2.1
v0.2.0
-
#26: Consul now launches a cluster in a Regional Managed Instance Group with nodes spread across several Zones in a given Region. Previously, nodes were concentrated in a single Zone.
-
#26: Fixes an issue where users could not specify the root disk type and size for "private" clusters.
-
#26: Update to the latest version of Consul (v1.2.2)
-
#26: Enables access to the cluster via 0.0.0.0/0 by default (along with a hearty warning)
-
#25: Fix a bunch of broken links throughout the repo.
v0.1.0
#20: The Consul datacenter configuration property is now set to the GCP region, not the GCP zone. This change will work for both single-zone and multi-zonal Instance Groups, however because it will change the configuration of existing Consul deployments, this represents a backward-incompatible change.
Special thanks to @darkslategrey for the contribution!
v0.0.4
#24: Add the following new variables to the consul-cluster
module:
service_account_email
: the service account email address to be used for the Instancesstorage_access_scope
: the specific GCP scope you wish to set on the Instances with respect to Google Cloud Storage permissionsservice_account_scopes
: a list of zero or more GCP scopes you wish to add to the Instances
Special thanks to @GNewbury1 for the contribution!
v0.0.3
- #5: We now support running Consul in either a network or a specific subnetwork.
- #10: The
consul
user now creates a home directory by default, and a proper value for the$HOME
env var is passed to the Consul process. - #11: Add an optional encryption key to the Consul config.
- #12: Support Terraform 11 with updated output expressions.
- #13: Fix typo in resource name
- #15: Various improvements, including upgrading to Consul v1.1.0 as the default version
Amazingly, all this is fully backwards-compatible so we issue an incremental release, not a major release.