Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Announcement] Upcoming Changes in Version 5.0 of the AWS Provider #29842

Closed
marcosentino opened this issue Mar 7, 2023 · 6 comments
Closed
Labels
breaking-change Introduces a breaking change in current functionality; usually deferred to the next major release. enhancement Requests to existing resources that expand the functionality or scope. provider Pertains to the provider itself, rather than any interaction with AWS.
Milestone

Comments

@marcosentino
Copy link
Contributor

marcosentino commented Mar 7, 2023

Since the last major provider release in February of 2022, we have been listening closely to the community's feedback. The upcoming major release primarily focuses on removing caveats on the Default Tags functionality.

Summary

A major release is our opportunity to make breaking changes in a scheduled and publicized manner in an attempt to avoid unnecessary churn for our users. We attempt to limit major releases to every 12-18 months. Version v4.0.0 of the AWS provider was released in February of 2022.
Along with more significant changes in behavior detailed below, this release will also remove attributes that have been marked as deprecated. Typically these have been marked as such due to changes in the upstream API, or in some cases the use of the attribute causes confusion. Major release v5.0.0 will not make any changes in support for older versions of Terraform.

Default Tags Enhancement

The default tags functionality was released in May 2021 due to overwhelming community support. Over its existence as a feature in the provider, we have discovered other limitations which hamper its adoption. New features are now available in terraform-plugin-sdk, and the terraform-plugin-framework which means we are now able to remove these caveats and resolve any major issues with its use. Resolving these issues will solve the following:

  • Inconsistent final plans that cause failures when tags are computed.
  • Identical tags in both default tags and resource tags.
  • Eliminate perpetual diffs within tag configurations.

While most of this work is resolving issues with the design of the feature, it does represent a significant change in behavior that we can’t be sure will not be disruptive for users with existing default tag configurations. As a result, it is considered a breaking change. Details of the Default Tags changes can be found in issue #29747

Remove EC2 Classic Functionality

In 2021 AWS announced the retirement of EC2 Classic Networking functionality. This was scheduled to occur on August 15th, 2022. Support for the functionality was extended until late September when any AWS customers who had qualified for extension finished their migration. At that time those features were marked as deprecated and it is now time to remove them as the functionality is no longer available through AWS. While this is a standard deprecation, this is a major feature removal.

Updating RDS Identifiers In–Place

Allow DB names to be updated in place. This is now supported by AWS, so we should allow its use. Practitioners will now be able to change names without a recreation. Details for this issue can be tracked in issue #507.

Remove Default Value from Engine Parameters

Removes a default value that does not have a parallel with AWS and causes unexpected behavior for end users. Practitioners will now have to specify a value. Details for this issue can be tracked in issue #27960.

Force replacement on snapshot_identifier change for DB cluster resources

Corrects the behavior to create a new database if the snapshot id is changed in line with practitioner expectations. Details for this issue can be tracked in issue #29409

Follow our Progress

The full contents of the major release and progress towards it can be viewed in the v5.0.0 milestone

Upgrading

As a major version contains breaking changes, it is considered best practice to pin a provider version to avoid bringing in potentially breaking changes automatically. To remain on v4.* versions of the provider until such time that you are able to accommodate those changes, either pin to any v4.* version:

terraform {
  required_providers {
    aws = {
      version = "~> 4.0"
    }
  }
}

Or a specific version:

terraform {
  required_providers {
    aws = {
      version = "4.56.0"
    }
  }
}

Full documentation on how to manage versions of a provider can be found on the Terraform Website.

Your usage patterns will dictate how much effort upgrading to v5.0 will take. We document each breaking change in our upgrade guide which will describe what changes are necessary to existing resources to preserve behavior. The upgrade guide will be available on the day of the release on the Terraform Website.

@marcosentino marcosentino added the needs-triage Waiting for first response or review from a maintainer. label Mar 7, 2023
@github-actions
Copy link

github-actions bot commented Mar 7, 2023

Community Note

Voting for Prioritization

  • Please vote on this issue by adding a 👍 reaction to the original post to help the community and maintainers prioritize this request.
  • Please see our prioritization guide for information on how we prioritize.
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request.

Volunteering to Work on This Issue

  • If you are interested in working on this issue, please leave a comment.
  • If this would be your first contribution, please review the contribution guide.

@github-actions github-actions bot removed the needs-triage Waiting for first response or review from a maintainer. label Mar 7, 2023
@marcosentino marcosentino added enhancement Requests to existing resources that expand the functionality or scope. breaking-change Introduces a breaking change in current functionality; usually deferred to the next major release. provider Pertains to the provider itself, rather than any interaction with AWS. labels Mar 7, 2023
@marcosentino marcosentino added this to the v5.0.0 milestone Mar 7, 2023
@marcosentino marcosentino pinned this issue Mar 7, 2023
@nikolay
Copy link

nikolay commented Mar 29, 2023

Please, don't use "practitioner" as it doesn't fit well into the context.

@FernandoMiguel
Copy link
Contributor

Please, don't use "practitioner" as it doesn't fit well into the context.

practitioner is the exact term @nikolay .

what do you find wrong with it?
what do you purpose as an alternative?

@marcosentino marcosentino modified the milestones: v5.0.0, v4.62.0 Apr 13, 2023
@marcosentino
Copy link
Contributor Author

v5.0.0 of the provider is now released.

@github-actions
Copy link

This functionality has been released in v5.0.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!

@breathingdust breathingdust unpinned this issue May 31, 2023
@github-actions
Copy link

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.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jun 25, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
breaking-change Introduces a breaking change in current functionality; usually deferred to the next major release. enhancement Requests to existing resources that expand the functionality or scope. provider Pertains to the provider itself, rather than any interaction with AWS.
Projects
None yet
Development

No branches or pull requests

3 participants