ip_allocation_policy is invalid
The ip_allocation_policy
block-related variables in this module allow both secondary range names and IPV4 CIDR blocks to be specified. This causes the Google provider to be unhappy and complain even if one or other is set to the blank string. FWIW, the official terraform module fixes this by only supporting named ranges.
Unfortunately we need to support both to allow backward compatibility.
There is another bug which masks this, we default the variables to null
and not the empty string. We get away with this right up to the point where we want to update an old cluster (such as the GitLab one) where this "block of nulls" forces a re-creation since the null
appears to be interpreted as "whatever is created by default" and not "whatever is default".
The correct default values from a typing PoV are the empty string. Update the ip_allocation_policy to be dynamic based on which of ..._secondary_range_name
or ..._ipv4_cidr_block
are actually set.