I currently have a consul cluster per environment and I use consul as the backing store for Terraform.
Often, after certain internal milestones/checkpoints, I change the consul cluster that Terraform is configured to use.
When this happens, the migration message output from Terraform confuses me.
For example, assume:
- I have
consul_cluster_a
andconsul_cluster_b
. - the current OSS Terraform workspace uses
consul_cluster_a
as the backing store - after a while, I have to change the backing store from
consul_cluster_a
toconsul_cluster_b
- Then I see the following migration message:
Do you want to migrate all workspaces to "consul"?
Both the existing "consul" backend and the newly configured "consul" backend
support workspaces. When migrating between backends, Terraform will copy
all workspaces (with the same names). THIS WILL OVERWRITE any conflicting
states in the destination.
Terraform initialization doesn't currently migrate only select workspaces.
If you want to migrate a select number of workspaces, you must manually
pull and push those states.
If you answer "yes", Terraform will migrate all states. If you answer
"no", Terraform will abort.
This is very confusing, to me, as I have no idea which consul_cluster_a
or consul_cluster_b
is being mentioned in:
Do you want to migrate all workspaces to "consul"?
Both the existing "consul" backend and the newly configured "consul" backend
support workspaces. When migrating between backends, Terraform will copy
I would have preferred to see, something more explicit like:
Do you want to migrate all workspaces to "consul_cluster_b"?
Both the existing "consul_cluster_a" backend and the newly configured "consul_cluster_b" backend
support workspaces. When migrating between backends, Terraform will copy
My current definition block looks like this:
backend "consul" {
…
}
- Is there something I can modify to get the behavior I want?
- Is this possible at all? (If not, I’ve created a FR at : Disambiguate consul backing store names to help during migration · Issue #275 · hashicorp/terraform-provider-consul · GitHub)