From ee640721690b6695327c6136cdc937b7e8fac56b Mon Sep 17 00:00:00 2001 From: Andrea Grillo Date: Mon, 18 Mar 2024 17:50:44 +0100 Subject: [PATCH 1/5] add rgs --- .../selfcare/_modules/resource_groups/main.tf | 8 ++++ .../_modules/resource_groups/outputs.tf | 15 +++++++ .../resource_group_selfcare_be.tf | 6 +++ .../resource_group_selfcare_fe.tf | 6 +++ .../_modules/resource_groups/variables.tf | 11 +++++ .../prod/westeurope/.terraform.lock.hcl | 44 +++++++++++++++++++ .../selfcare/prod/westeurope/README.md | 26 +++++++++++ .../selfcare/prod/westeurope/locals.tf | 24 ++++++++++ src/domains/selfcare/prod/westeurope/main.tf | 20 +++++++++ .../selfcare/prod/westeurope/outputs.tf | 0 .../prod/westeurope/resource_groups.tf | 8 ++++ 11 files changed, 168 insertions(+) create mode 100644 src/domains/selfcare/_modules/resource_groups/main.tf create mode 100644 src/domains/selfcare/_modules/resource_groups/outputs.tf create mode 100644 src/domains/selfcare/_modules/resource_groups/resource_group_selfcare_be.tf create mode 100644 src/domains/selfcare/_modules/resource_groups/resource_group_selfcare_fe.tf create mode 100644 src/domains/selfcare/_modules/resource_groups/variables.tf create mode 100644 src/domains/selfcare/prod/westeurope/.terraform.lock.hcl create mode 100644 src/domains/selfcare/prod/westeurope/README.md create mode 100644 src/domains/selfcare/prod/westeurope/locals.tf create mode 100644 src/domains/selfcare/prod/westeurope/main.tf create mode 100644 src/domains/selfcare/prod/westeurope/outputs.tf create mode 100644 src/domains/selfcare/prod/westeurope/resource_groups.tf diff --git a/src/domains/selfcare/_modules/resource_groups/main.tf b/src/domains/selfcare/_modules/resource_groups/main.tf new file mode 100644 index 000000000..fe3796d05 --- /dev/null +++ b/src/domains/selfcare/_modules/resource_groups/main.tf @@ -0,0 +1,8 @@ +terraform { + + required_providers { + azurerm = { + source = "hashicorp/azurerm" + } + } +} diff --git a/src/domains/selfcare/_modules/resource_groups/outputs.tf b/src/domains/selfcare/_modules/resource_groups/outputs.tf new file mode 100644 index 000000000..218c6aa90 --- /dev/null +++ b/src/domains/selfcare/_modules/resource_groups/outputs.tf @@ -0,0 +1,15 @@ +output "resource_group_selfcare_be" { + value = { + id = azurerm_resource_group.resource_group_selfcare_be.id + name = azurerm_resource_group.resource_group_selfcare_be.name + location = azurerm_resource_group.resource_group_selfcare_be.location + } +} + +output "resource_group_selfcare_fe" { + value = { + id = azurerm_resource_group.resource_group_selfcare_fe.id + name = azurerm_resource_group.resource_group_selfcare_fe.name + location = azurerm_resource_group.resource_group_selfcare_fe.location + } +} diff --git a/src/domains/selfcare/_modules/resource_groups/resource_group_selfcare_be.tf b/src/domains/selfcare/_modules/resource_groups/resource_group_selfcare_be.tf new file mode 100644 index 000000000..31e855b8b --- /dev/null +++ b/src/domains/selfcare/_modules/resource_groups/resource_group_selfcare_be.tf @@ -0,0 +1,6 @@ +resource "azurerm_resource_group" "resource_group_selfcare_be" { + name = "${var.project}-selfcare-be-rg" + location = var.location + + tags = var.tags +} diff --git a/src/domains/selfcare/_modules/resource_groups/resource_group_selfcare_fe.tf b/src/domains/selfcare/_modules/resource_groups/resource_group_selfcare_fe.tf new file mode 100644 index 000000000..27ef0299a --- /dev/null +++ b/src/domains/selfcare/_modules/resource_groups/resource_group_selfcare_fe.tf @@ -0,0 +1,6 @@ +resource "azurerm_resource_group" "resource_group_selfcare_fe" { + name = "${var.project}-selfcare-fe-rg" + location = var.location + + tags = var.tags +} diff --git a/src/domains/selfcare/_modules/resource_groups/variables.tf b/src/domains/selfcare/_modules/resource_groups/variables.tf new file mode 100644 index 000000000..4d9b844ca --- /dev/null +++ b/src/domains/selfcare/_modules/resource_groups/variables.tf @@ -0,0 +1,11 @@ +variable "location" { + type = string +} + +variable "tags" { + type = map(any) +} + +variable "project" { + type = string +} diff --git a/src/domains/selfcare/prod/westeurope/.terraform.lock.hcl b/src/domains/selfcare/prod/westeurope/.terraform.lock.hcl new file mode 100644 index 000000000..6d9eabed9 --- /dev/null +++ b/src/domains/selfcare/prod/westeurope/.terraform.lock.hcl @@ -0,0 +1,44 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/azurerm" { + version = "3.96.0" + constraints = "<= 3.96.0" + hashes = [ + "h1:SJmniidGZj2RfXwrWBPOtNEq8RhHK2ONz5GRpQhTuEY=", + "h1:m1dRKavp189/pmyeJy6JjYZaDCXonvWIPO9rFJnpdTI=", + "h1:o1BGLLHL33WaMjlUYSCr6zo7nuw4mKrpcLee14fSLc0=", + "h1:p81ospFjXO6UGMCct9mDXgjMNqtc9YKeRE2hXjefhUM=", + "zh:2fb3f3c309bc8b040cd63f3a5711d4a6fc107e653a760063ec3ee6417912d14d", + "zh:45b83f492bd371c837df6d68e96ee3ab89faa00f740bca915187b344fd795ae3", + "zh:4a8b9f31da14ae824b2358fe772bb03ee79283d3294985f2acb48a0d4cd950bb", + "zh:4ab3c38b6141a0bd52d9216383d256771c0bfdc1869dccf52f414ed04290ed35", + "zh:6772d182dde23ff3fe10497f104a866cfc1cb848988f830100247363f9dd9ef7", + "zh:85875de128bc2d119c63f16116773594345ad5d0e8a3b464f7612479900df640", + "zh:9cd696005f4cfab4662d7db81039a64fc4c66d6eeedddf0808f2e97bc8af25f4", + "zh:bdc8921161253d3bff8f951cbf63f73f856bbda0ee2e9f51af60d74464059d21", + "zh:d7320767f7cde3796906f453a99ba80284fe8479ce127a4703ecf45dd9ef1321", + "zh:e0c28b79c0bf5004a9d094a68ec0c887c7df307f2cedeed2cbbef567c61443c6", + "zh:f069aa8e951508ea812cb8fef73f79594212864014eb85db39cdea2c648f69ee", + "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", + ] +} + +provider "registry.terraform.io/hashicorp/null" { + version = "3.2.2" + hashes = [ + "h1:IMVAUHKoydFrlPrl9OzasDnw/8ntZFerCC9iXw1rXQY=", + "zh:3248aae6a2198f3ec8394218d05bd5e42be59f43a3a7c0b71c66ec0df08b69e7", + "zh:32b1aaa1c3013d33c245493f4a65465eab9436b454d250102729321a44c8ab9a", + "zh:38eff7e470acb48f66380a73a5c7cdd76cc9b9c9ba9a7249c7991488abe22fe3", + "zh:4c2f1faee67af104f5f9e711c4574ff4d298afaa8a420680b0cb55d7bbc65606", + "zh:544b33b757c0b954dbb87db83a5ad921edd61f02f1dc86c6186a5ea86465b546", + "zh:696cf785090e1e8cf1587499516b0494f47413b43cb99877ad97f5d0de3dc539", + "zh:6e301f34757b5d265ae44467d95306d61bef5e41930be1365f5a8dcf80f59452", + "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", + "zh:913a929070c819e59e94bb37a2a253c228f83921136ff4a7aa1a178c7cce5422", + "zh:aa9015926cd152425dbf86d1abdbc74bfe0e1ba3d26b3db35051d7b9ca9f72ae", + "zh:bb04798b016e1e1d49bcc76d62c53b56c88c63d6f2dfe38821afef17c416a0e1", + "zh:c23084e1b23577de22603cff752e59128d83cfecc2e6819edadd8cf7a10af11e", + ] +} diff --git a/src/domains/selfcare/prod/westeurope/README.md b/src/domains/selfcare/prod/westeurope/README.md new file mode 100644 index 000000000..318680a47 --- /dev/null +++ b/src/domains/selfcare/prod/westeurope/README.md @@ -0,0 +1,26 @@ + + +## Requirements + +| Name | Version | +|------|---------| +| [azurerm](#requirement\_azurerm) | <= 3.96.0 | + +## Modules + +| Name | Source | Version | +|------|--------|---------| +| [resource\_groups](#module\_resource\_groups) | ../../_modules/resource_groups | n/a | + +## Resources + +No resources. + +## Inputs + +No inputs. + +## Outputs + +No outputs. + diff --git a/src/domains/selfcare/prod/westeurope/locals.tf b/src/domains/selfcare/prod/westeurope/locals.tf new file mode 100644 index 000000000..804ed149f --- /dev/null +++ b/src/domains/selfcare/prod/westeurope/locals.tf @@ -0,0 +1,24 @@ +locals { + prefix = "io" + env_short = "p" + project = "${local.prefix}-${local.env_short}" + + location = "westeurope" + + dns_zone_io_selfcare = "io.selfcare" + external_domain = "pagopa.it" + dns_zone_name = join(".", [local.dns_zone_io_selfcare, local.external_domain]) + backend_hostname = "api.${local.dns_zone_name}" + frontend_hostname = local.dns_zone_name + apim_hostname_api_app_internal = format("api-app.internal.%s.%s", local.dns_zone_io_selfcare, local.external_domain) + apim_hostname_api_internal = "api-internal.io.italia.it" + selfcare_external_hostname = "selfcare.pagopa.it" + + tags = { + CostCenter = "TS310 - PAGAMENTI & SERVIZI" + CreatedBy = "Terraform" + Environment = "Prod" + Owner = "IO" + Source = "https://github.com/pagopa/io-infra/blob/main/src/domains/selfcare/prod/west-europe" + } +} diff --git a/src/domains/selfcare/prod/westeurope/main.tf b/src/domains/selfcare/prod/westeurope/main.tf new file mode 100644 index 000000000..14787aa9b --- /dev/null +++ b/src/domains/selfcare/prod/westeurope/main.tf @@ -0,0 +1,20 @@ +terraform { + + backend "azurerm" { + resource_group_name = "terraform-state-rg" + storage_account_name = "tfinfprodio" + container_name = "terraform-state" + key = "io-infra.selfcare.tfstate" + } + + required_providers { + azurerm = { + source = "hashicorp/azurerm" + version = "<= 3.96.0" + } + } +} + +provider "azurerm" { + features {} +} diff --git a/src/domains/selfcare/prod/westeurope/outputs.tf b/src/domains/selfcare/prod/westeurope/outputs.tf new file mode 100644 index 000000000..e69de29bb diff --git a/src/domains/selfcare/prod/westeurope/resource_groups.tf b/src/domains/selfcare/prod/westeurope/resource_groups.tf new file mode 100644 index 000000000..515d69b9f --- /dev/null +++ b/src/domains/selfcare/prod/westeurope/resource_groups.tf @@ -0,0 +1,8 @@ +module "resource_groups" { + source = "../../_modules/resource_groups" + + location = local.location + project = local.project + + tags = local.tags +} From 2fc75ca4d982c29ab660e67c0eee98bc54cf46fc Mon Sep 17 00:00:00 2001 From: Andrea Grillo Date: Tue, 19 Mar 2024 09:59:13 +0100 Subject: [PATCH 2/5] update tags --- src/domains/selfcare/prod/westeurope/locals.tf | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/domains/selfcare/prod/westeurope/locals.tf b/src/domains/selfcare/prod/westeurope/locals.tf index 804ed149f..cd78b00b2 100644 --- a/src/domains/selfcare/prod/westeurope/locals.tf +++ b/src/domains/selfcare/prod/westeurope/locals.tf @@ -15,10 +15,11 @@ locals { selfcare_external_hostname = "selfcare.pagopa.it" tags = { - CostCenter = "TS310 - PAGAMENTI & SERVIZI" - CreatedBy = "Terraform" - Environment = "Prod" - Owner = "IO" - Source = "https://github.com/pagopa/io-infra/blob/main/src/domains/selfcare/prod/west-europe" + CostCenter = "TS310 - PAGAMENTI & SERVIZI" + CreatedBy = "Terraform" + Environment = "Prod" + Owner = "IO" + ManagementTeam = "IO Enti & Servizi" + Source = "https://github.com/pagopa/io-infra/blob/main/src/domains/selfcare/prod/westeurope" } } From 57a0e695154e5dca34c127a0b9b313ad210b12ab Mon Sep 17 00:00:00 2001 From: Andrea Grillo Date: Tue, 19 Mar 2024 10:12:35 +0100 Subject: [PATCH 3/5] remove rgs from core --- src/core/README.md | 4 +-- src/core/devportal.tf | 2 +- src/core/function_devportal_service_data.tf | 2 +- src/core/function_subscription_migrations.tf | 2 +- src/core/selfcare.tf | 28 ++++++++------------ 5 files changed, 16 insertions(+), 22 deletions(-) diff --git a/src/core/README.md b/src/core/README.md index ed3790189..ba17dacfd 100644 --- a/src/core/README.md +++ b/src/core/README.md @@ -351,8 +351,6 @@ | [azurerm_resource_group.rg_linux](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/resource_group) | resource | | [azurerm_resource_group.rg_vnet](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/resource_group) | resource | | [azurerm_resource_group.sec_rg](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/resource_group) | resource | -| [azurerm_resource_group.selfcare_be_rg](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/resource_group) | resource | -| [azurerm_resource_group.selfcare_fe_rg](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/resource_group) | resource | | [azurerm_resource_group.services_rg](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/resource_group) | resource | | [azurerm_resource_group.shared_rg](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/resource_group) | resource | | [azurerm_resource_group.weu_beta_vnet_rg](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/resource_group) | resource | @@ -534,6 +532,8 @@ | [azurerm_linux_web_app.cms_backoffice_app](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/data-sources/linux_web_app) | data source | | [azurerm_linux_web_app.firmaconio_selfcare_web_app](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/data-sources/linux_web_app) | data source | | [azurerm_resource_group.notifications_rg](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/data-sources/resource_group) | data source | +| [azurerm_resource_group.selfcare_be_rg](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/data-sources/resource_group) | data source | +| [azurerm_resource_group.selfcare_fe_rg](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/data-sources/resource_group) | data source | | [azurerm_storage_account.citizen_auth_common](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/data-sources/storage_account) | data source | | [azurerm_storage_account.iopstapp](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/data-sources/storage_account) | data source | | [azurerm_storage_account.logs](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/data-sources/storage_account) | data source | diff --git a/src/core/devportal.tf b/src/core/devportal.tf index 2c2b1c1dd..e5d395484 100644 --- a/src/core/devportal.tf +++ b/src/core/devportal.tf @@ -78,7 +78,7 @@ module "appservice_devportal_be" { source = "git::https://github.com/pagopa/terraform-azurerm-v3.git//app_service?ref=v7.61.0" name = format("%s-app-devportal-be", local.project) - resource_group_name = azurerm_resource_group.selfcare_be_rg.name + resource_group_name = data.azurerm_resource_group.selfcare_be_rg.name plan_type = "external" plan_id = azurerm_service_plan.selfcare_be_common.id diff --git a/src/core/function_devportal_service_data.tf b/src/core/function_devportal_service_data.tf index 8b3dea6c9..e8f9c0f95 100644 --- a/src/core/function_devportal_service_data.tf +++ b/src/core/function_devportal_service_data.tf @@ -52,7 +52,7 @@ locals { // we share some resources app_context = { name = "devportalsrvdata" # devportalservicedata would result in a name too long - resource_group = azurerm_resource_group.selfcare_be_rg + resource_group = data.azurerm_resource_group.selfcare_be_rg app_service_plan = azurerm_service_plan.selfcare_be_common snet = module.selfcare_be_common_snet vnet = module.vnet_common diff --git a/src/core/function_subscription_migrations.tf b/src/core/function_subscription_migrations.tf index 9256c5506..bff091f37 100644 --- a/src/core/function_subscription_migrations.tf +++ b/src/core/function_subscription_migrations.tf @@ -51,7 +51,7 @@ locals { // we share some resources app_context = { name = "subsmigrations" - resource_group = azurerm_resource_group.selfcare_be_rg + resource_group = data.azurerm_resource_group.selfcare_be_rg app_service_plan = azurerm_service_plan.selfcare_be_common snet = module.selfcare_be_common_snet vnet = module.vnet_common diff --git a/src/core/selfcare.tf b/src/core/selfcare.tf index ab48b5fef..0b6469e46 100644 --- a/src/core/selfcare.tf +++ b/src/core/selfcare.tf @@ -12,11 +12,8 @@ locals { } ### Frontend common resources -resource "azurerm_resource_group" "selfcare_fe_rg" { - name = "${local.project}-selfcare-fe-rg" - location = var.location - - tags = var.tags +data "azurerm_resource_group" "selfcare_fe_rg" { + name = "${local.project}-selfcare-fe-rg" } ### Frontend resources @@ -26,8 +23,8 @@ module "selfcare_cdn" { name = "selfcare" prefix = local.project - resource_group_name = azurerm_resource_group.selfcare_fe_rg.name - location = azurerm_resource_group.selfcare_fe_rg.location + resource_group_name = data.azurerm_resource_group.selfcare_fe_rg.name + location = data.azurerm_resource_group.selfcare_fe_rg.location hostname = "${var.dns_zone_io_selfcare}.${var.external_domain}" https_rewrite_enabled = true @@ -76,11 +73,8 @@ module "selfcare_cdn" { } ### Backend common resources -resource "azurerm_resource_group" "selfcare_be_rg" { - name = format("%s-selfcare-be-rg", local.project) - location = var.location - - tags = var.tags +data "azurerm_resource_group" "selfcare_be_rg" { + name = format("%s-selfcare-be-rg", local.project) } ## key vault @@ -129,8 +123,8 @@ module "selfcare_jwt" { resource "azurerm_service_plan" "selfcare_be_common" { name = format("%s-plan-selfcare-be-common", local.project) - location = azurerm_resource_group.selfcare_be_rg.location - resource_group_name = azurerm_resource_group.selfcare_be_rg.name + location = data.azurerm_resource_group.selfcare_be_rg.location + resource_group_name = data.azurerm_resource_group.selfcare_be_rg.name os_type = "Linux" sku_name = var.selfcare_plan_sku_size @@ -176,7 +170,7 @@ module "appservice_selfcare_be" { source = "git::https://github.com/pagopa/terraform-azurerm-v3.git//app_service?ref=v7.61.0" name = format("%s-app-selfcare-be", local.project) - resource_group_name = azurerm_resource_group.selfcare_be_rg.name + resource_group_name = data.azurerm_resource_group.selfcare_be_rg.name plan_type = "external" plan_id = azurerm_service_plan.selfcare_be_common.id @@ -275,8 +269,8 @@ module "appservice_selfcare_be" { resource "azurerm_monitor_autoscale_setting" "appservice_selfcare_be_common" { name = format("%s-autoscale", azurerm_service_plan.selfcare_be_common.name) - resource_group_name = azurerm_resource_group.selfcare_be_rg.name - location = azurerm_resource_group.selfcare_be_rg.location + resource_group_name = data.azurerm_resource_group.selfcare_be_rg.name + location = data.azurerm_resource_group.selfcare_be_rg.location target_resource_id = azurerm_service_plan.selfcare_be_common.id profile { From 20e096d679325ee3889f6b73d54c8b15301285b2 Mon Sep 17 00:00:00 2001 From: Andrea Grillo Date: Tue, 19 Mar 2024 10:18:53 +0100 Subject: [PATCH 4/5] update labeler --- .github/labeler.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/labeler.yml b/.github/labeler.yml index ff2e2b10e..f170c35c6 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -49,3 +49,7 @@ packer: automation: - changed-files: - any-glob-to-any-file: ['.github/**'] + +selfcare: + - changed-files: + - any-glob-to-any-file: ['.src/domains/selfcare/**'] From 75dea5d7f8c480f90576dbba8d005f07068fe855 Mon Sep 17 00:00:00 2001 From: Andrea Grillo Date: Tue, 19 Mar 2024 10:24:40 +0100 Subject: [PATCH 5/5] update vars description --- .../_modules/resource_groups/variables.tf | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/domains/selfcare/_modules/resource_groups/variables.tf b/src/domains/selfcare/_modules/resource_groups/variables.tf index 4d9b844ca..808c5aa40 100644 --- a/src/domains/selfcare/_modules/resource_groups/variables.tf +++ b/src/domains/selfcare/_modules/resource_groups/variables.tf @@ -1,11 +1,14 @@ -variable "location" { - type = string +variable "project" { + type = string + description = "IO prefix and short environment" } -variable "tags" { - type = map(any) +variable "location" { + type = string + description = "Azure region" } -variable "project" { - type = string +variable "tags" { + type = map(any) + description = "Resource tags" }