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_alarm_names | Cloudwatch alarm NAMES (not ARNs) to add to the deployment group. Allows automated rollback on errors. | 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)