Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ No resources.
| <a name="input_alb"></a> [alb](#input\_alb) | Map of values passed to ALB module definition. See the [ALB module](https://github.com/terraform-aws-modules/terraform-aws-alb) for full list of arguments supported | <pre>object({<br/> # Load Balancer<br/> access_logs = optional(object({<br/> bucket = string<br/> enabled = optional(bool, true)<br/> prefix = optional(string)<br/> }))<br/> connection_logs = optional(object({<br/> bucket = string<br/> enabled = optional(bool, true)<br/> prefix = optional(string)<br/> }))<br/> drop_invalid_header_fields = optional(bool, true)<br/> enable_cross_zone_load_balancing = optional(bool, true)<br/> enable_deletion_protection = optional(bool, true)<br/> enable_http2 = optional(bool, true)<br/> enable_waf_fail_open = optional(bool)<br/> enable_zonal_shift = optional(bool, true)<br/> idle_timeout = optional(number)<br/> internal = optional(bool)<br/> ip_address_type = optional(string)<br/> name = optional(string)<br/> preserve_host_header = optional(bool)<br/> security_groups = optional(list(string), [])<br/> subnet_ids = optional(list(string), [])<br/><br/> # Listener(s)<br/> default_port = optional(number, 80)<br/> default_protocol = optional(string, "HTTP")<br/> https_listener_ssl_policy = optional(string, "ELBSecurityPolicy-TLS13-1-2-2021-06")<br/> https_default_action = optional(any, {<br/> forward = {<br/> target_group_key = "atlantis"<br/> }<br/> })<br/> https_listener = optional(any, {})<br/> listeners = optional(any, {})<br/><br/> # Target Group(s)<br/> target_groups = optional(any, {})<br/><br/> # Securtity Group(s)<br/> create_security_group = optional(bool, true)<br/> security_group_name = optional(string)<br/> security_group_use_name_prefix = optional(bool, true)<br/> security_group_description = optional(string)<br/> security_group_ingress_rules = optional(map(object({<br/> name = optional(string)<br/> cidr_ipv4 = optional(string)<br/> cidr_ipv6 = optional(string)<br/> description = optional(string)<br/> from_port = optional(string)<br/> ip_protocol = optional(string, "tcp")<br/> prefix_list_id = optional(string)<br/> referenced_security_group_id = optional(string)<br/> tags = optional(map(string), {})<br/> to_port = optional(string)<br/> })),<br/> # Default<br/> {<br/> http = {<br/> from_port = 80<br/> cidr_ipv4 = "0.0.0.0/0"<br/> }<br/> https = {<br/> from_port = 443<br/> cidr_ipv4 = "0.0.0.0/0"<br/> }<br/> }<br/> )<br/> security_group_egress_rules = optional(<br/> map(object({<br/> name = optional(string)<br/> cidr_ipv4 = optional(string)<br/> cidr_ipv6 = optional(string)<br/> description = optional(string)<br/> from_port = optional(string)<br/> ip_protocol = optional(string, "tcp")<br/> prefix_list_id = optional(string)<br/> referenced_security_group_id = optional(string)<br/> tags = optional(map(string), {})<br/> to_port = optional(string)<br/> })),<br/> # Default<br/> {<br/> all = {<br/> ip_protocol = "-1"<br/> cidr_ipv4 = "0.0.0.0/0"<br/> }<br/> }<br/> )<br/> security_group_tags = optional(map(string), {})<br/><br/> # Route53 Record(s)<br/> route53_records = optional(map(object({<br/> zone_id = string<br/> name = optional(string)<br/> type = string<br/> evaluate_target_health = optional(bool, true)<br/> })))<br/><br/> # WAF<br/> associate_web_acl = optional(bool, false)<br/> web_acl_arn = optional(string)<br/><br/> tags = optional(map(string), {})<br/> })</pre> | `{}` | no |
| <a name="input_alb_security_group_id"></a> [alb\_security\_group\_id](#input\_alb\_security\_group\_id) | ID of an existing security group that will be used by ALB. Required if `create_alb` is `false` | `string` | `""` | no |
| <a name="input_alb_target_group_arn"></a> [alb\_target\_group\_arn](#input\_alb\_target\_group\_arn) | ARN of an existing ALB target group that will be used to route traffic to the Atlantis service. Required if `create_alb` is `false` | `string` | `""` | no |
| <a name="input_atlantis"></a> [atlantis](#input\_atlantis) | Map of values passed to Atlantis container definition. See the [ECS container definition module](https://github.com/terraform-aws-modules/terraform-aws-ecs/tree/master/modules/container-definition) for full list of arguments supported | <pre>object({<br/> uid = optional(string, 100)<br/> gid = optional(string, 1000)<br/><br/> command = optional(list(string))<br/> cpu = optional(number, 2048)<br/> dependsOn = optional(list(object({<br/> condition = string<br/> containerName = string<br/> })))<br/> disableNetworking = optional(bool)<br/> dnsSearchDomains = optional(list(string))<br/> dnsServers = optional(list(string))<br/> dockerLabels = optional(map(string))<br/> dockerSecurityOptions = optional(list(string))<br/> entrypoint = optional(list(string))<br/> environment = optional(list(object({<br/> name = string<br/> value = string<br/> })), [])<br/> environmentFiles = optional(list(object({<br/> type = string<br/> value = string<br/> })))<br/> extraHosts = optional(list(object({<br/> hostname = string<br/> ipAddress = string<br/> })))<br/> firelensConfiguration = optional(object({<br/> type = string<br/> options = optional(map(string))<br/> configFile = optional(object({<br/> type = string<br/> content = string<br/> }))<br/> }))<br/> healthCheck = optional(object({<br/> command = optional(list(string), [])<br/> interval = optional(number, 30)<br/> retries = optional(number, 3)<br/> startPeriod = optional(number)<br/> timeout = optional(number, 5)<br/> }))<br/> hostname = optional(string)<br/> image = optional(string, "ghcr.io/runatlantis/atlantis:latest")<br/> linuxParameters = optional(object({<br/> capabilities = optional(object({<br/> add = optional(list(string))<br/> drop = optional(list(string))<br/> }))<br/> devices = optional(list(object({<br/> containerPath = optional(string)<br/> hostPath = optional(string)<br/> permissions = optional(list(string))<br/> })))<br/> initProcessEnabled = optional(bool)<br/> maxSwap = optional(number)<br/> sharedMemorySize = optional(number)<br/> swappiness = optional(number)<br/> tmpfs = optional(list(object({<br/> containerPath = string<br/> mountOptions = optional(list(string))<br/> size = number<br/> })))<br/> }))<br/> logConfiguration = optional(object({<br/> logDriver = optional(string)<br/> options = optional(map(string))<br/> secretOptions = optional(list(object({<br/> name = string<br/> valueFrom = string<br/> })))<br/> }))<br/> memory = optional(number, 4096)<br/> memoryReservation = optional(number)<br/> mountPoints = optional(list(object({<br/> containerPath = optional(string)<br/> readOnly = optional(bool)<br/> sourceVolume = optional(string)<br/> })))<br/> port = optional(number, 4141)<br/> privileged = optional(bool, false)<br/> readonlyRootFilesystem = optional(bool, false)<br/> repositoryCredentials = optional(object({<br/> credentialsParameter = optional(string)<br/> }))<br/> resourceRequirements = optional(list(object({<br/> type = string<br/> value = string<br/> })))<br/> restartPolicy = optional(object({<br/> enabled = optional(bool, true)<br/> ignoredExitCodes = optional(list(number))<br/> restartAttemptPeriod = optional(number)<br/> }),<br/> # Default<br/> {<br/> enabled = true<br/> }<br/> )<br/> secrets = optional(list(object({<br/> name = string<br/> valueFrom = string<br/> })))<br/> startTimeout = optional(number, 30)<br/> stopTimeout = optional(number, 120)<br/> user = optional(string, "atlantis")<br/> volumesFrom = optional(list(object({<br/> readOnly = optional(bool)<br/> sourceContainer = optional(string)<br/> })))<br/> workingDirectory = optional(string)<br/><br/> # CloudWatch Log Group<br/> enable_cloudwatch_logging = optional(bool, true)<br/> create_cloudwatch_log_group = optional(bool, true)<br/> cloudwatch_log_group_use_name_prefix = optional(bool, true)<br/> cloudwatch_log_group_retention_in_days = optional(number, 14)<br/> cloudwatch_log_group_class = optional(string)<br/> cloudwatch_log_group_kms_key_id = optional(string)<br/> })</pre> | `{}` | no |
| <a name="input_atlantis"></a> [atlantis](#input\_atlantis) | Map of values passed to Atlantis container definition. See the [ECS container definition module](https://github.com/terraform-aws-modules/terraform-aws-ecs/tree/master/modules/container-definition) for full list of arguments supported | <pre>object({<br/> uid = optional(string, 100)<br/> gid = optional(string, 1000)<br/><br/> command = optional(list(string))<br/> cpu = optional(number, 2048)<br/> dependsOn = optional(list(object({<br/> condition = string<br/> containerName = string<br/> })))<br/> disableNetworking = optional(bool)<br/> dnsSearchDomains = optional(list(string))<br/> dnsServers = optional(list(string))<br/> dockerLabels = optional(map(string))<br/> dockerSecurityOptions = optional(list(string))<br/> entrypoint = optional(list(string))<br/> environment = optional(list(object({<br/> name = string<br/> value = string<br/> })), [])<br/> environmentFiles = optional(list(object({<br/> type = string<br/> value = string<br/> })))<br/> extraHosts = optional(list(object({<br/> hostname = string<br/> ipAddress = string<br/> })))<br/> firelensConfiguration = optional(object({<br/> type = string<br/> options = optional(map(string))<br/> configFile = optional(object({<br/> type = string<br/> content = string<br/> }))<br/> }))<br/> fqdn = optional(string)<br/> healthCheck = optional(object({<br/> command = optional(list(string), [])<br/> interval = optional(number, 30)<br/> retries = optional(number, 3)<br/> startPeriod = optional(number)<br/> timeout = optional(number, 5)<br/> }))<br/> hostname = optional(string)<br/> image = optional(string, "ghcr.io/runatlantis/atlantis:latest")<br/> linuxParameters = optional(object({<br/> capabilities = optional(object({<br/> add = optional(list(string))<br/> drop = optional(list(string))<br/> }))<br/> devices = optional(list(object({<br/> containerPath = optional(string)<br/> hostPath = optional(string)<br/> permissions = optional(list(string))<br/> })))<br/> initProcessEnabled = optional(bool)<br/> maxSwap = optional(number)<br/> sharedMemorySize = optional(number)<br/> swappiness = optional(number)<br/> tmpfs = optional(list(object({<br/> containerPath = string<br/> mountOptions = optional(list(string))<br/> size = number<br/> })))<br/> }))<br/> logConfiguration = optional(object({<br/> logDriver = optional(string)<br/> options = optional(map(string))<br/> secretOptions = optional(list(object({<br/> name = string<br/> valueFrom = string<br/> })))<br/> }))<br/> memory = optional(number, 4096)<br/> memoryReservation = optional(number)<br/> mountPoints = optional(list(object({<br/> containerPath = optional(string)<br/> readOnly = optional(bool)<br/> sourceVolume = optional(string)<br/> })))<br/> port = optional(number, 4141)<br/> privileged = optional(bool, false)<br/> readonlyRootFilesystem = optional(bool, false)<br/> repositoryCredentials = optional(object({<br/> credentialsParameter = optional(string)<br/> }))<br/> resourceRequirements = optional(list(object({<br/> type = string<br/> value = string<br/> })))<br/> restartPolicy = optional(object({<br/> enabled = optional(bool, true)<br/> ignoredExitCodes = optional(list(number))<br/> restartAttemptPeriod = optional(number)<br/> }),<br/> # Default<br/> {<br/> enabled = true<br/> }<br/> )<br/> secrets = optional(list(object({<br/> name = string<br/> valueFrom = string<br/> })))<br/> startTimeout = optional(number, 30)<br/> stopTimeout = optional(number, 120)<br/> user = optional(string, "atlantis")<br/> volumesFrom = optional(list(object({<br/> readOnly = optional(bool)<br/> sourceContainer = optional(string)<br/> })))<br/> workingDirectory = optional(string)<br/><br/> # CloudWatch Log Group<br/> enable_cloudwatch_logging = optional(bool, true)<br/> create_cloudwatch_log_group = optional(bool, true)<br/> cloudwatch_log_group_use_name_prefix = optional(bool, true)<br/> cloudwatch_log_group_retention_in_days = optional(number, 14)<br/> cloudwatch_log_group_class = optional(string)<br/> cloudwatch_log_group_kms_key_id = optional(string)<br/> })</pre> | `{}` | no |
| <a name="input_certificate_arn"></a> [certificate\_arn](#input\_certificate\_arn) | ARN of certificate issued by AWS ACM. If empty, a new ACM certificate will be created and validated using Route53 DNS | `string` | `""` | no |
| <a name="input_certificate_domain_name"></a> [certificate\_domain\_name](#input\_certificate\_domain\_name) | Route53 domain name to use for ACM certificate. Route53 zone for this domain should be created in advance. Specify if it is different from value in `route53_zone_name` | `string` | `""` | no |
| <a name="input_cluster"></a> [cluster](#input\_cluster) | Map of values passed to ECS cluster module definition. See the [ECS cluster module](https://github.com/terraform-aws-modules/terraform-aws-ecs/tree/master/modules/cluster) for full list of arguments supported | <pre>object({<br/> # Cluster<br/> name = optional(string)<br/> configuration = optional(object({<br/> execute_command_configuration = optional(object({<br/> kms_key_id = optional(string)<br/> log_configuration = optional(object({<br/> cloud_watch_encryption_enabled = optional(bool)<br/> cloud_watch_log_group_name = optional(string)<br/> s3_bucket_encryption_enabled = optional(bool)<br/> s3_bucket_name = optional(string)<br/> s3_kms_key_id = optional(string)<br/> s3_key_prefix = optional(string)<br/> }))<br/> logging = optional(string, "OVERRIDE")<br/> }))<br/> managed_storage_configuration = optional(object({<br/> fargate_ephemeral_storage_kms_key_id = optional(string)<br/> kms_key_id = optional(string)<br/> }))<br/> }),<br/> # Default<br/> {<br/> execute_command_configuration = {<br/> log_configuration = {<br/> cloud_watch_log_group_name = "placeholder" # will use CloudWatch log group created by module<br/> }<br/> }<br/> }<br/> )<br/> setting = optional(list(object({<br/> name = string<br/> value = string<br/> })),<br/> # Default<br/> [{<br/> name = "containerInsights"<br/> value = "enabled"<br/> }]<br/> )<br/><br/> # Cloudwatch log group<br/> create_cloudwatch_log_group = optional(bool, true)<br/> cloudwatch_log_group_retention_in_days = optional(number, 90)<br/> cloudwatch_log_group_kms_key_id = optional(string)<br/> cloudwatch_log_group_class = optional(string)<br/> cloudwatch_log_group_tags = optional(map(string), {})<br/><br/> # Capacity providers<br/> default_capacity_provider_strategy = optional(<br/> map(object({<br/> base = optional(number)<br/> name = optional(string) # Will fall back to use map key if not set<br/> weight = optional(number)<br/> })),<br/> # Default<br/> {<br/> FARGATE = {<br/> weight = 100<br/> }<br/> }<br/> )<br/> })</pre> | `{}` | no |
Expand Down
1 change: 1 addition & 0 deletions main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -272,6 +272,7 @@ module "ecs_service" {
essential = true
extraHosts = var.atlantis.extraHosts
firelensConfiguration = var.atlantis.firelensConfiguration
fqdn = var.atlantis.fqdn
healthCheck = var.atlantis.healthCheck
hostname = var.atlantis.hostname
image = var.atlantis.image
Expand Down
1 change: 1 addition & 0 deletions variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ variable "atlantis" {
content = string
}))
}))
fqdn = optional(string)
healthCheck = optional(object({
command = optional(list(string), [])
interval = optional(number, 30)
Expand Down