Skip to content

synapsestudios/terraform-aws-ecs-deployment

Repository files navigation

AWS ECS Deployment Spinnaker Compatible (Fargate)

This module creates an ECS Fargate deployment that is compatible with Spinnaker's naming conventions and is intended to be used with synapsestudios/terraform-aws-ecs-fargate-stack

Requirements

Name Version
terraform ~> 0.12.29
aws ~> 2.53

Providers

Name Version
aws ~> 2.53

Inputs

Name Description Type Default Required
cluster_name Name of the cluster this deployment will run on. string n/a yes
container_definitions JSON Represention of the Docker definitions string n/a yes
dns_zone Name of the DNS zone to use with this deployment. string n/a yes
ecs_cluster_arn ARN of ECS Cluster for this deployment. string n/a yes
environment_name Name of environment. string n/a yes
load_balancer_arn ARN of the load balancer target group to assing this deployment to. string n/a yes
name Name of the deployment. string n/a yes
security_groups List of security group IDs to associate with this deployment. list(string) n/a yes
subnets List of subnet names this deployment will reside on. list(string) n/a yes
tags A mapping of tags to assign to the AWS resources. map(string) n/a yes
vpc_id ID of the VPC this deployment will use. string n/a yes
alb_health_check_codes HTTP responses for passing health checks. list(number)
[
200
]
no
alb_health_check_path The destination for the health check request. string "/health-check" no
alb_health_check_port The port to use for connections from the ALB to the deployment. Valid values are either ports 1-65535, or traffic-port string "traffic-port" no
alb_host_names ALB host header to associate with this deployment list(string) [] no
alb_listner_rule_priority (Optional) The priority for the rule between 1 and 50000. Leaving it unset will automatically set the rule with next available priority after currently existing highest rule. A listener can't have multiple rules with the same priority. number null no
alb_path_patterns ALB URL Path to match for this deployment list(string)
[
"/*"
]
no
alb_protocol The protocol to use for routing traffic from the ALB to the deployment. Should be one of TCP, TLS, UDP, TCP_UDP, HTTP or HTTPS string "HTTP" no
alb_source_ips List of CIDR address to match for this deployments ALB routing condition. Default is 0.0.0.0/0, ::/0 . This is used to allow only specific IP addresses access to deployment. list(string)
[
"0.0.0.0/0",
"::/0"
]
no
alb_target_group_name (Optional) Name of the ALB Target group to create. Default is <cluster_name>-<deployment_name> string null no
autoscaling If true, autoscaling will be enabled on this deployment. bool true no
autoscaling_role Name of the role allowed to perform autoscaling for this deployment. string "role/aws-service-role/ecs.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ECSService" no
cpu Ammount of cpu shares allocate for deployment. number 256 no
dns_names DNS names to associate with this deployment list(string) [] no
dns_root_target If true, a DNS record from the root of the DNS Zone will be routed to this deployment. bool false no
execution_role (Optional) IAM Role that the Amazon ECS container agent and the Docker daemon can assume. string "role/ecsTaskExecutionRole" no
http_listener_arn ARN of the HTTP listener to assoicate this deployment with. string null no
https_listener_arn ARN of the HTTPS listener to assoicate this deployment with. string null no
managed If true, Terraform will ensure task modifications and replica counts are fully managed by Terraform. bool false no
max_capacity The max capacity of the scalable target. number 1 no
memory Ammount of memory to allocate for deployment. number 512 no
min_capacity The min capacity of the scalable target. number 1 no
platform_version Fargate Platform version. string "1.3.0" no
port_mappings Key value pair mappings of Docker containers and TCP ports to be connected to the load balancer. list(object({ container_name = string, container_port = number })) [] no
private_dns If true, private DNS zones will be used. bool false no
public_ip If true a public IP Address will be assigned to each running task. bool false no
service_discovery_namespace_id ID of the service discovery namespace to be used string null no
service_name Name of the service to associate with deployment, if unset defaults to deployment name. string null no
task_role IAM role that allows your Amazon ECS container task to make calls to other AWS services. string "role/ecsTaskExecutionRole" no
use_load_balancer If true, this service will be bound to the load balancer. bool true no