generate ip_allocation_policy block dynamically
The ip_allocation_policy block allows 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.
Arguably the correct fix here is to choose one or other to support but we can't do that without breaking backwards compatibility.
Closes #24 (closed)