This network_interface_physical resource type is not idempotent. A terraform apply will recreate all network_interface_physical resources. But the kicker is when it tries to do it on interfaces attached to deployed machines it fails and terraform blows up so that resources later in the terraform tf files do not get appplied. End up with a half applied terraform :-( It is understandable that modifying interfaces on deployed machines is not allowed. However, this resource should not be recreating anything that has not changed.
Request
network_interface_physical resource to be idempotent and behave as one would expect of a terraform resource
If the machine datasource included the machine status; Ready, Deployed etc we could maybe work around this issue by checking machine status and conditionally applying the network_interface_physical resource.
Terraform v1.9.6-dev on linux_amd64
terraform { required_providers { maas = { source = "maas/maas" version = "~>2.0" } } }
--
This network_interface_physical resource type is not idempotent. A terraform apply will recreate all network_interface_physical resources. But the kicker is when it tries to do it on interfaces attached to deployed machines it fails and terraform blows up so that resources later in the terraform tf files do not get appplied. End up with a half applied terraform :-( It is understandable that modifying interfaces on deployed machines is not allowed. However, this resource should not be recreating anything that has not changed.
Request network_interface_physical resource to be idempotent and behave as one would expect of a terraform resource
If the machine datasource included the machine status; Ready, Deployed etc we could maybe work around this issue by checking machine status and conditionally applying the network_interface_physical resource.