hashicorp / terraform-provider-aws

The AWS Provider enables Terraform to manage AWS resources.
https://registry.terraform.io/providers/hashicorp/aws
Mozilla Public License 2.0
9.84k stars 9.19k forks source link

[Bug]: Neptune upgrade fails while upgrading from 1.0.4.1 to 1.1.1.0 #27998

Closed ran2806 closed 1 year ago

ran2806 commented 1 year ago

Terraform Core Version

0.15.3

AWS Provider Version

4.39.0

Affected Resource(s)

aws_neptune_cluster

Expected Behavior

When upgrading neptune cluster from 1.0.4.1 to 1.1.1.0, it should not throw any error message and upgrade will proceed and succeed after some time.

Actual Behavior

Failed with following error. aws_neptune_cluster.neptune_cluster: Modifying... [id=test] ╷ │ Error: Failed to modify Neptune Cluster (test): InvalidParameterCombination: The current DB instance parameter group test-parameter-group is custom. You must explicitly specify a new DB instance parameter group, either default or custom, for the engine version upgrade. │ status code: 400, request id: 123456789-4f5a-4b46-ae99-1248056f5ea6 │ │ with aws_neptune_cluster.neptune_cluster, │ on main.tf line 21, in resource "aws_neptune_cluster" "neptune_cluster": │ 21: resource "aws_neptune_cluster" "neptune_cluster" { │ ╵ ERRO[0059] Hit multiple errors:

Relevant Error/Panic Output Snippet

No response

Terraform Configuration Files

NA

Steps to Reproduce

  1. Create Neptune cluster with neptune engine version 1.0.4.1.
  2. Upgrade the neptune version to 1.1.1.0 and start apply.
  3. It will fail with error.

Debug Output

No response

Panic Output

No response

Important Factoids

Looks like aws had modified the API signature to have the DB parameter group needs to be sent while major upgrade. That parameter is currently not checked by the terraform module and there is no property sent to the modify_cluster API input.

In cluster_update only cluster_parameter_group change is detected but not for neptune_parameter_group.

https://github.com/hashicorp/terraform-provider-aws/blob/main/internal/service/neptune/cluster.go#L638

Let me know if I can raise the pull request. I will be happy to do that.

References

No response

Would you like to implement a fix?

Yes

github-actions[bot] commented 1 year ago

Community Note

Voting for Prioritization

Volunteering to Work on This Issue

DrFaust92 commented 1 year ago

checking

jaw111 commented 1 year ago

I am facing a similar issue using provider version 4.46.0 when attempting to upgrade a Neptune cluster from 1.1.1.0 to 1.2.0.2. ╷ │ Error: Failed to modify Neptune Cluster (my-neptune-cluster): InvalidParameterCombination: The current DB instance parameter group my-neptune-pg is custom. You must explicitly specify a new DB instance parameter group, either default or custom, for the engine version upgrade. │ status code: 400, request id: 4daf4b65-5f0e-42bc-a040-2af1d719b56f │ │ with aws_neptune_cluster.trace, │ on neptune.tf line 4, in resource "aws_neptune_cluster" "my_neptune_cluster": │ 4: resource "aws_neptune_cluster" "my_neptune_cluster" { │ ╵

github-actions[bot] commented 1 year ago

This functionality has been released in v4.55.0 of the Terraform AWS Provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading.

For further feature requests or bug reports with this functionality, please create a new GitHub issue following the template. Thank you!

github-actions[bot] commented 1 year ago

I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues. If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.