Set ends up with additional empty elements
eddycharly opened this issue · 4 comments
When using a schema.Set
, i end up with additional elements in the set (on update) with all fields initialized with default values.
Let's say i have a configuration like this (instance_group
is the set here):
resource "cluster" "cluster" {
instance_group {
name = "compute-0"
// ...
}
instance_group {
name = "compute-1"
// ...
}
}
And i want to change it to something like this:
resource "cluster" "cluster" {
instance_group {
name = "node-0"
// ...
}
instance_group {
name = "node-1"
// ...
}
}
When i apply this change, the set contains node-0
and node-1
instance groups plus one empty element. I would expect the set to contain only node-0
and node-1
.
SDK version
github.com/hashicorp/terraform-plugin-sdk/v2 v2.3.0
Expected Behavior
Given the example above i would have expected to receive only node-0
and node-1
in the set elements when update function is invoked.
Actual Behavior
Update function receives node-0
, node-1
and an additional empty element in the set elements.
Not sure it this behavior is expected, it looks a bit unnatural to me but maybe i'm missing something.
Correct me if i'm wrong, there's nothing bad returning a set when terraform calls the read function to refresh the state ?
Thanks, it looks the same indeed.
Is there a known workaround ? So many plugins rely on sets, i can't believe this issue went unnoticed.