Im facing an issue with deploying my Dataproc cluster within GCP, im using the last version of google provider 5.17.0 but it looks that internal_ip_only support just True as a value even within the documentation mentioned that the default value is False and also forcing it with False value.
every time i run the apply or plan command i got that my cluster will be recreated
terraform versions : 1.0.3 and 1.7.4
google provider : 5.17.0
Changing the internal_ip_only setting from true to false in the Terraform configuration for a GCP Dataproc cluster will force Terraform to recreate the cluster due to the immutable nature of that setting. This behavior is expected with certain fields in managed services like GCP’s Dataproc and is typically documented in the Terraform provider’s documentation. If recreation is a concern, you’ll need to manually manage the transition to avoid downtime.
yah the recreation behavior is expected but internal_ip_only still have a True value even i configured my terraform with False, so my question is why GCP Dataproc doesn’t support False value for internal_ip_only from terraform.
The internal_ip_only setting not accepting False via Terraform for GCP Dataproc might be due to limitations in the Terraform Google Provider, GCP project or network policies, or a mismatch in API expectations. Ensure you’re using the latest version of the Terraform provider and check GCP settings and Terraform documentation for any known issues or restrictions.
It works with gcloud command line but it still needs to work with terraform!!
when I enable debug I see following in log in regards to internal_ip_only flag which seem to confirm that flag should be False but somehow internal “computing of values” makes it True somewhere?
[WARN] Provider “Terraform Registry” produced an invalid plan for google_dataproc_cluster.my-cluster, but we are tolerating it because it is using the legacy plugin SDK.
** The following problems may be the cause of any confusing errors from downstream operations:**
** - .graceful_decommission_timeout: planned value cty.StringVal(“0s”) for a non-computed attribute**
** - .cluster_config[0].gce_cluster_config[0].internal_ip_only: planned value cty.False for a non-computed attribute**
terraform plan -var-file=variables.tfvars
â•·
│ Error: Unsupported argument
│
│ on main.tf line 11, in resource “google_dataproc_cluster” “mycluster”:
│ 11: internal_ip_only = true
│
│ An argument named “internal_ip_only” is not expected here.
I need only internal_ip =true but not able to set …
This is still an issue and is not expected/definitely a bug regardless of where. No value for internal_ip_only is valid from terraform (excluding it or setting to null passes false on plan) and you cannot get past it forcing a recreate. As the other user mentioned, it works through gcloud and it needs to be work here.