/terraform-aws-terrateam

Terraform for running Terrateam on AWS ECS

Primary LanguageHCL

terraform-aws-terrateam

Terraform for running Terrateam on AWS ECS

pre-commit

Requirements

Name Version
terraform >= 1.5.0
aws >= 5.0.0

Providers

Name Version
aws >= 5.0.0

Modules

No modules.

Resources

Name Type
aws_ecs_cluster.this resource
aws_ecs_cluster_capacity_providers.this resource
aws_ecs_service.this resource
aws_ecs_task_definition.this resource
aws_iam_role.ecs_task resource
aws_iam_role.ecs_task_execution resource
aws_iam_role_policy.ecs_task resource
aws_iam_role_policy.ecs_task_execution resource
aws_security_group.this resource
aws_caller_identity.current data source
aws_iam_policy_document.ecs_task data source
aws_iam_policy_document.ecs_task_assume data source
aws_iam_policy_document.ecs_task_execution data source
aws_iam_policy_document.ecs_task_execution_assume data source
aws_region.current data source
aws_subnet.this data source

Inputs

Name Description Type Default Required
database Database connection configuration

host: Cluster endpoint url/ip
port: Cluster port
name: Database name
username: Database username
password: Database password (secret)
object({
host = string
port = string
name = string
username = string
password = string
})
n/a yes
github Github integration configuration

app_id: Github application id
app_client_id: GitHub application client id
app_client_secret: GitHub application client secret (secret)
app_pem: GitHub application PEM (secret)
webhook_secret: GitHub application webhook secret (secret)
webhook_url_update: Automatically update github application webhook url
object({
app_id = string
app_client_id = string
app_client_secret = string
app_pem = string
webhook_secret = string
webhook_url_update = optional(bool, true)
})
n/a yes
name Name of terrateam deployment string n/a yes
tags Key/Value map of resource tags map(string) {} no
terrateam Terrateam Configuration.

image_url: Docker image URL e.g. ghcr.io/terrateamio/terrateam:v1
api_base: Terrateam public-facing URL including a trailing /api e.g. https://terrateam.example.com/api
target_group_arn: Loadbalancer target group terrateam server will use to receive requests.
subnet_ids: Subnets associated with the task or service.
security_group_ids: Security groups associated with the task or service.
object({
image_url = optional(string, "ghcr.io/terrateamio/terrateam:v1")
api_base = string
target_group_arn = string
subnet_ids = list(string)
})
n/a yes

Outputs

Name Description
security_group_id ECS Service security group id. Usefull for adding non-default access rules