From 973ffc84355e1ddb7a628fed386f577052e783af Mon Sep 17 00:00:00 2001 From: Venkata Challa Date: Mon, 11 Dec 2023 16:25:44 +0000 Subject: [PATCH] Added changes to environment domains --- Makefile | 17 ++++++++++++++ .../environment_domains/.terraform.lock.hcl | 22 +++++++++++++++++++ .../config/production.tfvars.json | 13 +++++++++++ .../config/production_Terrafile | 3 +++ terraform/domains/environment_domains/main.tf | 11 ++++++++++ .../domains/environment_domains/terraform.tf | 19 ++++++++++++++++ .../domains/environment_domains/variables.tf | 4 ++++ 7 files changed, 89 insertions(+) create mode 100644 terraform/domains/environment_domains/.terraform.lock.hcl create mode 100644 terraform/domains/environment_domains/config/production.tfvars.json create mode 100644 terraform/domains/environment_domains/config/production_Terrafile create mode 100644 terraform/domains/environment_domains/main.tf create mode 100644 terraform/domains/environment_domains/terraform.tf create mode 100644 terraform/domains/environment_domains/variables.tf diff --git a/Makefile b/Makefile index bcd4b68b..dcaa65ff 100644 --- a/Makefile +++ b/Makefile @@ -119,3 +119,20 @@ domains-infra-plan: domains composed-variables domains-infra-init domains-infra-apply: domains composed-variables domains-infra-init terraform -chdir=terraform/domains/infrastructure apply -var-file config/zones.tfvars.json ${AUTO_APPROVE} + +domains-init: domains composed-variables set-azure-account + ./bin/terrafile -p terraform/domains/environment_domains/vendor/modules -f terraform/domains/environment_domains/config/${CONFIG}_Terrafile + + terraform -chdir=terraform/domains/environment_domains init -upgrade -reconfigure \ + -backend-config=resource_group_name=${RESOURCE_GROUP_NAME} \ + -backend-config=storage_account_name=${STORAGE_ACCOUNT_NAME} \ + -backend-config=key=${ENVIRONMENT}.tfstate + +domains-plan: domains-init + terraform -chdir=terraform/domains/environment_domains plan -var-file config/${CONFIG}.tfvars.json + +domains-apply: domains-init + terraform -chdir=terraform/domains/environment_domains apply -var-file config/${CONFIG}.tfvars.json ${AUTO_APPROVE} + +domains-destroy: domains-init + terraform -chdir=terraform/domains/environment_domains destroy -var-file config/${CONFIG}.tfvars.json ${AUTO_APPROVE} diff --git a/terraform/domains/environment_domains/.terraform.lock.hcl b/terraform/domains/environment_domains/.terraform.lock.hcl new file mode 100644 index 00000000..ffe3b5eb --- /dev/null +++ b/terraform/domains/environment_domains/.terraform.lock.hcl @@ -0,0 +1,22 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/azurerm" { + version = "3.82.0" + constraints = "3.82.0" + hashes = [ + "h1:wIfGA8icS9CbbMfHQFRAUddF2/emdmvJbkTZxfEJTXg=", + "zh:2042c5485476b0b9dbcebfc01d95e1cec50b37b2c443ffd9824a4fc6a7b293bd", + "zh:3fc6753c039bac1866b90f5faf5f72edc7470cb64c1e84f830e71931dfced865", + "zh:4760c4595a5e8a07c5eef08304877909f88252c1536432e443211ae668456459", + "zh:4886aadcafcd88d036c3e36019ca3b0b39a6b7cfbd34f88fe8a544ca337af14f", + "zh:631602a5e38cb3ee8f8a2a2257e669f41ff05766a774eb19933d54ae1832c100", + "zh:6c03c113c729614598cb197415a3dd7b7d0fcb0aec9055b0491f02274e244582", + "zh:95390bd4037f695329a38ff1a736e4f03c134097d19201f89c5e6c08a11becb9", + "zh:ac1a1dd5559c53f72f89320f0cd9aeb8fc84ad1351b6578f99efc07c16486a2a", + "zh:b96d4ca8a05a1903accd5c1b16109444d05868198a4698e31c17ef7ab95c4541", + "zh:ccc5895c0579e4f5b0dc2d358579d417c21281104591f1877525d87f31079f96", + "zh:e0c496ab8f07ea381bbed86eefde47480b9b156bb022b2215c94cb01779c7076", + "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", + ] +} diff --git a/terraform/domains/environment_domains/config/production.tfvars.json b/terraform/domains/environment_domains/config/production.tfvars.json new file mode 100644 index 00000000..f4c5beac --- /dev/null +++ b/terraform/domains/environment_domains/config/production.tfvars.json @@ -0,0 +1,13 @@ +{ + "hosted_zone": { + "technical-guidance.education.gov.uk": { + "front_door_name": "s189p01-techg-dom-fd", + "resource_group_name": "s189p01-techg-dom-rg", + "domains": [ + "apex" + ], + "environment_short": "pd", + "origin_hostname": "technical-guidance-production.teacherservices.cloud" + } + } +} diff --git a/terraform/domains/environment_domains/config/production_Terrafile b/terraform/domains/environment_domains/config/production_Terrafile new file mode 100644 index 00000000..58e60b3c --- /dev/null +++ b/terraform/domains/environment_domains/config/production_Terrafile @@ -0,0 +1,3 @@ +domains: + source: "https://github.com/DFE-Digital/terraform-modules" + version: "stable" diff --git a/terraform/domains/environment_domains/main.tf b/terraform/domains/environment_domains/main.tf new file mode 100644 index 00000000..5663ab0f --- /dev/null +++ b/terraform/domains/environment_domains/main.tf @@ -0,0 +1,11 @@ +# Used to create domains to be managed by front door. +module "domains" { + for_each = var.hosted_zone + source = "./vendor/modules/domains//domains/environment_domains" + zone = each.key + front_door_name = each.value.front_door_name + resource_group_name = each.value.resource_group_name + domains = each.value.domains + environment = each.value.environment_short + host_name = each.value.origin_hostname +} diff --git a/terraform/domains/environment_domains/terraform.tf b/terraform/domains/environment_domains/terraform.tf new file mode 100644 index 00000000..0fb33395 --- /dev/null +++ b/terraform/domains/environment_domains/terraform.tf @@ -0,0 +1,19 @@ +terraform { + + required_version = "= 1.6.4" + required_providers { + azurerm = { + source = "hashicorp/azurerm" + version = "3.82.0" + } + } + backend "azurerm" { + container_name = "terraform-state" + } +} + +provider "azurerm" { + features {} + + skip_provider_registration = true +} diff --git a/terraform/domains/environment_domains/variables.tf b/terraform/domains/environment_domains/variables.tf new file mode 100644 index 00000000..ad63e546 --- /dev/null +++ b/terraform/domains/environment_domains/variables.tf @@ -0,0 +1,4 @@ +variable "hosted_zone" { + type = map(any) + default = {} +}