-
-
Notifications
You must be signed in to change notification settings - Fork 630
feat!: Upgrade AWS provider and min required Terraform version to 6.0 and 1.5.7 respectively
#217
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
Conversation
62f347d to
654809c
Compare
|
any ETA on this? |
|
@bryantbiggs Could you please provide an update on this PR? It adds multiple important features which are standard to AWS ECS. It's been open for a very long time. Is this still being maintained or should we move away from this project? |
|
yes, part of it is finding time since these large, breaking changes do take a considerable amount of time to test and document, and part of it is balancing the number of times we take a breaking change (major version bump). with v6 of the provider coming, I'm half inclined to wait and set the minimum provider version to 6.0 hashicorp/terraform-provider-aws#41101 to have a stable path forward for quite some time after |
|
@bryantbiggs if I can be of use in testing I'd be glad to help run this through the paces. Do you have a pattern or practice you use and documentation you would need to validate that testing is sufficient? |
|
FYI, had to set these to work around validation errors, in a scenario when none of these were meant to be set : tasks_iam_role_statements = []
security_group_ingress_rules = {}
security_group_egress_rules = {} |
|
Also, FYI, In addition to that, there's no way to set |
|
The |
tag_specifications = optional(list(object({
propagate_tags = optional(string, "TASK_DEFINITION")
resource_type = string
tags = optional(map(string))
})))I think, we should make |
|
note to self: |
cd948c3 to
3cc5e95
Compare
| description = "Map of service definitions to create" | ||
| type = any | ||
| default = {} | ||
| type = map(object({ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I win 😅
9d29599 to
ae64da6
Compare
6.0 and 1.5.7 respectively
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great!
.pre-commit-config.yaml
Outdated
| - '--args=--only=terraform_typed_variables' | ||
| - '--args=--only=terraform_module_pinned_source' | ||
| - '--args=--only=terraform_naming_convention' | ||
| # - '--args=--only=terraform_naming_convention' # Disabled due to container definition variables requiring camelCase |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can tflint recognize inline comments to mark just unsupported places? Other tools like tfsec and checkov can, so maybe tflint can also?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh that was much easier than I thought it would be 😅 - fixed in 6d0ff2b
|
I'm integrating this in our repo, here, and all seems to work as before trade-tariff/trade-tariff-platform-aws-terraform#416 |
## [6.0.0](v5.12.1...v6.0.0) (2025-07-07) ### ⚠ BREAKING CHANGES * Upgrade AWS provider and min required Terraform version to `6.0` and `1.5.7` respectively (#217) ### Features * Upgrade AWS provider and min required Terraform version to `6.0` and `1.5.7` respectively ([#217](#217)) ([29b257a](29b257a)), closes [#158](#158)
|
This PR is included in version 6.0.0 🎉 |
…0` and `1.5.7` respectively (terraform-aws-modules#217) * feat: Support `managed_draining` argument at `aws_ecs_capacity_provider` (terraform-aws-modules#158) * feat: Support manged_draining argument for aws_ecs_capacity_provider * bump required AWS provider version to 5.34 * align AWS provider version across the project * feat: Update MSTV to 1.3 to support state migrations, align provider version on minor version --------- Co-authored-by: Bryant Biggs <[email protected]> * feat: Add support for multiple `service`s inside `service_connect_configuration` (terraform-aws-modules#123) feat: Add support for multiple service inside service_connect_configuration Co-authored-by: Bryant Biggs <[email protected]> * feat: Add support for custom metric queries in customized_metric_spec (terraform-aws-modules#196) * feat: add support for custom metric queries in customized metric spec * fix: Update and run pre-commit checks to format --------- Co-authored-by: Bryant Biggs <[email protected]> * feat: Add support for service connect timeout settings (terraform-aws-modules#212) * feat: add service connect timeout support * chore: Update required min versions * chore: Fix merge conflicts --------- Co-authored-by: Bryant Biggs <[email protected]> * feat: Add support for EBS volumes (terraform-aws-modules#205) * feat: Adding support for EBS volumes * feat: Adding support for EBS volumes * feat: Add support for EBS volumes * feat: Add support for EBS volumes * chore: Update min required AWS provider version --------- Co-authored-by: Bryant Biggs <[email protected]> * feat: Add support for service connect tls settings (terraform-aws-modules#216) * add dynamic tls block for service connect service * set aws_pca_authority_arn to required * also apply fix to ecs service without ignore_task_def * formatting --------- Co-authored-by: Kevin Ouellet <[email protected]> * fix: Propagate support for EBS volumes to the root module (terraform-aws-modules#223) * Add missing support for EBS volumes. The PR terraform-aws-modules#205 failed to update the main module triggered when using the Terraform Registry as the module source. * Set default to true * Correct infra iam role logic. * fix: Correct logic for local `needs_infrastructure_iam_role` check (terraform-aws-modules#224) * Fix need infrastructure role check. * try adjusting logic. * explicit dep * forgot this default * update example. * feat: Add support for restartPolicy (terraform-aws-modules#231) * feat: Add support for restartPolicy (terraform-aws-modules#230) * fix precommit error * fix: Correct defaults and remove redundant validation --------- Co-authored-by: Bryant Biggs <[email protected]> * refactor: Initial pass at variable type definitions for service module' * refactor: Initial pass at variable type definitions for container definition module * chore: Update variable name to tag_specifications (terraform-aws-modules#251) Update variable name In main.tf it is used a plural tag_specifications name for the attribute * feat: Add support for availability zone rebalancing (terraform-aws-modules#262) (terraform-aws-modules#269) * feat: Add support for availability zone rebalancing (terraform-aws-modules#262) * revert default value of availability zone rebalancing * chore: Raise MSV of AWS provider * feat: Use policy for tasks role instead of inline policy * feat: Add FIS param and remove inference accelerator from `service` module * feat: Update cluster variable definitions; drop `cluster_` prefix * feat: Bump version requirements for AWS provider and Terraform to v6.0 and v1.5.7 respectively * feat: Update cluster configurations * feat: Update container definition configurations * feat: Update service configurations * feat: The worlds longest variable definition * fix: Corrections * chore: Update upgrade guide, add container definition example for testing * fix: Correct tflint ignore statemtns for camelCasing --------- Co-authored-by: Ivan Sukhomlyn <[email protected]> Co-authored-by: H.Saki <[email protected]> Co-authored-by: matt <[email protected]> Co-authored-by: Sal Sodano <[email protected]> Co-authored-by: Rodrigo Torres <[email protected]> Co-authored-by: Kevin Ouellet <[email protected]> Co-authored-by: Kevin Ouellet <[email protected]> Co-authored-by: Thomas Montague <[email protected]> Co-authored-by: Paul SANTUS <[email protected]> Co-authored-by: Luis Valdés <[email protected]> Co-authored-by: Keisuke.Matsuda <[email protected]>
## [6.0.0](terraform-aws-modules/terraform-aws-ecs@v5.12.1...v6.0.0) (2025-07-07) ### ⚠ BREAKING CHANGES * Upgrade AWS provider and min required Terraform version to `6.0` and `1.5.7` respectively (terraform-aws-modules#217) ### Features * Upgrade AWS provider and min required Terraform version to `6.0` and `1.5.7` respectively ([terraform-aws-modules#217](terraform-aws-modules#217)) ([29b257a](terraform-aws-modules@29b257a)), closes [terraform-aws-modules#158](terraform-aws-modules#158)
|
I'm going to lock this pull request 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 related to this change, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further. |
Description
List of backwards incompatible changes
v1.5.7is now minimum supported versionv6.0.0is now minimum supported versionsnake_casetocamelCaseto match the AWS API. There currently isn't a resource nor data source for the container definition, so one is constructed entirely from HCL in thecontainer-definitionsub-module. This definition is then rendered as JSON when presented to the task definition (or task set) APIs. Previously, the variable names used weresnake_caseand then internally converted tocamelCase. However, this does not allow for using thecontainer-definitionsub-module on its own due to the mismatch between casing. Its probably going to trip a few folks up, but hopefully we'll remove this for a data source in the future.security_group_ruleshas been split intosecurity_group_ingress_rulesandsecurity_group_egress_rulesto better match the AWS API and allow for more flexibility in defining security group rules.track_latestvariable to ensure that the latest task definition is used when updating the service. Any issues with tracking the task definition version should be reported to the ECS service team as it is a limitation of the AWS ECS service/API and not the module itself.servicesub-module has been replaced with a standalone IAM policy. In some organizations, inline policies are not allowed.container-definitionuserhas been changed from0tonull.Additional changes
Added
regionparameter to specify the AWS region for the resources created if different from the provider region.servicesub-module. This role is used to manage ECS infrastructure resources https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.htmlModified
objecttypes in place of the previously used any type.Variable and output changes
Removed variables:
default_capacity_provider_use_fargatefargate_capacity_providersclustersub-modulefargate_capacity_providers; part ofdefault_capacity_provider_strategynowdefault_capacity_provider_use_fargatecontainer-definitionsub-moduleservicesub-moduleinference_acceleratorRenamed variables:
cluster_settings->cluster_settingclustersub-modulecluster_configuration-configurationcluster_settings-settingcluster_service_connect_defaults-service_connect_defaultscontainer-definitionsub-moduledependencies-dependsOndisable_networking-disableNetworkingdns_search_domains-dnsSearchDomainsdns_servers-dnsServersdocker_labels-dockerLabelsdocker_security_options-dockerSecurityOptionsenvironment_files-environmentFilesextra_hosts-extraHostsfirelens_configuration-firelensConfigurationhealth_check-healthChecklinux_parameters-linuxParameterslog_configuration-logConfigurationmemory_reservation-memoryReservationmount_points-mountPointsport_mappings-portMappingspsuedo_terminal-pseudoTerminalreadonly_root_filesystem-readonlyRootFilesystemrepository_credentials-repositoryCredentialsstart_timeout-startTimeoutsystem_controls-systemControlsvolumes_from-volumesFromworking_directory-workingDirectoryservicesub-moduleAdded variables:
cloudwatch_log_group_classdefault_capacity_provider_strategyclustersub-modulecloudwatch_log_group_classdefault_capacity_provider_strategy- replacesfargate_capacity_providersanddefault_capacity_provider_use_fargatefunctionalitycontainer-definitionsub-modulelog_group_classrestartPolicy- defaults toenabled = trueversionConsistency- defaults to"disabled"Issues with "software version consistency" feature aws/containers-roadmap#2394servicesub-moduleavailability_zone_rebalancingvolume_configurationvpc_lattice_configurationsenable_fault_injectiontrack_latestcreate_infrastructure_iam_roleinfrastructure_iam_role_arninfrastructure_iam_role_nameinfrastructure_iam_role_use_name_prefixinfrastructure_iam_role_pathinfrastructure_iam_role_descriptioninfrastructure_iam_role_permissions_boundaryinfrastructure_iam_role_tagsRemoved outputs:
clustersub-modulecontainer-definitionsub-moduleservicesub-moduletask_definition_family_revisionRenamed outputs:
clustersub-modulecontainer-definitionsub-moduleservicesub-moduleAdded outputs:
clustersub-modulecontainer-definitionsub-moduleservicesub-moduleinfrastructure_iam_role_arninfrastructure_iam_role_nameMotivation and Context
track_latestattribute #164task_exec_secret_arns#244Breaking Changes
docs/UPGRADE-6.0.mdHow Has This Been Tested?
examples/*to demonstrate and validate my change(s)examples/*projectspre-commit run -aon my pull request