Closed bnelson729 closed 3 years ago
Also happening to me as of today. Wasn't happening last week.
@bnelson729 thank you for the issue. So the good thing is the new default IOPS is now 3000k. The error is also expressing that. However you did not set the default iops but you did set provider_volume_type = "STANDARD"
which is only needed when changing dealing with IOPS. If you remove that I believe the new IOPS will be updated in your state without error since you do not have it defined in the configuration. If you still get an update in place please update the plan here.
If anyone else has the same issue and is setting provider_disk_iops, change it to:
provider_disk_iops = 3000
Or remove it and provider_volume_type = "STANDARD"
I'll update the documentation to reflect this new IOPS default.
Also, @robbiet480 this just launched today so that's why you are seeing this error. Is your configuration specific on iops?
Also, @robbiet480 this just launched today so that's why you are seeing this error. Is your configuration specific on iops?
disk_size_gb = 110
provider_disk_iops = 330
provider_volume_type = "STANDARD"
provider_encrypt_ebs_volume = true
provider_instance_size_name = "M20"
Will bump provider_disk_iops
to 3000 and report back. Thanks!
It took 4 minutes, 51 seconds to "modify" but did eventually complete. Still seeing 330 IOPS in the Atlas Console though.
Oopsies, nevermind, was looking at the wrong cluster! Seeing 3000 IOPS now. Just to confirm, there's no pricing change right?
@robbiet480 There is no change in price with this change in default IOPS.
Also, @robbiet480 are we good to close this?
For me yes, but I didn't open the issue so you may want to wait to see what @bnelson729 says?
Same happening for us today. Changing the IOPS to 3000 "fixes" the problem and changes the MongoDB cluster's IOPS from 100 to the new minimum 3000.
Did Altas change from gp2 to gp3 for AWS?
@nikhil-mongo let's keep this open till we ensure we have got the word out and ensure the original issue is corrected.
I changed our M10 and M20 clusters from 100 to 3000 without a problem. But its not working for our M30 cluster. If I want to change from 150 IOPS to 3000 and Terraform seems to be doing it and finishes the apply. But it's still 150 in the GUI and if I ran Terraform again the wants to do 150 -> 3000 again.
module.mongodb.mongodbatlas_cluster.cluster: Still modifying... [id=2x1xMjg4....., 10s elapsed]
module.mongodb.mongodbatlas_cluster.cluster: Still modifying... [id=2x1xMjg4....., 20s elapsed]
module.mongodb.mongodbatlas_cluster.cluster: Still modifying... [id=Y2x1xMjg4....., 30s elapsed]
module.mongodb.mongodbatlas_cluster.cluster: Still modifying... [id=Y2x1xMjg4....., 40s elapsed]
module.mongodb.mongodbatlas_cluster.cluster: Still modifying... [id=Y2x1xMjg4....., 50s elapsed]
module.mongodb.mongodbatlas_cluster.cluster: Still modifying... [id=Y2x1xMjg4....., 1m0s elapsed]
module.mongodb.mongodbatlas_cluster.cluster: Still modifying... [id=Y2x1xMjg4....., 1m10s elapsed]
module.mongodb.mongodbatlas_cluster.cluster: Still modifying... [id=Y2x1xMjg4....., 1m20s elapsed]
module.mongodb.mongodbatlas_cluster.cluster: Still modifying... [id=Y2x1xMjg4....., 1m30s elapsed]
module.mongodb.mongodbatlas_cluster.cluster: Modifications complete after 1m33s [id=Y2x1xMjg4.....]
Apply complete! Resources: 0 added, 2 changed, 0 destroyed.
On the next apply he tries to do it again with the same result. Still 150
~ provider_disk_iops = 150 -> 3000
provider_encrypt_ebs_volume = true
provider_instance_size_name = "M30"
provider_name = "AWS"
provider_region_name = "EU_CENTRAL_1"
provider_volume_type = "STANDARD"
Thanks to everyone for the input and alerting.
So as you noticed the default IOPS changed for new clusters (and some existing clusters). This was released by Atlas yesterday and obviously this impacted Terraform. It is truly a good thing overall in that the default IOPS is now higher with no increase in cost. The tough thing was the impact this has to IaC use cases and for that we apologize. The team has applied a change to the API so that no matter what IOPS is requested, if it is less than or equal to the default or not possible for that tier as STANDARD, the API will ignore it. This should prevent the errors you encountered.
I have updated the documentation to remove IOPS from the examples as well since it's only needed when one desires (and is able by cluster tier) to use PROVISIONED storage with a higher IOPS than the default.
Furthermore, for existing clusters the default roll out is happening over time. @pitthecat I believe this may be what is happening in your situation, until your existing clusters are upgraded they will not have higher IOPS. The API now accepts the change even if it's not possible to prevent the aforementioned errors.
Thanks!
fyi @shum @nikhil-mongo
I believe we have corrected all the issues and new docs are out. Thank you all for the help!!
Terraform CLI and Terraform MongoDB Atlas Provider Version
Terraform Configuration File
Steps to Reproduce
On 4/21/2021 at 12:00pm EDT, I ran
terraform apply
without any issue. On 4/21/2021 at 3:05pm EDT, I ranterraform apply
without any changes.Expected Behavior
Re-running
terraform apply
without any changes shouldn't cause terraform to apply anything.Actual Behavior
When terraform refreshed the state from Atlas by calling the API, the API must have returned that
provider_volume_type
was null. It then created a terraform plan and tried to apply a patch settingprovider_volume_type
from null toSTANDARD
. I believe something changed on your API that is making terraform think it needs to apply this patch.The full plan looks like this (I replaced anything identifable with asterisks):
Debug Output
N/A
Crash Output
Additional Context
No
References
N/A