| alb_deregistration_delay |
The amount time for Elastic Load Balancing to wait before changing the state of a deregistering target from draining to unused. The range is 0-3600 seconds. The default value is 300 seconds |
number |
30 |
no |
| alb_listener_arn |
The ARN of the listener to which to attach the routing rule. |
string |
"" |
no |
| alb_slow_start |
The amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds.The amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds. |
number |
0 |
no |
| application_config |
n/a |
object({ name = string, environment = string, cpu = optional(number, 0), memory = optional(number, 0), image = string, entrypoint = optional(list(string), null) cmd = optional(list(string), null) port = optional(number) environments_variables = any }) |
n/a |
yes |
| aws_alb_listener_rule_conditions |
Example [{ type = "host_header", values = ["google.com"] }, { type = "path_pattern", values = ["/"] }] |
list(object({ type = string values = list(string) })) |
[] |
no |
| aws_alb_listener_rule_conditions_advanced |
A list of maps describing the conditions of the rule. The order in which conditions are specified is not significant. Any condition block with a type of path-pattern or host-header must include a values block. For any other condition type, only one values block can be specified. For more information, see the AWS documentation on Listener Rules. Example: |
list(object({ name = string rules = list(object({ type = string values = list(string) http_header_name = optional(string, null) })) auth = optional(object({ type = string authorization_endpoint = optional(string, null) # oidc client_id = optional(string, null) # oidc client_secret = optional(string, null) # oidc issuer = optional(string, null) # oidc token_endpoint = optional(string, null) # oidc user_info_endpoint = optional(string, null) # oidc authentication_request_extra_params = optional(list(string), null) # cognito on_unauthenticated_request = optional(string, null) # cognito scope = optional(string, null) # cognito session_cookie_name = optional(string, null) # cognito session_timeout = optional(number, null) # cognito user_pool_arn = optional(string, null) # cognito user_pool_client_id = optional(string, null) # cognito user_pool_domain = optional(string, null) # cognito }), null) })) |
null |
no |
| capacity_provider_strategy |
n/a |
list(object({ capacity_provider = string weight = optional(number, 1) base = optional(number, 0) })) |
[] |
no |
| cloudwatch_logs |
Cloudwatch logs configuration |
object({ enabled = optional(bool, true) retention_in_days = optional(number, 30) }) |
{ "enabled": true, "retention_in_days": 30 } |
no |
| cron |
Allows to set cron jobs using aws event bridge please check examples |
object({ settings = list(object({ name = string args = list(string) schedule_expression = string desired_count = optional(number, 1) })), execution_script = list(string) }) |
null |
no |
| deployment |
Desired count will be ignored after first deployment |
object({ first_deployment_desired_count = optional(number, 1) # I have no idea minimum_healthy_percent = optional(number, 50) maximum_healthy_percent = optional(number, 200) enable_asg = optional(bool, false) auto_scaling = optional(object({ minimum = number maximum = number rules = list(object({ name = string metric = string metric_period = number cooldown = number threshold = number period = number comparison_operator = string statistic = string evaluation_periods = number scaling_adjustment = number })) })) }) |
n/a |
yes |
| docker_labels |
Docker labels to be added to the container. The labels map is a set of key/value pairs. Application container is named var.application_config.name .To add labels to webserver you have to set container_name to webserver name for example nginx. |
list(object({ container_name = string labels = optional(map(string), {}) })) |
[] |
no |
| ecs_settings |
n/a |
object({ ecs_launch_type = string, ecs_cluster_name = string, run_type = string, }) |
n/a |
yes |
| enable_code_build |
Enable code build |
bool |
false |
no |
| fargate_datadog_sidecar_parameters |
n/a |
object({ image = optional(string, "public.ecr.aws/datadog/agent:latest") dd_site = optional(string, "datadoghq.eu") key = string }) |
{ "dd_site": "datadoghq.eu", "image": "public.ecr.aws/datadog/agent:latest", "key": null } |
no |
| health_checks |
Health check configuration for the service. |
list(object({ enabled = optional(bool, true) healthy_threshold = number interval = number matcher = string path = string timeout = number unhealthy_threshold = number })) |
[ { "enabled": true, "healthy_threshold": 5, "interval": 10, "matcher": 200, "path": "/", "timeout": 10, "unhealthy_threshold": 5 } ] |
no |
| list_of_secrets_in_secrets_manager_to_load |
List of names of secret manager secrets to load by theirs name. Module will load all secrets from secret manager and put them to envs. |
set(string) |
[] |
no |
| network_lb |
Network load balancer configuration |
object({ nlb_arn = string, port_configuration = set(object({ protocol = string, port = number })) }) |
{ "nlb_arn": "", "port_configuration": [] } |
no |
| network_mode |
The network mode to use for the tasks. The valid values are awsvpc, bridge, host, and none. If no network mode is specified, the default is bridge. |
string |
null |
no |
| ordered_placement_strategy |
https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PlacementStrategy.html |
list(object({ type = string field = optional(string, null) })) |
[ { "field": "attribute:ecs.availability-zone", "type": "spread" } ] |
no |
| placement_constraints |
Placement constraints for the task |
list(object({ type = string expression = string })) |
[] |
no |
| scheduling_strategy |
Scheduling strategy to use for the service. The valid values are REPLICA and DAEMON. Defaults to REPLICA. Note that Tasks using the Fargate launch type or the CODE_DEPLOY or EXTERNAL deployment controller types don't support the DAEMON scheduling strategy. |
string |
"REPLICA" |
no |
| security_groups |
Setting requires network_mode to be set to awsvpc. |
list(string) |
[] |
no |
| service_policy |
please use aws_iam_policy_document to define your policy |
string |
"" |
no |
| store_secrets_at_s3 |
Store secrets at s3 bucket, i dont recommend this option |
object({ enable = bool bucket_name = string prefix_name = optional(string, "") }) |
{ "bucket_name": "", "enable": false, "prefix_name": "" } |
no |
| subnets |
Setting requires network_mode to be set to awsvpc. |
list(string) |
[] |
no |
| tags |
A mapping of tags to assign to the resource. |
map(string) |
{} |
no |
| use_static_port_on_ec2 |
If set to true, the service will use the random port on the EC2 instances. |
bool |
false |
no |
| volumes |
Volumes to attach to the container. This parameter maps to Volumes in the Create a container section of the Docker Remote API and the --volume option to docker run. List of maps with keys: name, host_path, container_path, read_only |
list(any) |
[] |
no |
| volumes_mount_point |
Volumes mount point at host |
list(object({ sourceVolume = string containerPath = string readOnly = bool })) |
[] |
no |
| vpc_id |
The ID of the VPC. |
string |
n/a |
yes |
| web_server |
n/a |
object({ enabled = bool name = optional(string, "nginx") container_port = optional(number, 80) host_port = optional(number, 0) image = optional(string, "nginx:latest") command = optional(list(string), null) entrypoint = optional(list(string), null) }) |
{ "enabled": false } |
no |
| worker_configuration |
Allows to set worker configuration |
object({ binary = optional(string, "node") execution_script = optional(string, "") args = optional(string, "") }) |
null |
no |