Răsfoiți Sursa

Merge pull request #633 from mdr-engineering/feature/bp_MSOCI-1883_oracle-lcp-codebuild

Feature/bp msoci 1883 oracle lcp codebuild
Brad Poulton 3 ani în urmă
părinte
comite
f68c40fe56

+ 1 - 1
common/aws-us-gov/afs-mdr-common-services-gov/005-standard-iam/terragrunt.hcl

@@ -14,7 +14,7 @@ locals {
 # 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/standard_iam?ref=v4.0.12"
+  source = "git@github.xdr.accenturefederalcyber.com:mdr-engineering/xdr-terraform-modules.git//base/standard_iam?ref=v4.2.5"
 }
 
 # Include all settings from the root terragrunt.hcl file

+ 1 - 1
common/aws-us-gov/afs-mdr-common-services-gov/110-xdr-binaries-write-role/terragrunt.hcl

@@ -13,7 +13,7 @@ locals {
 # 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/s3_bucket_writer_role?ref=v4.0.10"
+  source = "git@github.xdr.accenturefederalcyber.com:mdr-engineering/xdr-terraform-modules.git//base/s3_bucket_writer_role?ref=v4.2.5"
 }
 
 # Include all settings from the root terragrunt.hcl file

+ 3 - 0
common/aws-us-gov/afs-mdr-common-services-gov/360-codebuild-vpc/README.md

@@ -0,0 +1,3 @@
+# Codebuild VPC
+
+Creates a VPC for codebuild related infrastructure such as Magic Machine.

+ 35 - 0
common/aws-us-gov/afs-mdr-common-services-gov/360-codebuild-vpc/terragrunt.hcl

@@ -0,0 +1,35 @@
+locals {
+  # If you want to use any of the variables in _this_ file, you have to load them here.
+  # However, they will all be available as inputs to the module loaded in terraform.source
+  # below.
+  environment_vars = read_terragrunt_config(find_in_parent_folders("env.hcl"))
+  partition_vars   = read_terragrunt_config(find_in_parent_folders("partition.hcl"))
+  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"))
+}
+
+# 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/standalone_vpc?ref=v4.2.5"
+}
+
+# Include all settings from the root terragrunt.hcl file
+include {
+  path = find_in_parent_folders()
+}
+
+# These are the variables we have to pass in to use the module specified in the terragrunt source above
+inputs = {
+  # All of the inputs from the inherited hcl files are available automatically
+  # (via the `inputs` section of the root `terragrunt.hcl`). However, modules
+  # will be more flexible if you specify particular input values.
+  vpc_info = local.account_vars.locals.vpc_info["vpc-codebuild"]
+  tags = {
+    Terraform = "aws/${basename(get_parent_terragrunt_dir())}/${path_relative_to_include()}/"
+  }
+}
+terraform_version_constraint  = "= 1.1.6"
+terragrunt_version_constraint = "= 0.36.2"

+ 113 - 0
common/aws-us-gov/afs-mdr-common-services-gov/365-codebuild-lcp-magic-machine/terragrunt.hcl

@@ -0,0 +1,113 @@
+locals {
+  # If you want to use any of the variables in _this_ file, you have to load them here.
+  # However, they will all be available as inputs to the module loaded in terraform.source
+  # below.
+  environment_vars = read_terragrunt_config(find_in_parent_folders("env.hcl"))
+  partition_vars   = read_terragrunt_config(find_in_parent_folders("partition.hcl"))
+  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"))
+}
+
+# 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_lcp_magic_machine?ref=v4.2.5"
+}
+
+# KMS Key
+dependency "codebuild-ecr-base" {
+  config_path = "../075-codebuild-ecr-base"
+}
+
+# Service Role
+dependency "standard-iam" {
+  config_path = "../005-standard-iam"
+}
+
+# S3 bucket dependency
+dependency "xdr-binaries" {
+  config_path = "../008-xdr-binaries"
+}
+
+# S3 bucket policy dependency
+dependency "xdr-s3-binaries-policy" {
+  config_path = "../110-xdr-binaries-write-role"
+}
+
+
+# VPC id dependency
+dependency "codebuild-vpc" {
+  config_path = "../360-codebuild-vpc"
+}
+
+#Github specific provider
+generate "required_providers" {
+  path      = "required_provider.tf"
+  if_exists = "overwrite_terragrunt"
+  contents  = <<EOF
+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
+    }
+    vault = {
+      source  = "hashicorp/vault"
+      version = "3.4.1" # 2022-04-08: upgrade from 2.19.1; 2021-04-29: upgrade from 2.18.0
+    }
+    sensu = {
+      source  = "jtopjian/sensu"
+      version = "0.12.1" # 2022-04-06: upgrade from 0.10.5
+    }
+    github = {
+      source  = "integrations/github"
+      version = "~> 4.0" # 2022-04-06: upgrade from 4.2.0
+    }
+  }
+}
+EOF
+}
+
+generate "github-provider" {
+  path      = "github-provider.tf"
+  if_exists = "overwrite_terragrunt"
+  contents  = <<EOF
+provider "github" {
+  owner        = "mdr-engineering"
+  base_url     = "https://github.xdr.accenturefederalcyber.com/"
+}
+EOF
+}
+
+# Include all settings from the root terragrunt.hcl file
+include {
+  path = find_in_parent_folders()
+}
+
+# These are the variables we have to pass in to use the module specified in the terragrunt source above
+inputs = {
+  # All of the inputs from the inherited hcl files are available automatically
+  # (via the `inputs` section of the root `terragrunt.hcl`). However, modules
+  # will be more flexible if you specify particular input values.
+  tags = {
+    Purpose   = "Build LCP OCI Image"
+    Terraform = "aws/${basename(get_parent_terragrunt_dir())}/${path_relative_to_include()}/"
+  }
+  name                   = "lcp-magic-machine"
+  repository_name        = "xdr-images"
+  service_role           = dependency.standard-iam.outputs.service_role
+  xdr-s3-binaries-policy = dependency.xdr-s3-binaries-policy.outputs.binaries_writers_policy
+  kms_key                = dependency.codebuild-ecr-base.outputs.kms_key
+  vpc_id                 = dependency.codebuild-vpc.outputs.vpc_id
+  public_subnets         = dependency.codebuild-vpc.outputs.public_subnets
+  private_subnets        = dependency.codebuild-vpc.outputs.private_subnets
+  github_clone_url       = "https://github.xdr.accenturefederalcyber.com/mdr-engineering/xdr-images"
+  source_version         = "feature/bp_MSOCI-1883_lcp-oci-image"
+  webhook_filter_pattern = "^refs/heads/main$"
+  buildspec              = "base/rhel7/oci/buildspec.yml"
+
+}
+terraform_version_constraint  = "= 1.1.6"
+terragrunt_version_constraint = "= 0.36.2"

+ 5 - 0
common/aws-us-gov/afs-mdr-common-services-gov/account.hcl

@@ -20,6 +20,11 @@ locals {
       "purpose" = "Palo altos, can probably be removed.",
       "cidr"    = "10.1.128.0/22"
     }
+    "vpc-codebuild" = {
+      "name" = "vpc-codebuild",
+      "purpose" = "VPC for codebuild Magic Machine",
+      "cidr" = "10.1.132.0/22"
+    }
   }
 
   # Panorama / Palo Alto information