Terraform module for creating an AWS ECS Fargate service with CodeDeploy B/G deployment.
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| assign_public_ip | Assign a public IP address to the ENI. | bool | false | no |
| cloudwatch_log_group_name | The name of the CloudWatch log group. | string | null | no |
| codedeploy_auto_rollback_events | The event type or types that trigger a rollback. If none are defined auto_rollback will be disabled. | list(string) | [ | no |
| codedeploy_cloudwatch_alarms | Cloudwatch alarm ARNs to add to the deployment group. Allows automated rollback on errors, for example. | list(string) | [] | no |
| codedeploy_deployment_config_name | The name of the group's deployment config. | string | "CodeDeployDefault.ECSAllAtOnce" | no |
| codedeploy_deployment_ready_wait_time_in_minutes | The number of minutes to wait before the status of a blue/green deployment changed to Stopped if rerouting is not started manually. If set to 0 the deployment will continue without waiting for approval. | number | 0 | no |
| codedeploy_role_name | The name of the role that allows CodeDeploy to make calls to ECS, Auto Scaling, and CloudWatch on your behalf. | string | null | no |
| codedeploy_role_name_prefix | Whether to prefix the CodeDeploy role name. | bool | false | no |
| codedeploy_termination_action | The action to take on instances in the original environment after a successful blue/green deployment. | string | "TERMINATE" | no |
| codedeploy_termination_wait_time_in_minutes | The number of minutes to wait after a successful blue/green deployment before terminating instances from the original environment. | number | 0 | no |
| create_cloudwatch_log_group | Whether to create a CloudWatch log group for the service. | bool | true | no |
| deployment_maximum_percent | Upper limit (as a percentage of the service's desired_count) of the number of running tasks that can be running in a service during a deployment. | number | 200 | no |
| deployment_minimum_healthy_percent | Lower limit (as a percentage of the service's desired_count) of the number of running tasks that must remain running and healthy in a service during a deployment. | number | 100 | no |
| desired_count | Number of instances of the task definition to place and keep running. | number | 1 | no |
| ecs_cluster_name | ARN of an ECS cluster for the service. | string | n/a | yes |
| enable_ecs_managed_tags | Specifies whether to enable Amazon ECS managed tags for the tasks within the service. | bool | false | no |
| enable_execute_command | Specifies whether to enable Amazon ECS Exec for the tasks within the service. | bool | true | no |
| enable_lb_test_listener | Enable a test listener on the load balancer. This is useful for testing the deployment process. | bool | false | no |
| health_check_grace_period_seconds | Seconds to ignore failing load balancer health checks on newly instantiated tasks to prevent premature shutdown. | number | 0 | no |
| lb_arn | The ARN of the load balancer to attach to the service. | string | n/a | yes |
| lb_listener_alpn_policy | The ALPN policy to use for HTTPS listener. | string | null | no |
| lb_listener_certificate_arn | The ARN of the certificate to use for HTTPS listener. | string | null | no |
| lb_listener_port | The port on the load balancer listener. | number | 80 | no |
| lb_listener_protocol | The protocol on the load balancer listener. | string | "HTTP" | no |
| lb_listener_ssl_policy | The SSL policy to use for HTTPS listener. | string | "ELBSecurityPolicy-2016-08" | no |
| lb_test_listener_alpn_policy | The ALPN policy to use for the test HTTPS listener. | string | "HTTP2Preferred" | no |
| lb_test_listener_certificate_arn | The ARN of the certificate to use for the test HTTPS listener. | string | null | no |
| lb_test_listener_port | The port on the load balancer test listener. | number | 80 | no |
| lb_test_listener_protocol | The protocol on the load balancer test listener. | string | "HTTP" | no |
| lb_test_listener_ssl_policy | The SSL policy to use for the test HTTPS listener. | string | "ELBSecurityPolicy-2016-08" | no |
| load_balancer_container_name | Name of the container to associate with the load balancer (as it appears in a container definition). Default: Will use the name of the first container in the task_container_definitions. | string | null | no |
| load_balancer_container_port | Port on the container to associate with the load balancer. Default: Will use the containerPort of the first containers first portMapping in the task_container_definitions. | number | null | no |
| name | Base name of the created resources. | string | n/a | yes |
| platform_version | Platform version on which to run your service. | string | "1.4.0" | no |
| propagate_tags | Specifies whether to propagate the tags from the task definition or the service to the tasks. | string | "SERVICE" | no |
| security_group_ids | Security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. | list(string) | [] | no |
| service_registries | Service discovery registries for the service. | list(object({ | [] | no |
| subnet_ids | Subnets associated with the task or service. | list(string) | n/a | yes |
| tags | Tags to add to the created resources. | map(any) | {} | no |
| target_group_connection_termination | Whether to terminate connections at the end of the deregistration timeout on Network Load Balancers. | bool | false | no |
| target_group_deregistration_delay | Amount time in seconds for Elastic Load Balancing to wait before changing the state of a deregistering target from draining to unused. | number | 300 | no |
| target_group_health_check_healthy_threshold | Number of consecutive health checks successes required before considering an unhealthy target healthy. | number | 3 | no |
| target_group_health_check_interval | Approximate amount of time, in seconds, between health checks of an individual target. | number | 30 | no |
| target_group_health_check_matcher | Response codes to use when checking for a healthy responses from a target. You can specify multiple values (for example, 200,202 for HTTP(s) or 0,12 for GRPC) or a range of values (for example, 200-299 or 0-99). | string | "200-299" | no |
| target_group_health_check_path | Destination for the health check request. | string | "/health" | no |
| target_group_health_check_port | Port to use to connect with the target. | any | "traffic-port" | no |
| target_group_health_check_protocol | Protocol to use to connect with the target. Default: target_group_protocol. | string | null | no |
| target_group_health_check_timeout | Amount of time, in seconds, during which no response means a failed health check. | number | 5 | no |
| target_group_health_check_unhealthy_threshold | Number of consecutive health check failures required before considering the target unhealthy. | number | 3 | no |
| target_group_load_balancing_algorithm_type | Determines how the load balancer selects targets when routing requests. | string | "round_robin" | no |
| target_group_protocol | Protocol on the container to associate with the target group. | string | "HTTP" | no |
| target_group_protocol_version | The protocol version. | string | "HTTP1" | no |
| target_group_proxy_protocol_v2 | Whether to enable support for proxy protocol v2 on Network Load Balancers. | bool | false | no |
| target_group_slow_start | Amount time for targets to warm up before the load balancer sends them a full share of requests. | number | 0 | no |
| task_additional_execute_role_policies | Additional policy ARNs to attach to the execution role. | list(string) | [] | no |
| task_additional_task_role_policies | Additional policy ARNs to attach to the task role. | list(string) | [] | no |
| task_container_definitions | A list of valid container definitions provided as a valid HCL object list. | any | n/a | yes |
| task_cpu | Number of CPU units used by the task. | number | 1024 | no |
| task_cpu_architecture | CPU architecture required by the task. | string | "X86_64" | no |
| task_definition_name | Name of the task definition. Defaults to the base name. | string | null | no |
| task_ephemeral_storage_size_in_gib | The amount of ephemeral storage (in GiB) to allocate to the task. | number | 20 | no |
| task_inference_accelerators | List of Elastic Inference accelerators associated with the task. | list(object({ | [] | no |
| task_memory | Amount (in MiB) of memory used by the task. | number | 2048 | no |
| task_operating_system_family | OS family required by the task. | string | "LINUX" | no |
| task_proxy_configuration | Configuration details for an App Mesh proxy. | object({ | null | no |
| task_volumes | A list of volume definitions. | list(object({ | [] | no |
| Name | Description |
|---|---|
| cloudwatch_log_group_arn | # CLOUDWATCH |
| codedeploy_app_name | # CODEDEPLOY |
| codedeploy_deployment_group_name | n/a |
| service_name | # ECS |
| task_definition_arn | # TASK DEFINITION |
| task_definition_execution_role_arn | n/a |
| task_definition_execution_role_name | n/a |
| task_definition_task_role_arn | n/a |
| task_definition_task_role_name | n/a |
| Name | Version |
|---|---|
| aws | >= 4.36 |
| random | >= 3.1 |
- resource.aws_cloudwatch_log_group.main (main.tf#282)
- resource.aws_codedeploy_app.main (main.tf#211)
- resource.aws_codedeploy_deployment_group.main (main.tf#218)
- resource.aws_ecs_service.main (main.tf#44)
- resource.aws_lb_listener.main (main.tf#162)
- resource.aws_lb_listener.test_listener (main.tf#184)
- resource.aws_lb_target_group.main (main.tf#121)
- resource.random_id.target_group (main.tf#110)
- data source.aws_subnet.main (data.tf#1)