modules/atlantis/main.tf (50 lines of code) (raw):

locals { custom_environment_secrets = var.gitlab_user != "" ? var.custom_environment_secrets_gitlab : var.github_user != "" ? var.custom_environment_secrets_github : var.custom_environment_secrets_bitbucket atlantis_gitlab_hostname = var.gitlab_user != "" ? var.atlantis_gitlab_hostname : "" } module "atlantis" { source = "terraform-aws-modules/atlantis/aws" version = "3.28.0" atlantis_image = "${var.atlantis_ecr_repository}:latest" policies_arn = [ "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy", var.tfstate_bucket_policy_arn, "arn:aws:iam::aws:policy/AdministratorAccess" ] name = var.atlantis_name # VPC vpc_id = var.vpc_id private_subnet_ids = var.private_subnet_ids public_subnet_ids = var.public_subnet_ids enable_ephemeral_storage = true # Get GitHub subnets, fallback to VPC range as default value alb_ingress_cidr_blocks = ["10.0.0.0/8"] #local.alb_ingress_cidr_blocks alb_ingress_ipv6_cidr_blocks = [] security_group_ids = var.security_group_ids # DNS (without trailing dot) route53_zone_name = var.route53_zone_name # ACM (SSL certificate) - Specify ARN of an existing certificate or new one will be created and validated using Route53 DNS certificate_arn = var.certificate_arn # Atlantis atlantis_repo_allowlist = var.repo_whitelist # GitHub integration atlantis_github_user = var.github_user atlantis_github_user_token = var.atlantis_github_user_token atlantis_github_user_token_ssm_parameter_name = var.atlantis_github_user_token_ssm_parameter_name # Gitlab integration atlantis_gitlab_user = var.gitlab_user atlantis_gitlab_user_token = var.atlantis_gitlab_user_token atlantis_gitlab_hostname = var.atlantis_gitlab_hostname atlantis_gitlab_user_token_ssm_parameter_name = var.atlantis_gitlab_user_token_ssm_parameter_name # Bitbucket integration atlantis_bitbucket_base_url = var.atlantis_bitbucket_base_url atlantis_bitbucket_user = var.bitbucket_user atlantis_bitbucket_user_token = var.atlantis_bitbucket_user_token # Additional environment variables custom_environment_secrets = local.custom_environment_secrets custom_environment_variables = [ { name : "ATLANTIS_REPO_CONFIG_JSON", value : jsonencode(yamldecode(file("${path.module}/repos.yaml"))) } ] depends_on = [null_resource.image_create] } # If you use EPAM Cloud Custodian you need to create this role module "read_only_role" { count = var.c7n_user != "" ? 1 : 0 source = "../c7n_epam" atlantis_role_arn = module.atlantis.task_role_arn region = var.region depends_on = [module.atlantis] }