When creating virtual server resources with a mask set to "0.0.0.0" this is converted to "any" on the bigip appliances while "0.0.0.0" is what is saved within state. As a result, any time you run any subsequent plans you will always get drift showing up for virtual server resources:
~ mask = "any" -> "0.0.0.0"
Steps To Reproduce
Steps to reproduce the behavior:
Define a virtual server resource using the bigip terraform provider with a mask set to "0.0.0.0"
Deploy this virtual server via Terraform
Run "terraform plan" against the above virtual server and note the drift:
~ mask = "any" -> "0.0.0.0"
Expected Behavior
When defining a mask of "0.0.0.0" on a virtual server this should be converted to "any" when added to state. Alternatively, add a means to pass "any" as a mask value as opposed to just "0.0.0.0" to match what is ultimately ending up on bigip appliances. Regardless, this would result in cleaning up plan output substantially.
Actual Behavior
Passing a mask value of "0.0.0.0" is accepted as it is indeed a valid mask and stored in state. Unfortunately, this value is converted to "any" on an appliance. "Any" and "0.0.0.0" are the same thing as far as a bigip appliance is concerned but the resulting conversion results in drift between what is within Terraform state vs what is within an appliance's configuration.
Environment
Summary
When creating virtual server resources with a mask set to "0.0.0.0" this is converted to "any" on the bigip appliances while "0.0.0.0" is what is saved within state. As a result, any time you run any subsequent plans you will always get drift showing up for virtual server resources:
Steps To Reproduce
Steps to reproduce the behavior:
Define a virtual server resource using the bigip terraform provider with a mask set to "0.0.0.0"
Deploy this virtual server via Terraform
Run "terraform plan" against the above virtual server and note the drift:
Expected Behavior
When defining a mask of "0.0.0.0" on a virtual server this should be converted to "any" when added to state. Alternatively, add a means to pass "any" as a mask value as opposed to just "0.0.0.0" to match what is ultimately ending up on bigip appliances. Regardless, this would result in cleaning up plan output substantially.
Actual Behavior
Passing a mask value of "0.0.0.0" is accepted as it is indeed a valid mask and stored in state. Unfortunately, this value is converted to "any" on an appliance. "Any" and "0.0.0.0" are the same thing as far as a bigip appliance is concerned but the resulting conversion results in drift between what is within Terraform state vs what is within an appliance's configuration.