You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -5,14 +5,21 @@ If you find a bug, please open an issue with supporting configuration to reprodu
5
5
6
6
## List of backwards incompatible changes
7
7
8
-
- Terraform v1.5.7 is now minimum supported version
9
-
- AWS provider v6.0.0 is now minimum supported version
8
+
- Terraform `v1.5.7` is now minimum supported version
9
+
- AWS provider `v6.0.0` is now minimum supported version
10
+
- The attributes used to construct the container definition(s) have been changed from HCL's norm of `snake_case` to `camelCase` to match the AWS API. There currently isn't a [resource nor data source for the container definition](https://github.com/hashicorp/terraform-provider-aws/issues/17988), so one is constructed entirely from HCL in the `container-definition` sub-module. This definition is then rendered as JSON when presented to the task definition (or task set) APIs. Previously, the variable names used were `snake_case` and then internally converted to `camelCase`. However, this does not allow for [using the `container-definition` sub-module on its own](https://github.com/terraform-aws-modules/terraform-aws-ecs/issues/147) 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.
11
+
-`security_group_rules` has been split into `security_group_ingress_rules` and `security_group_egress_rules` to better match the AWS API and allow for more flexibility in defining security group rules.
12
+
- Default permissive permissions for SSM parameter ARNs and Secrets Manager secret ARNs have been removed throughout. While this made it easier for users since it "just worked", it was not secure and could lead to unexpected access to resources. Users should now explicitly define the permissions they need in their IAM policies.
13
+
- The "hack" put in place to track the task definition version when updating outside of the module has been removed. Instead, users should rely on the `track_latest` variable 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.
14
+
- The inline policy for the Tasks role of the `service` sub-module has been replaced with a standalone IAM policy. In some organizations, inline policies are not allowed.
15
+
- The default for the `container-definition``user` has been changed from `0` to `null`.
10
16
11
17
## Additional changes
12
18
13
19
### Added
14
20
15
21
- Support for `region` parameter to specify the AWS region for the resources created if different from the provider region.
22
+
- Support for ECS infrastructure IAM role creation in the `service` sub-module. This role is used to manage ECS infrastructure resources https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html
16
23
17
24
### Modified
18
25
@@ -22,35 +29,148 @@ If you find a bug, please open an issue with supporting configuration to reprodu
22
29
23
30
1. Removed variables:
24
31
25
-
-
32
+
-`default_capacity_provider_use_fargate`
33
+
-`fargate_capacity_providers`
34
+
35
+
-`cluster` sub-module
36
+
-`fargate_capacity_providers`; part of `default_capacity_provider_strategy` now
Due to the change from `aws_security_group_rule` to `aws_vpc_security_group_ingress_rule` and `aws_vpc_security_group_egress_rule`, the following reference state changes are required to maintain the current security group rules. (Note: these are different resources so they cannot be moved with `terraform mv ...`)
246
416
247
417
```sh
248
418
terraform state rm 'module.ecs_service.aws_security_group_rule.this["alb_ingress_3000"]'
249
419
terraform state import 'module.ecs_service.aws_vpc_security_group_ingress_rule.this["alb_3000"]''sg-xxx'
250
420
251
421
terraform state rm 'module.ecs_service.aws_security_group_rule.this["egress_all"]'
252
422
terraform state import 'module.ecs_service.aws_vpc_security_group_egress_rule.this["all"]''sg-xxx'
253
-
254
423
```
255
424
256
425
The inline tasks `aws_iam_role_policy` cannot be moved or imported into a standalone `aws_iam_policy`. It must be re-created.
Note that this example may create resources which will incur monetary charges on your AWS bill. Run `terraform destroy` when you no longer need these resources.
|[aws_availability_zones.available](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/availability_zones)| data source |
49
+
|[aws_ssm_parameter.fluentbit](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/ssm_parameter)| data source |
50
+
51
+
## Inputs
52
+
53
+
No inputs.
54
+
55
+
## Outputs
56
+
57
+
| Name | Description |
58
+
|------|-------------|
59
+
| <aname="output_cluster_arn"></a> [cluster\_arn](#output\_cluster\_arn)| ARN that identifies the cluster |
60
+
| <aname="output_cluster_autoscaling_capacity_providers"></a> [cluster\_autoscaling\_capacity\_providers](#output\_cluster\_autoscaling\_capacity\_providers)| Map of capacity providers created and their attributes |
61
+
| <aname="output_cluster_capacity_providers"></a> [cluster\_capacity\_providers](#output\_cluster\_capacity\_providers)| Map of cluster capacity providers attributes |
62
+
| <aname="output_cluster_id"></a> [cluster\_id](#output\_cluster\_id)| ID that identifies the cluster |
63
+
| <aname="output_cluster_name"></a> [cluster\_name](#output\_cluster\_name)| Name that identifies the cluster |
64
+
| <aname="output_service_autoscaling_policies"></a> [service\_autoscaling\_policies](#output\_service\_autoscaling\_policies)| Map of autoscaling policies and their attributes |
65
+
| <aname="output_service_autoscaling_scheduled_actions"></a> [service\_autoscaling\_scheduled\_actions](#output\_service\_autoscaling\_scheduled\_actions)| Map of autoscaling scheduled actions and their attributes |
| <aname="output_service_iam_role_arn"></a> [service\_iam\_role\_arn](#output\_service\_iam\_role\_arn)| Service IAM role ARN |
68
+
| <aname="output_service_iam_role_name"></a> [service\_iam\_role\_name](#output\_service\_iam\_role\_name)| Service IAM role name |
69
+
| <aname="output_service_iam_role_unique_id"></a> [service\_iam\_role\_unique\_id](#output\_service\_iam\_role\_unique\_id)| Stable and unique string identifying the service IAM role |
70
+
| <aname="output_service_id"></a> [service\_id](#output\_service\_id)| ARN that identifies the service |
71
+
| <aname="output_service_name"></a> [service\_name](#output\_service\_name)| Name of the service |
72
+
| <aname="output_service_security_group_arn"></a> [service\_security\_group\_arn](#output\_service\_security\_group\_arn)| Amazon Resource Name (ARN) of the security group |
73
+
| <aname="output_service_security_group_id"></a> [service\_security\_group\_id](#output\_service\_security\_group\_id)| ID of the security group |
74
+
| <aname="output_service_task_definition_arn"></a> [service\_task\_definition\_arn](#output\_service\_task\_definition\_arn)| Full ARN of the Task Definition (including both `family` and `revision`) |
75
+
| <aname="output_service_task_definition_family"></a> [service\_task\_definition\_family](#output\_service\_task\_definition\_family)| The unique name of the task definition |
76
+
| <aname="output_service_task_definition_revision"></a> [service\_task\_definition\_revision](#output\_service\_task\_definition\_revision)| Revision of the task in a particular family |
77
+
| <aname="output_service_task_exec_iam_role_arn"></a> [service\_task\_exec\_iam\_role\_arn](#output\_service\_task\_exec\_iam\_role\_arn)| Task execution IAM role ARN |
78
+
| <aname="output_service_task_exec_iam_role_name"></a> [service\_task\_exec\_iam\_role\_name](#output\_service\_task\_exec\_iam\_role\_name)| Task execution IAM role name |
79
+
| <aname="output_service_task_exec_iam_role_unique_id"></a> [service\_task\_exec\_iam\_role\_unique\_id](#output\_service\_task\_exec\_iam\_role\_unique\_id)| Stable and unique string identifying the task execution IAM role |
80
+
| <aname="output_service_task_set_arn"></a> [service\_task\_set\_arn](#output\_service\_task\_set\_arn)| The Amazon Resource Name (ARN) that identifies the task set |
81
+
| <aname="output_service_task_set_id"></a> [service\_task\_set\_id](#output\_service\_task\_set\_id)| The ID of the task set |
82
+
| <aname="output_service_task_set_stability_status"></a> [service\_task\_set\_stability\_status](#output\_service\_task\_set\_stability\_status)| The stability status. This indicates whether the task set has reached a steady state |
83
+
| <aname="output_service_task_set_status"></a> [service\_task\_set\_status](#output\_service\_task\_set\_status)| The status of the task set |
84
+
| <aname="output_service_tasks_iam_role_arn"></a> [service\_tasks\_iam\_role\_arn](#output\_service\_tasks\_iam\_role\_arn)| Tasks IAM role ARN |
85
+
| <aname="output_service_tasks_iam_role_name"></a> [service\_tasks\_iam\_role\_name](#output\_service\_tasks\_iam\_role\_name)| Tasks IAM role name |
86
+
| <aname="output_service_tasks_iam_role_unique_id"></a> [service\_tasks\_iam\_role\_unique\_id](#output\_service\_tasks\_iam\_role\_unique\_id)| Stable and unique string identifying the tasks IAM role |
87
+
| <aname="output_task_definition_run_task_command"></a> [task\_definition\_run\_task\_command](#output\_task\_definition\_run\_task\_command)| awscli command to run the standalone task |
88
+
<!-- END_TF_DOCS -->
89
+
90
+
## License
91
+
92
+
Apache-2.0 Licensed. See [LICENSE](https://github.com/terraform-aws-modules/terraform-aws-ecs/blob/master/LICENSE).
0 commit comments