Pārlūkot izejas kodu

Updates to latest modules

Includes fix for issue with AWS provider v4.4.0
Brad Poulton 3 gadi atpakaļ
vecāks
revīzija
6d41871e65

+ 91 - 4
prod/aws-us-gov/mdr-prod-c2/380-codebuild-portal-lambda/terragrunt.hcl

@@ -7,13 +7,100 @@ 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"))
+
+  # Generate our standard tags
+  standard_tags = merge(
+    local.global_vars.locals.global_tags,
+    local.environment_vars.locals.environment_tags,
+    local.partition_vars.locals.partition_tags,
+    local.region_vars.locals.region_tags,
+    local.account_vars.locals.account_tags
+  )
+
+  # 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_portal_lambda?ref=v4.0.0"
+  source = "git@github.xdr.accenturefederalcyber.com:mdr-engineering/xdr-terraform-modules.git//base/codebuild_portal_lambda?ref=v4.0.3"
+}
+
+# ---------------------------------------------------------------------------------------------------------------------
+# Generate an AWS provider block
+# ---------------------------------------------------------------------------------------------------------------------
+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
@@ -69,9 +156,9 @@ inputs = {
     Purpose = "Build portal_data_sync with Codebuild"
     Terraform = "aws/${basename(get_parent_terragrunt_dir())}/${path_relative_to_include()}/"
   }
-  source_version  = "master"
-  enable_webhooks = false
-  name            = "portal_data_sync" 
+  source_version         = "master"
+  webhook_filter_pattern = "^refs/heads/master$"
+  name                   = "portal_data_sync" 
 }
 terraform_version_constraint = "= 1.1.6"
 terragrunt_version_constraint = "= 0.36.2"

+ 92 - 5
test/aws-us-gov/mdr-test-c2/380-codebuild-portal-lambda/terragrunt.hcl

@@ -7,13 +7,100 @@ 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"))
+
+  # Generate our standard tags
+  standard_tags = merge(
+    local.global_vars.locals.global_tags,
+    local.environment_vars.locals.environment_tags,
+    local.partition_vars.locals.partition_tags,
+    local.region_vars.locals.region_tags,
+    local.account_vars.locals.account_tags
+  )
+
+  # 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_portal_lambda?ref=v4.0.0"
+  source = "git@github.xdr.accenturefederalcyber.com:mdr-engineering/xdr-terraform-modules.git//base/codebuild_portal_lambda?ref=v4.0.3"
+}
+
+# ---------------------------------------------------------------------------------------------------------------------
+# Generate an AWS provider block
+# ---------------------------------------------------------------------------------------------------------------------
+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 +112,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"
@@ -69,9 +156,9 @@ inputs = {
     Purpose = "Build portal_data_sync with Codebuild"
     Terraform = "aws/${basename(get_parent_terragrunt_dir())}/${path_relative_to_include()}/"
   }
-  source_version  = "develop"
-  webhook_branch_filter = "^(develop)$"
-  name            = "portal_data_sync" 
+  source_version         = "develop"
+  webhook_filter_pattern = "^refs/heads/develop$"
+  name                   = "portal_data_sync" 
 }
 terraform_version_constraint = "= 1.1.6"
 terragrunt_version_constraint = "= 0.36.2"