{"id":19978362,"url":"https://github.com/geekcell/terraform-aws-ecs-fargate-codedeploy","last_synced_at":"2025-08-23T05:11:19.603Z","repository":{"id":150854319,"uuid":"590484060","full_name":"geekcell/terraform-aws-ecs-fargate-codedeploy","owner":"geekcell","description":"Terraform module to provision an AWS ECS Fargate CodeDeploy.","archived":false,"fork":false,"pushed_at":"2025-02-04T12:12:46.000Z","size":57,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-08-18T15:58:23.314Z","etag":null,"topics":["aws","codedeploy","ecs","fargate","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"https://www.geekcell.io","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geekcell.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-01-18T14:22:25.000Z","updated_at":"2025-02-04T12:12:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"f6797ad7-b93f-4b94-8c4a-e1b879cfcc90","html_url":"https://github.com/geekcell/terraform-aws-ecs-fargate-codedeploy","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":"geekcell/terraform-aws-module-template","purl":"pkg:github/geekcell/terraform-aws-ecs-fargate-codedeploy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geekcell%2Fterraform-aws-ecs-fargate-codedeploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geekcell%2Fterraform-aws-ecs-fargate-codedeploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geekcell%2Fterraform-aws-ecs-fargate-codedeploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geekcell%2Fterraform-aws-ecs-fargate-codedeploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geekcell","download_url":"https://codeload.github.com/geekcell/terraform-aws-ecs-fargate-codedeploy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geekcell%2Fterraform-aws-ecs-fargate-codedeploy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271745491,"owners_count":24813503,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","codedeploy","ecs","fargate","terraform","terraform-module"],"created_at":"2024-11-13T03:33:09.878Z","updated_at":"2025-08-23T05:11:19.541Z","avatar_url":"https://github.com/geekcell.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- BEGIN_TF_DOCS --\u003e\n[![Geek Cell GmbH](https://raw.githubusercontent.com/geekcell/.github/main/geekcell-github-banner.png)](https://www.geekcell.io/)\n\n### Code Quality\n[![License](https://img.shields.io/github/license/geekcell/terraform-aws-ecs-fargate-codedeploy)](https://github.com/geekcell/terraform-aws-ecs-fargate-codedeploy/blob/master/LICENSE)\n[![GitHub release (latest tag)](https://img.shields.io/github/v/release/geekcell/terraform-aws-ecs-fargate-codedeploy?logo=github\u0026sort=semver)](https://github.com/geekcell/terraform-aws-ecs-fargate-codedeploy/releases)\n[![Release](https://github.com/geekcell/terraform-aws-ecs-fargate-codedeploy/actions/workflows/release.yaml/badge.svg)](https://github.com/geekcell/terraform-aws-ecs-fargate-codedeploy/actions/workflows/release.yaml)\n[![Validate](https://github.com/geekcell/terraform-aws-ecs-fargate-codedeploy/actions/workflows/validate.yaml/badge.svg)](https://github.com/geekcell/terraform-aws-ecs-fargate-codedeploy/actions/workflows/validate.yaml)\n[![Lint](https://github.com/geekcell/terraform-aws-ecs-fargate-codedeploy/actions/workflows/linter.yaml/badge.svg)](https://github.com/geekcell/terraform-aws-ecs-fargate-codedeploy/actions/workflows/linter.yaml)\n\n### Security\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-fargate-codedeploy/general)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-fargate-codedeploy\u0026benchmark=INFRASTRUCTURE+SECURITY)\n\n#### Cloud\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-fargate-codedeploy/cis_aws)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-fargate-codedeploy\u0026benchmark=CIS+AWS+V1.2)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-fargate-codedeploy/cis_aws_13)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-fargate-codedeploy\u0026benchmark=CIS+AWS+V1.3)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-fargate-codedeploy/cis_azure)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-fargate-codedeploy\u0026benchmark=CIS+AZURE+V1.1)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-fargate-codedeploy/cis_azure_13)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-fargate-codedeploy\u0026benchmark=CIS+AZURE+V1.3)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-fargate-codedeploy/cis_gcp)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-fargate-codedeploy\u0026benchmark=CIS+GCP+V1.1)\n\n##### Container\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-fargate-codedeploy/cis_kubernetes_16)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-fargate-codedeploy\u0026benchmark=CIS+KUBERNETES+V1.6)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-fargate-codedeploy/cis_eks_11)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-fargate-codedeploy\u0026benchmark=CIS+EKS+V1.1)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-fargate-codedeploy/cis_gke_11)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-fargate-codedeploy\u0026benchmark=CIS+GKE+V1.1)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-fargate-codedeploy/cis_kubernetes)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-fargate-codedeploy\u0026benchmark=CIS+KUBERNETES+V1.5)\n\n#### Data protection\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-fargate-codedeploy/soc2)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-fargate-codedeploy\u0026benchmark=SOC2)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-fargate-codedeploy/pci)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-fargate-codedeploy\u0026benchmark=PCI-DSS+V3.2)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-fargate-codedeploy/pci_dss_v321)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-fargate-codedeploy\u0026benchmark=PCI-DSS+V3.2.1)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-fargate-codedeploy/iso)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-fargate-codedeploy\u0026benchmark=ISO27001)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-fargate-codedeploy/nist)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-fargate-codedeploy\u0026benchmark=NIST-800-53)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-fargate-codedeploy/hipaa)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-fargate-codedeploy\u0026benchmark=HIPAA)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-fargate-codedeploy/fedramp_moderate)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-fargate-codedeploy\u0026benchmark=FEDRAMP+%28MODERATE%29)\n\n# Terraform AWS ECS Fargate CodeDeploy\n\nThis Terraform module offers a streamlined solution for deploying and managing AWS Elastic Container Service (ECS)\non AWS Fargate in your AWS account. AWS Fargate is a serverless compute engine designed for running containers,\nenabling you to focus on your applications without worrying about managing the underlying infrastructure. By\nutilizing this Terraform module, you can effectively set up and manage your containerized applications, ensuring\nthey are highly available and can scale to accommodate increased traffic.\n\nOur team possesses in-depth knowledge of AWS container services and has fine-tuned this module to deliver the best\npossible experience for users. The module encompasses all essential configurations, making it simple to use and\nintegrate into your existing AWS ecosystem. Whether you are just beginning your journey with containerized\napplications or seeking a more efficient approach to manage your workloads, this Terraform module offers a\npreconfigured solution for seamless scalability and high availability.\"\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_assign_public_ip\"\u003e\u003c/a\u003e [assign\\_public\\_ip](#input\\_assign\\_public\\_ip) | Assign a public IP address to the ENI. | `bool` | `false` | no |\n| \u003ca name=\"input_cloudwatch_log_group_name\"\u003e\u003c/a\u003e [cloudwatch\\_log\\_group\\_name](#input\\_cloudwatch\\_log\\_group\\_name) | The name of the CloudWatch log group. | `string` | `null` | no |\n| \u003ca name=\"input_cloudwatch_log_group_retention_in_days\"\u003e\u003c/a\u003e [cloudwatch\\_log\\_group\\_retention\\_in\\_days](#input\\_cloudwatch\\_log\\_group\\_retention\\_in\\_days) | The number of days log events are kept in CloudWatch log group. | `number` | `30` | no |\n| \u003ca name=\"input_codedeploy_auto_rollback_events\"\u003e\u003c/a\u003e [codedeploy\\_auto\\_rollback\\_events](#input\\_codedeploy\\_auto\\_rollback\\_events) | The event type or types that trigger a rollback. If none are defined `auto_rollback` will be disabled. | `list(string)` | \u003cpre\u003e[\u003cbr\u003e  \"DEPLOYMENT_FAILURE\",\u003cbr\u003e  \"DEPLOYMENT_STOP_ON_ALARM\"\u003cbr\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_codedeploy_cloudwatch_alarm_names\"\u003e\u003c/a\u003e [codedeploy\\_cloudwatch\\_alarm\\_names](#input\\_codedeploy\\_cloudwatch\\_alarm\\_names) | Cloudwatch alarm NAMES (not ARNs) to add to the deployment group. Allows automated rollback on errors. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_codedeploy_deployment_config_name\"\u003e\u003c/a\u003e [codedeploy\\_deployment\\_config\\_name](#input\\_codedeploy\\_deployment\\_config\\_name) | The name of the group's deployment config. | `string` | `\"CodeDeployDefault.ECSAllAtOnce\"` | no |\n| \u003ca name=\"input_codedeploy_deployment_ready_wait_time_in_minutes\"\u003e\u003c/a\u003e [codedeploy\\_deployment\\_ready\\_wait\\_time\\_in\\_minutes](#input\\_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 |\n| \u003ca name=\"input_codedeploy_ignore_poll_alarm_failure\"\u003e\u003c/a\u003e [codedeploy\\_ignore\\_poll\\_alarm\\_failure](#input\\_codedeploy\\_ignore\\_poll\\_alarm\\_failure) | Whether to ignore failures when polling for alarms. | `bool` | `false` | no |\n| \u003ca name=\"input_codedeploy_role_name\"\u003e\u003c/a\u003e [codedeploy\\_role\\_name](#input\\_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 |\n| \u003ca name=\"input_codedeploy_role_name_prefix\"\u003e\u003c/a\u003e [codedeploy\\_role\\_name\\_prefix](#input\\_codedeploy\\_role\\_name\\_prefix) | Whether to prefix the CodeDeploy role name. | `bool` | `false` | no |\n| \u003ca name=\"input_codedeploy_termination_action\"\u003e\u003c/a\u003e [codedeploy\\_termination\\_action](#input\\_codedeploy\\_termination\\_action) | The action to take on instances in the original environment after a successful blue/green deployment. | `string` | `\"TERMINATE\"` | no |\n| \u003ca name=\"input_codedeploy_termination_wait_time_in_minutes\"\u003e\u003c/a\u003e [codedeploy\\_termination\\_wait\\_time\\_in\\_minutes](#input\\_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 |\n| \u003ca name=\"input_create_cloudwatch_log_group\"\u003e\u003c/a\u003e [create\\_cloudwatch\\_log\\_group](#input\\_create\\_cloudwatch\\_log\\_group) | Whether to create a CloudWatch log group for the service. | `bool` | `true` | no |\n| \u003ca name=\"input_deployment_maximum_percent\"\u003e\u003c/a\u003e [deployment\\_maximum\\_percent](#input\\_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 |\n| \u003ca name=\"input_deployment_minimum_healthy_percent\"\u003e\u003c/a\u003e [deployment\\_minimum\\_healthy\\_percent](#input\\_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 |\n| \u003ca name=\"input_desired_count\"\u003e\u003c/a\u003e [desired\\_count](#input\\_desired\\_count) | Number of instances of the task definition to place and keep running. | `number` | `1` | no |\n| \u003ca name=\"input_ecs_cluster_name\"\u003e\u003c/a\u003e [ecs\\_cluster\\_name](#input\\_ecs\\_cluster\\_name) | ARN of an ECS cluster for the service. | `string` | n/a | yes |\n| \u003ca name=\"input_enable_ecs_managed_tags\"\u003e\u003c/a\u003e [enable\\_ecs\\_managed\\_tags](#input\\_enable\\_ecs\\_managed\\_tags) | Specifies whether to enable Amazon ECS managed tags for the tasks within the service. | `bool` | `false` | no |\n| \u003ca name=\"input_enable_execute_command\"\u003e\u003c/a\u003e [enable\\_execute\\_command](#input\\_enable\\_execute\\_command) | Specifies whether to enable Amazon ECS Exec for the tasks within the service. | `bool` | `true` | no |\n| \u003ca name=\"input_enable_lb_test_listener\"\u003e\u003c/a\u003e [enable\\_lb\\_test\\_listener](#input\\_enable\\_lb\\_test\\_listener) | Enable a test listener on the load balancer. This is useful for testing the deployment process. | `bool` | `false` | no |\n| \u003ca name=\"input_health_check_grace_period_seconds\"\u003e\u003c/a\u003e [health\\_check\\_grace\\_period\\_seconds](#input\\_health\\_check\\_grace\\_period\\_seconds) | Seconds to ignore failing load balancer health checks on newly instantiated tasks to prevent premature shutdown. | `number` | `0` | no |\n| \u003ca name=\"input_lb_arn\"\u003e\u003c/a\u003e [lb\\_arn](#input\\_lb\\_arn) | The ARN of the load balancer to attach to the service. | `string` | n/a | yes |\n| \u003ca name=\"input_lb_listener\"\u003e\u003c/a\u003e [lb\\_listener](#input\\_lb\\_listener) | Use an existing LB listener to attach to the service. If used, the other lb\\_* arguments are ignored. | `string` | `null` | no |\n| \u003ca name=\"input_lb_listener_alpn_policy\"\u003e\u003c/a\u003e [lb\\_listener\\_alpn\\_policy](#input\\_lb\\_listener\\_alpn\\_policy) | The ALPN policy to use for HTTPS listener. | `string` | `null` | no |\n| \u003ca name=\"input_lb_listener_certificate_arn\"\u003e\u003c/a\u003e [lb\\_listener\\_certificate\\_arn](#input\\_lb\\_listener\\_certificate\\_arn) | The ARN of the certificate to use for HTTPS listener. | `string` | `null` | no |\n| \u003ca name=\"input_lb_listener_port\"\u003e\u003c/a\u003e [lb\\_listener\\_port](#input\\_lb\\_listener\\_port) | The port on the load balancer listener. | `number` | `80` | no |\n| \u003ca name=\"input_lb_listener_protocol\"\u003e\u003c/a\u003e [lb\\_listener\\_protocol](#input\\_lb\\_listener\\_protocol) | The protocol on the load balancer listener. | `string` | `\"HTTP\"` | no |\n| \u003ca name=\"input_lb_listener_ssl_policy\"\u003e\u003c/a\u003e [lb\\_listener\\_ssl\\_policy](#input\\_lb\\_listener\\_ssl\\_policy) | The SSL policy to use for HTTPS listener. | `string` | `\"ELBSecurityPolicy-FS-1-2-Res-2020-10\"` | no |\n| \u003ca name=\"input_lb_test_listener\"\u003e\u003c/a\u003e [lb\\_test\\_listener](#input\\_lb\\_test\\_listener) | Use an existing LB test listener to attach to the service. If used, the other lb\\_test\\_* arguments are ignored. | `string` | `null` | no |\n| \u003ca name=\"input_lb_test_listener_alpn_policy\"\u003e\u003c/a\u003e [lb\\_test\\_listener\\_alpn\\_policy](#input\\_lb\\_test\\_listener\\_alpn\\_policy) | The ALPN policy to use for the test HTTPS listener. | `string` | `null` | no |\n| \u003ca name=\"input_lb_test_listener_certificate_arn\"\u003e\u003c/a\u003e [lb\\_test\\_listener\\_certificate\\_arn](#input\\_lb\\_test\\_listener\\_certificate\\_arn) | The ARN of the certificate to use for the test HTTPS listener. | `string` | `null` | no |\n| \u003ca name=\"input_lb_test_listener_port\"\u003e\u003c/a\u003e [lb\\_test\\_listener\\_port](#input\\_lb\\_test\\_listener\\_port) | The port on the load balancer test listener. | `number` | `80` | no |\n| \u003ca name=\"input_lb_test_listener_protocol\"\u003e\u003c/a\u003e [lb\\_test\\_listener\\_protocol](#input\\_lb\\_test\\_listener\\_protocol) | The protocol on the load balancer test listener. | `string` | `\"HTTP\"` | no |\n| \u003ca name=\"input_lb_test_listener_ssl_policy\"\u003e\u003c/a\u003e [lb\\_test\\_listener\\_ssl\\_policy](#input\\_lb\\_test\\_listener\\_ssl\\_policy) | The SSL policy to use for the test HTTPS listener. | `string` | `\"ELBSecurityPolicy-FS-1-2-Res-2020-10\"` | no |\n| \u003ca name=\"input_load_balancer_container_name\"\u003e\u003c/a\u003e [load\\_balancer\\_container\\_name](#input\\_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 |\n| \u003ca name=\"input_load_balancer_container_port\"\u003e\u003c/a\u003e [load\\_balancer\\_container\\_port](#input\\_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 |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | Base name of the created resources. | `string` | n/a | yes |\n| \u003ca name=\"input_platform_version\"\u003e\u003c/a\u003e [platform\\_version](#input\\_platform\\_version) | Platform version on which to run your service. | `string` | `\"1.4.0\"` | no |\n| \u003ca name=\"input_propagate_tags\"\u003e\u003c/a\u003e [propagate\\_tags](#input\\_propagate\\_tags) | Specifies whether to propagate the tags from the task definition or the service to the tasks. | `string` | `\"SERVICE\"` | no |\n| \u003ca name=\"input_security_group_ids\"\u003e\u003c/a\u003e [security\\_group\\_ids](#input\\_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 |\n| \u003ca name=\"input_service_registries\"\u003e\u003c/a\u003e [service\\_registries](#input\\_service\\_registries) | Service discovery registries for the service. | \u003cpre\u003elist(object({\u003cbr\u003e    registry_arn   = string\u003cbr\u003e    port           = number\u003cbr\u003e    container_name = optional(string)\u003cbr\u003e    container_port = optional(number)\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_subnet_ids\"\u003e\u003c/a\u003e [subnet\\_ids](#input\\_subnet\\_ids) | Subnets associated with the task or service. | `list(string)` | n/a | yes |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | Tags to add to the created resources. | `map(any)` | `{}` | no |\n| \u003ca name=\"input_target_group_connection_termination\"\u003e\u003c/a\u003e [target\\_group\\_connection\\_termination](#input\\_target\\_group\\_connection\\_termination) | Whether to terminate connections at the end of the deregistration timeout on Network Load Balancers. | `bool` | `false` | no |\n| \u003ca name=\"input_target_group_deregistration_delay\"\u003e\u003c/a\u003e [target\\_group\\_deregistration\\_delay](#input\\_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 |\n| \u003ca name=\"input_target_group_health_check_healthy_threshold\"\u003e\u003c/a\u003e [target\\_group\\_health\\_check\\_healthy\\_threshold](#input\\_target\\_group\\_health\\_check\\_healthy\\_threshold) | Number of consecutive health checks successes required before considering an unhealthy target healthy. | `number` | `3` | no |\n| \u003ca name=\"input_target_group_health_check_interval\"\u003e\u003c/a\u003e [target\\_group\\_health\\_check\\_interval](#input\\_target\\_group\\_health\\_check\\_interval) | Approximate amount of time, in seconds, between health checks of an individual target. | `number` | `30` | no |\n| \u003ca name=\"input_target_group_health_check_matcher\"\u003e\u003c/a\u003e [target\\_group\\_health\\_check\\_matcher](#input\\_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 |\n| \u003ca name=\"input_target_group_health_check_path\"\u003e\u003c/a\u003e [target\\_group\\_health\\_check\\_path](#input\\_target\\_group\\_health\\_check\\_path) | Destination for the health check request. | `string` | `\"/health\"` | no |\n| \u003ca name=\"input_target_group_health_check_port\"\u003e\u003c/a\u003e [target\\_group\\_health\\_check\\_port](#input\\_target\\_group\\_health\\_check\\_port) | Port to use to connect with the target. | `any` | `\"traffic-port\"` | no |\n| \u003ca name=\"input_target_group_health_check_protocol\"\u003e\u003c/a\u003e [target\\_group\\_health\\_check\\_protocol](#input\\_target\\_group\\_health\\_check\\_protocol) | Protocol to use to connect with the target. Default: `target_group_protocol`. | `string` | `null` | no |\n| \u003ca name=\"input_target_group_health_check_timeout\"\u003e\u003c/a\u003e [target\\_group\\_health\\_check\\_timeout](#input\\_target\\_group\\_health\\_check\\_timeout) | Amount of time, in seconds, during which no response means a failed health check. | `number` | `5` | no |\n| \u003ca name=\"input_target_group_health_check_unhealthy_threshold\"\u003e\u003c/a\u003e [target\\_group\\_health\\_check\\_unhealthy\\_threshold](#input\\_target\\_group\\_health\\_check\\_unhealthy\\_threshold) | Number of consecutive health check failures required before considering the target unhealthy. | `number` | `3` | no |\n| \u003ca name=\"input_target_group_load_balancing_algorithm_type\"\u003e\u003c/a\u003e [target\\_group\\_load\\_balancing\\_algorithm\\_type](#input\\_target\\_group\\_load\\_balancing\\_algorithm\\_type) | Determines how the load balancer selects targets when routing requests. | `string` | `\"round_robin\"` | no |\n| \u003ca name=\"input_target_group_protocol\"\u003e\u003c/a\u003e [target\\_group\\_protocol](#input\\_target\\_group\\_protocol) | Protocol on the container to associate with the target group. | `string` | `\"HTTP\"` | no |\n| \u003ca name=\"input_target_group_protocol_version\"\u003e\u003c/a\u003e [target\\_group\\_protocol\\_version](#input\\_target\\_group\\_protocol\\_version) | The protocol version. | `string` | `\"HTTP1\"` | no |\n| \u003ca name=\"input_target_group_proxy_protocol_v2\"\u003e\u003c/a\u003e [target\\_group\\_proxy\\_protocol\\_v2](#input\\_target\\_group\\_proxy\\_protocol\\_v2) | Whether to enable support for proxy protocol v2 on Network Load Balancers. | `bool` | `false` | no |\n| \u003ca name=\"input_target_group_slow_start\"\u003e\u003c/a\u003e [target\\_group\\_slow\\_start](#input\\_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 |\n| \u003ca name=\"input_task_additional_execute_role_policies\"\u003e\u003c/a\u003e [task\\_additional\\_execute\\_role\\_policies](#input\\_task\\_additional\\_execute\\_role\\_policies) | Additional policy ARNs to attach to the execution role. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_task_additional_task_role_policies\"\u003e\u003c/a\u003e [task\\_additional\\_task\\_role\\_policies](#input\\_task\\_additional\\_task\\_role\\_policies) | Additional policy ARNs to attach to the task role. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_task_container_definitions\"\u003e\u003c/a\u003e [task\\_container\\_definitions](#input\\_task\\_container\\_definitions) | A list of valid container definitions provided as a valid HCL object list. | `any` | n/a | yes |\n| \u003ca name=\"input_task_cpu\"\u003e\u003c/a\u003e [task\\_cpu](#input\\_task\\_cpu) | Number of CPU units used by the task. | `number` | `1024` | no |\n| \u003ca name=\"input_task_cpu_architecture\"\u003e\u003c/a\u003e [task\\_cpu\\_architecture](#input\\_task\\_cpu\\_architecture) | CPU architecture required by the task. | `string` | `\"X86_64\"` | no |\n| \u003ca name=\"input_task_definition_name\"\u003e\u003c/a\u003e [task\\_definition\\_name](#input\\_task\\_definition\\_name) | Name of the task definition. Defaults to the base name. | `string` | `null` | no |\n| \u003ca name=\"input_task_ephemeral_storage_size_in_gib\"\u003e\u003c/a\u003e [task\\_ephemeral\\_storage\\_size\\_in\\_gib](#input\\_task\\_ephemeral\\_storage\\_size\\_in\\_gib) | The amount of ephemeral storage (in GiB) to allocate to the task. | `number` | `20` | no |\n| \u003ca name=\"input_task_inference_accelerators\"\u003e\u003c/a\u003e [task\\_inference\\_accelerators](#input\\_task\\_inference\\_accelerators) | List of Elastic Inference accelerators associated with the task. | \u003cpre\u003elist(object({\u003cbr\u003e    name = string\u003cbr\u003e    type = string\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_task_memory\"\u003e\u003c/a\u003e [task\\_memory](#input\\_task\\_memory) | Amount (in MiB) of memory used by the task. | `number` | `2048` | no |\n| \u003ca name=\"input_task_operating_system_family\"\u003e\u003c/a\u003e [task\\_operating\\_system\\_family](#input\\_task\\_operating\\_system\\_family) | OS family required by the task. | `string` | `\"LINUX\"` | no |\n| \u003ca name=\"input_task_proxy_configuration\"\u003e\u003c/a\u003e [task\\_proxy\\_configuration](#input\\_task\\_proxy\\_configuration) | Configuration details for an App Mesh proxy. | \u003cpre\u003eobject({\u003cbr\u003e    container_name = string\u003cbr\u003e    properties     = map(any)\u003cbr\u003e    type           = optional(string, \"APPMESH\")\u003cbr\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_task_volumes\"\u003e\u003c/a\u003e [task\\_volumes](#input\\_task\\_volumes) | A list of volume definitions. | \u003cpre\u003elist(object({\u003cbr\u003e    name      = string\u003cbr\u003e    host_path = string\u003cbr\u003e\u003cbr\u003e    docker_volume_configuration = optional(object({\u003cbr\u003e      autoprovision = bool\u003cbr\u003e      driver        = string\u003cbr\u003e      driver_opts   = map(any)\u003cbr\u003e      labels        = map(any)\u003cbr\u003e      scope         = string\u003cbr\u003e    }))\u003cbr\u003e\u003cbr\u003e    efs_volume_configuration = optional(object({\u003cbr\u003e      file_system_id          = string\u003cbr\u003e      root_directory          = optional(string)\u003cbr\u003e      transit_encryption      = optional(string)\u003cbr\u003e      transit_encryption_port = optional(number)\u003cbr\u003e\u003cbr\u003e      authorization_config = optional(object({\u003cbr\u003e        access_point_id = string\u003cbr\u003e        iam             = optional(string)\u003cbr\u003e      }))\u003cbr\u003e    }))\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_aws_lb_listener_arn\"\u003e\u003c/a\u003e [aws\\_lb\\_listener\\_arn](#output\\_aws\\_lb\\_listener\\_arn) | ARN of the ALB main listener. |\n| \u003ca name=\"output_aws_lb_test_listener_arn\"\u003e\u003c/a\u003e [aws\\_lb\\_test\\_listener\\_arn](#output\\_aws\\_lb\\_test\\_listener\\_arn) | ARN of the ALB test listener. |\n| \u003ca name=\"output_blue_target_group_arn\"\u003e\u003c/a\u003e [blue\\_target\\_group\\_arn](#output\\_blue\\_target\\_group\\_arn) | ARN of the blue target group. |\n| \u003ca name=\"output_cloudwatch_log_group_arn\"\u003e\u003c/a\u003e [cloudwatch\\_log\\_group\\_arn](#output\\_cloudwatch\\_log\\_group\\_arn) | ARN of the CloudWatch log group. |\n| \u003ca name=\"output_codedeploy_app_name\"\u003e\u003c/a\u003e [codedeploy\\_app\\_name](#output\\_codedeploy\\_app\\_name) | CodeDeploy application name. |\n| \u003ca name=\"output_codedeploy_deployment_group_name\"\u003e\u003c/a\u003e [codedeploy\\_deployment\\_group\\_name](#output\\_codedeploy\\_deployment\\_group\\_name) | CodeDeploy deployment group name. |\n| \u003ca name=\"output_green_target_group_arn\"\u003e\u003c/a\u003e [green\\_target\\_group\\_arn](#output\\_green\\_target\\_group\\_arn) | ARN of the green target group. |\n| \u003ca name=\"output_service_name\"\u003e\u003c/a\u003e [service\\_name](#output\\_service\\_name) | ECS service name. |\n| \u003ca name=\"output_task_definition_arn\"\u003e\u003c/a\u003e [task\\_definition\\_arn](#output\\_task\\_definition\\_arn) | ARN of the task definition. |\n| \u003ca name=\"output_task_definition_execution_role_arn\"\u003e\u003c/a\u003e [task\\_definition\\_execution\\_role\\_arn](#output\\_task\\_definition\\_execution\\_role\\_arn) | ARN of the task execution role. |\n| \u003ca name=\"output_task_definition_execution_role_name\"\u003e\u003c/a\u003e [task\\_definition\\_execution\\_role\\_name](#output\\_task\\_definition\\_execution\\_role\\_name) | Name of the task execution role. |\n| \u003ca name=\"output_task_definition_task_role_arn\"\u003e\u003c/a\u003e [task\\_definition\\_task\\_role\\_arn](#output\\_task\\_definition\\_task\\_role\\_arn) | ARN of the task role. |\n| \u003ca name=\"output_task_definition_task_role_name\"\u003e\u003c/a\u003e [task\\_definition\\_task\\_role\\_name](#output\\_task\\_definition\\_task\\_role\\_name) | Name of the task role. |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e= 4.36 |\n| \u003ca name=\"provider_random\"\u003e\u003c/a\u003e [random](#provider\\_random) | \u003e= 3.1 |\n\n## Resources\n\n- resource.aws_cloudwatch_log_group.main (main.tf#313)\n- resource.aws_codedeploy_app.main (main.tf#231)\n- resource.aws_codedeploy_deployment_group.main (main.tf#238)\n- resource.aws_ecs_service.main (main.tf#56)\n- resource.aws_lb_listener.main (main.tf#176)\n- resource.aws_lb_listener.test_listener (main.tf#202)\n- resource.aws_lb_target_group.main (main.tf#133)\n- resource.random_id.target_group (main.tf#122)\n- data source.aws_subnet.main (data.tf#1)\n\n# Examples\n### Basic\n```hcl\nmodule \"basic-example\" {\n  source = \"../../\"\n\n  name                       = \"basic-example\"\n  ecs_cluster_name           = \"example-cluster\"\n  lb_arn                     = \"lb.aws.amazon.com\"\n  subnet_ids                 = [\"subnet-123\", \"subnet-456\", \"subnet-789\"]\n  task_container_definitions = \"nginx\"\n}\n```\n\u003c!-- END_TF_DOCS --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeekcell%2Fterraform-aws-ecs-fargate-codedeploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeekcell%2Fterraform-aws-ecs-fargate-codedeploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeekcell%2Fterraform-aws-ecs-fargate-codedeploy/lists"}