|
@@ -7,13 +7,82 @@ locals {
|
|
|
region_vars = read_terragrunt_config(find_in_parent_folders("region.hcl"))
|
|
|
account_vars = read_terragrunt_config(find_in_parent_folders("account.hcl"))
|
|
|
global_vars = read_terragrunt_config(find_in_parent_folders("globals.hcl"))
|
|
|
+
|
|
|
+ # Extract the variables we need for easy access
|
|
|
+ account_name = local.account_vars.locals.account_name
|
|
|
+ account_id = local.account_vars.locals.aws_account_id
|
|
|
+ aws_region = local.region_vars.locals.aws_region
|
|
|
+ aws_partition = local.partition_vars.locals.aws_partition
|
|
|
+ common_services_account = local.partition_vars.locals.common_services_account
|
|
|
+ legacy_account = local.environment_vars.locals.legacy_account
|
|
|
+ tfstate_region = local.partition_vars.locals.tfstate_region
|
|
|
+
|
|
|
+ common_profile = local.partition_vars.locals.common_profile
|
|
|
}
|
|
|
|
|
|
# Terragrunt will copy the Terraform configurations specified by the source parameter, along with any files in the
|
|
|
# working directory, into a temporary folder, and execute your Terraform commands in that folder.
|
|
|
terraform {
|
|
|
# Double slash is intentional and required to show root of modules
|
|
|
- source = "git@github.xdr.accenturefederalcyber.com:mdr-engineering/xdr-terraform-modules.git//base/codebuild_splunk_apps?ref=v4.0.0"
|
|
|
+ source = "git@github.xdr.accenturefederalcyber.com:mdr-engineering/xdr-terraform-modules.git//base/codebuild_splunk_apps?ref=v4.0.13"
|
|
|
+}
|
|
|
+
|
|
|
+# ---------------------------------------------------------------------------------------------------------------------
|
|
|
+# Generate an AWS provider block
|
|
|
+# Temp fix to backlevel provider because of codebuild issue
|
|
|
+# <insert github link here to provider issue>
|
|
|
+# ---------------------------------------------------------------------------------------------------------------------
|
|
|
+generate "provider" {
|
|
|
+ path = "provider.tf"
|
|
|
+ if_exists = "overwrite_terragrunt"
|
|
|
+ contents = <<EOF
|
|
|
+provider "template" {
|
|
|
+}
|
|
|
+provider "aws" {
|
|
|
+ region = "${local.aws_region}"
|
|
|
+ assume_role {
|
|
|
+ role_arn = "arn:${local.aws_partition}:iam::${local.account_id}:role/user/mdr_terraformer"
|
|
|
+ session_name = "terraform-default"
|
|
|
+ }
|
|
|
+ profile = "${local.common_profile}"
|
|
|
+ # Only these AWS Account IDs may be operated on by this template
|
|
|
+ allowed_account_ids = ["${local.account_id}"]
|
|
|
+}
|
|
|
+# The "common" provider in the respective partition is always available
|
|
|
+provider "aws" {
|
|
|
+ region = "${local.aws_region}"
|
|
|
+ allowed_account_ids = [ "471284459109", "701290387780" ]
|
|
|
+ profile = "${local.common_profile}"
|
|
|
+ alias = "common"
|
|
|
+ assume_role {
|
|
|
+ role_arn = "arn:${local.aws_partition}:iam::${local.common_services_account}:role/user/mdr_terraformer"
|
|
|
+ session_name = "terraform-common"
|
|
|
+ }
|
|
|
+}
|
|
|
+# The "mdr-common-services-commercial" provider is used for public DNS entries
|
|
|
+provider "aws" {
|
|
|
+ region = "us-east-1"
|
|
|
+ allowed_account_ids = [ "471284459109" ]
|
|
|
+ profile = "commercial"
|
|
|
+ alias = "mdr-common-services-commercial"
|
|
|
+ assume_role {
|
|
|
+ role_arn = "arn:aws:iam::471284459109:role/user/mdr_terraformer"
|
|
|
+ session_name = "terraform-mdr-common-services-commercial"
|
|
|
+ }
|
|
|
+}
|
|
|
+# The "C2" provider, used for private DNS
|
|
|
+provider "aws" {
|
|
|
+ region = "us-gov-east-1"
|
|
|
+ allowed_account_ids = [ "721817724804", "738800754746" ]
|
|
|
+ profile = "govcloud"
|
|
|
+ alias = "c2"
|
|
|
+ #use_fips_endpoint = true
|
|
|
+ assume_role {
|
|
|
+ role_arn = "arn:aws-us-gov:iam::${ local.environment_vars.locals.c2_accounts["aws-us-gov"] }:role/user/mdr_terraformer"
|
|
|
+ session_name = "terraform-c2"
|
|
|
+ }
|
|
|
+}
|
|
|
+EOF
|
|
|
}
|
|
|
|
|
|
#Github specific provider
|
|
@@ -25,7 +94,7 @@ terraform {
|
|
|
required_providers {
|
|
|
aws = {
|
|
|
source = "hashicorp/aws"
|
|
|
- version = "= 4.4.0" # 2022-03-08: upgrade from 3.63.0; 2021-09-21: upgrade from 3.37.0
|
|
|
+ version = "= 3.63.0" # 2022-03-08: upgrade from 3.63.0; 2021-09-21: upgrade from 3.37.0
|
|
|
}
|
|
|
vault = {
|
|
|
source = "hashicorp/vault"
|