From 20af61a65a268ff75871eccacc74520c6d5f4db5 Mon Sep 17 00:00:00 2001 From: Manuel Rafeli Date: Wed, 10 Apr 2024 11:30:54 +0200 Subject: [PATCH] chore: Migration to Container App module with name and workload_profile empty (#189) --- .github/workflows/pr_ms.yml | 16 ++++-------- .github/workflows/release_ms.yml | 26 +++++++++---------- .github/workflows/release_ms_pnpg.yml | 26 +++++++++---------- infra/container_apps/README.md | 17 +++++++++--- infra/container_apps/apim.tf | 16 ++++++------ .../env/dev-pnpg/terraform.tfvars | 6 ++--- infra/container_apps/env/dev/terraform.tfvars | 12 ++++----- .../container_apps/env/prod/terraform.tfvars | 8 +++--- .../env/uat-pnpg/terraform.tfvars | 6 +++-- infra/container_apps/env/uat/terraform.tfvars | 12 +++++---- infra/container_apps/locals.tf | 6 +++++ infra/container_apps/main.tf | 16 +++++++----- infra/container_apps/variables.tf | 12 +++++++++ 13 files changed, 104 insertions(+), 75 deletions(-) create mode 100644 infra/container_apps/locals.tf diff --git a/.github/workflows/pr_ms.yml b/.github/workflows/pr_ms.yml index 51421e17..624bc897 100644 --- a/.github/workflows/pr_ms.yml +++ b/.github/workflows/pr_ms.yml @@ -3,21 +3,15 @@ on: workflow_dispatch: pull_request: + branches: + - main + - releases/** types: + - opened + - edited - synchronize - reopened - ready_for_review - paths: - - '.github/workflows/pr_ms.yml' - - '.github/workflows/release_ms.yml' - - '.github/workflows/release_ms_pnpg.yml' - - '!.devops/**' - - '!helm/**' - - '!**.md' - - '!**ignore' - - '!infra/**' - - '!.terraform-version' - - '!CODEOWNERS' jobs: diff --git a/.github/workflows/release_ms.yml b/.github/workflows/release_ms.yml index fbf48115..2a62ce48 100644 --- a/.github/workflows/release_ms.yml +++ b/.github/workflows/release_ms.yml @@ -1,6 +1,19 @@ name: Release - ms-party-registry-proxy on: + push: + branches: + - main + - releases/* + paths: + - 'app/**' + - 'connector/**' + - 'connector-api/**' + - 'core/**' + - 'infra/**' + - 'web/**' + - 'pom.xml' + workflow_dispatch: inputs: env: @@ -11,19 +24,6 @@ on: - uat - prod - push: - branches: - - main - - releases/* - paths: - - '!.devops/**' - - '!helm/**' - - '!**.md' - - '!**ignore' - - '!infra/**' - - '!.terraform-version' - - '!CODEOWNERS' - jobs: release_dev: diff --git a/.github/workflows/release_ms_pnpg.yml b/.github/workflows/release_ms_pnpg.yml index 64c1faf4..600565c0 100644 --- a/.github/workflows/release_ms_pnpg.yml +++ b/.github/workflows/release_ms_pnpg.yml @@ -1,6 +1,19 @@ name: Release - PNPG ms-party-registry-proxy on: + push: + branches: + - main + - releases/* + paths: + - 'app/**' + - 'connector/**' + - 'connector-api/**' + - 'core/**' + - 'infra/**' + - 'web/**' + - 'pom.xml' + workflow_dispatch: inputs: env: @@ -11,19 +24,6 @@ on: - uat - prod - push: - branches: - - main - - releases/* - paths: - - '!.devops/**' - - '!helm/**' - - '!**.md' - - '!**ignore' - - '!infra/**' - - '!.terraform-version' - - '!CODEOWNERS' - jobs: release_dev: diff --git a/infra/container_apps/README.md b/infra/container_apps/README.md index 6cf55732..d336e3da 100644 --- a/infra/container_apps/README.md +++ b/infra/container_apps/README.md @@ -12,29 +12,40 @@ Deploy container on a Container App instance. ## Providers -No providers. +| Name | Version | +|------|---------| +| [azurerm](#provider\_azurerm) | 3.85.0 | ## Modules | Name | Source | Version | |------|--------|---------| -| [container\_app\_dashboard\_backend](#module\_container\_app\_dashboard\_backend) | github.com/pagopa/selfcare-commons//infra/terraform-modules/container_app_microservice | main | +| [apim\_api\_bff\_proxy](#module\_apim\_api\_bff\_proxy) | github.com/pagopa/terraform-azurerm-v3.git//api_management_api | v7.50.1 | +| [container\_app\_party\_reg\_proxy](#module\_container\_app\_party\_reg\_proxy) | github.com/pagopa/selfcare-commons//infra/terraform-modules/container_app_microservice | main | ## Resources -No resources. +| Name | Type | +|------|------| +| [azurerm_api_management_api_version_set.apim_api_bff_proxy](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/api_management_api_version_set) | resource | ## Inputs | Name | Description | Type | Default | Required | |------|-------------|------|---------|:--------:| +| [api\_dns\_zone\_prefix](#input\_api\_dns\_zone\_prefix) | The dns subdomain. | `string` | `"api.selfcare"` | no | | [app\_settings](#input\_app\_settings) | n/a |
list(object({
name = string
value = string
}))
| n/a | yes | +| [cae\_name](#input\_cae\_name) | Container App Environment name | `string` | `"cae-cp"` | no | | [container\_app](#input\_container\_app) | Container App configuration |
object({
min_replicas = number
max_replicas = number

scale_rules = list(object({
name = string
custom = object({
metadata = map(string)
type = string
})
}))

cpu = number
memory = string
})
| n/a | yes | +| [dns\_zone\_prefix](#input\_dns\_zone\_prefix) | The dns subdomain. | `string` | `"selfcare"` | no | | [env\_short](#input\_env\_short) | Environment short name | `string` | n/a | yes | +| [external\_domain](#input\_external\_domain) | Domain for delegation | `string` | `"pagopa.it"` | no | | [image\_tag](#input\_image\_tag) | Image tag to use for the container | `string` | `"latest"` | no | | [is\_pnpg](#input\_is\_pnpg) | (Optional) True if you want to apply changes to PNPG environment | `bool` | `false` | no | +| [private\_dns\_name](#input\_private\_dns\_name) | Container Apps private DNS record | `string` | `"selc-d-party-reg-proxy-ca.gentleflower-c63e62fe.westeurope.azurecontainerapps.io"` | no | | [secrets\_names](#input\_secrets\_names) | KeyVault secrets to get values from | `map(string)` | n/a | yes | | [tags](#input\_tags) | n/a | `map(any)` | n/a | yes | +| [workload\_profile\_name](#input\_workload\_profile\_name) | Workload Profile name to use | `string` | `null` | no | ## Outputs diff --git a/infra/container_apps/apim.tf b/infra/container_apps/apim.tf index ae697060..0e282845 100644 --- a/infra/container_apps/apim.tf +++ b/infra/container_apps/apim.tf @@ -1,12 +1,12 @@ locals { - apim_name = format("selc-%s-apim", var.env_short) - apim_rg = format("selc-%s-api-rg", var.env_short) - api_name = format("selc-%s-api-bff-proxy", var.env_short) + apim_name = format("selc-%s-apim", var.env_short) + apim_rg = format("selc-%s-api-rg", var.env_short) + api_name = format("selc-%s-api-bff-proxy", var.env_short) } resource "azurerm_api_management_api_version_set" "apim_api_bff_proxy" { - count = var.is_pnpg ? 0 : 1 + count = var.is_pnpg ? 0 : 1 name = local.api_name resource_group_name = local.apim_rg api_management_name = local.apim_name @@ -16,7 +16,7 @@ resource "azurerm_api_management_api_version_set" "apim_api_bff_proxy" { module "apim_api_bff_proxy" { - count = var.is_pnpg ? 0 : 1 + count = var.is_pnpg ? 0 : 1 source = "github.com/pagopa/terraform-azurerm-v3.git//api_management_api?ref=v7.50.1" name = local.api_name api_management_name = local.apim_name @@ -33,9 +33,9 @@ module "apim_api_bff_proxy" { service_url = format("https://%s", var.private_dns_name) content_format = "openapi+json" - content_value = templatefile("./apim_api_bff_proxy.json", { - url = format("%s.%s", var.api_dns_zone_prefix, var.external_domain) - basePath = "/party-registry-proxy/v1" + content_value = templatefile("./apim_api_bff_proxy.json", { + url = format("%s.%s", var.api_dns_zone_prefix, var.external_domain) + basePath = "/party-registry-proxy/v1" }) subscription_required = false diff --git a/infra/container_apps/env/dev-pnpg/terraform.tfvars b/infra/container_apps/env/dev-pnpg/terraform.tfvars index 256406e1..e65b8c6d 100644 --- a/infra/container_apps/env/dev-pnpg/terraform.tfvars +++ b/infra/container_apps/env/dev-pnpg/terraform.tfvars @@ -12,7 +12,7 @@ tags = { container_app = { min_replicas = 0 max_replicas = 1 - scale_rules = [ + scale_rules = [ { custom = { metadata = { @@ -26,8 +26,8 @@ container_app = { name = "cron-scale-rule" } ] - cpu = 1 - memory = "2Gi" + cpu = 1 + memory = "2Gi" } app_settings = [ diff --git a/infra/container_apps/env/dev/terraform.tfvars b/infra/container_apps/env/dev/terraform.tfvars index 4a3ec6bf..4a26467b 100644 --- a/infra/container_apps/env/dev/terraform.tfvars +++ b/infra/container_apps/env/dev/terraform.tfvars @@ -1,5 +1,5 @@ -env_short = "d" -private_dns_name = "selc-d-party-reg-proxy-ca.livelydesert-633675bb.westeurope.azurecontainerapps.io" +env_short = "d" +private_dns_name = "selc-d-party-reg-proxy-ca.politewater-9af33050.westeurope.azurecontainerapps.io" dns_zone_prefix = "dev.selfcare" api_dns_zone_prefix = "api.dev.selfcare" @@ -14,7 +14,7 @@ tags = { container_app = { min_replicas = 0 max_replicas = 1 - scale_rules = [ + scale_rules = [ { custom = { metadata = { @@ -28,8 +28,8 @@ container_app = { name = "cron-scale-rule" } ] - cpu = 1 - memory = "2Gi" + cpu = 1 + memory = "2Gi" } app_settings = [ @@ -92,7 +92,7 @@ app_settings = [ { name = "ANAC_FTP_DIRECTORY" value = "/mnt/RegistroGestoriPiattaforme/Collaudo/" - }, + }, { name = "LUCENE_INDEX_INSTITUTIONS_FOLDER" value = "index/institutions" diff --git a/infra/container_apps/env/prod/terraform.tfvars b/infra/container_apps/env/prod/terraform.tfvars index ce08ae70..fb5c1945 100644 --- a/infra/container_apps/env/prod/terraform.tfvars +++ b/infra/container_apps/env/prod/terraform.tfvars @@ -1,6 +1,6 @@ -env_short = "p" -private_dns_name = "selc-p-party-reg-proxy-ca.salmonstone-7f910b8f.westeurope.azurecontainerapps.io" -dns_zone_prefix = "selfcare" +env_short = "p" +private_dns_name = "selc-p-party-reg-proxy-ca.greensand-62fc96da.westeurope.azurecontainerapps.io" +dns_zone_prefix = "selfcare" api_dns_zone_prefix = "api.selfcare" tags = { @@ -80,7 +80,7 @@ app_settings = [ { name = "ANAC_FTP_DIRECTORY" value = "/mnt/RegistroGestoriPiattaforme/Collaudo/" - }, + }, { name = "LUCENE_INDEX_INSTITUTIONS_FOLDER" value = "index/institutions" diff --git a/infra/container_apps/env/uat-pnpg/terraform.tfvars b/infra/container_apps/env/uat-pnpg/terraform.tfvars index e4c6f8aa..e8a1539f 100644 --- a/infra/container_apps/env/uat-pnpg/terraform.tfvars +++ b/infra/container_apps/env/uat-pnpg/terraform.tfvars @@ -1,5 +1,7 @@ -is_pnpg = true -env_short = "u" +is_pnpg = true +env_short = "u" +cae_name = "cae" +workload_profile_name = "Consumption" tags = { CreatedBy = "Terraform" diff --git a/infra/container_apps/env/uat/terraform.tfvars b/infra/container_apps/env/uat/terraform.tfvars index d7f931b7..d66db786 100644 --- a/infra/container_apps/env/uat/terraform.tfvars +++ b/infra/container_apps/env/uat/terraform.tfvars @@ -1,7 +1,9 @@ -env_short = "u" -private_dns_name = "selc-u-party-reg-proxy-ca.agreeablesky-f71e6306.westeurope.azurecontainerapps.io" -dns_zone_prefix = "uat.selfcare" -api_dns_zone_prefix = "api.uat.selfcare" +env_short = "u" +private_dns_name = "selc-u-party-reg-proxy-ca.agreeablesky-f71e6306.westeurope.azurecontainerapps.io" +dns_zone_prefix = "uat.selfcare" +api_dns_zone_prefix = "api.uat.selfcare" +cae_name = "cae" +workload_profile_name = "Consumption" tags = { CreatedBy = "Terraform" @@ -67,7 +69,7 @@ app_settings = [ { name = "ANAC_FTP_DIRECTORY" value = "/mnt/RegistroGestoriPiattaforme/Collaudo/" - }, + }, { name = "LUCENE_INDEX_INSTITUTIONS_FOLDER" value = "index/institutions" diff --git a/infra/container_apps/locals.tf b/infra/container_apps/locals.tf new file mode 100644 index 00000000..919eaef8 --- /dev/null +++ b/infra/container_apps/locals.tf @@ -0,0 +1,6 @@ +locals { + pnpg_suffix = var.is_pnpg == true ? "-pnpg" : "" + project = "selc-${var.env_short}" + + container_app_environment_name = "${local.project}${local.pnpg_suffix}-${var.cae_name}" +} \ No newline at end of file diff --git a/infra/container_apps/main.tf b/infra/container_apps/main.tf index 2ee7a409..a9e7e1d1 100644 --- a/infra/container_apps/main.tf +++ b/infra/container_apps/main.tf @@ -13,13 +13,15 @@ module "container_app_party_reg_proxy" { is_pnpg = var.is_pnpg - env_short = var.env_short - container_app = var.container_app - container_app_name = "party-reg-proxy" - image_name = "selfcare-ms-party-registry-proxy" - image_tag = var.image_tag - app_settings = var.app_settings - secrets_names = var.secrets_names + env_short = var.env_short + container_app = var.container_app + container_app_name = "party-reg-proxy" + container_app_environment_name = local.container_app_environment_name + image_name = "selfcare-ms-party-registry-proxy" + image_tag = var.image_tag + app_settings = var.app_settings + secrets_names = var.secrets_names + workload_profile_name = var.workload_profile_name tags = var.tags } diff --git a/infra/container_apps/variables.tf b/infra/container_apps/variables.tf index d0421d77..cb360313 100644 --- a/infra/container_apps/variables.tf +++ b/infra/container_apps/variables.tf @@ -79,3 +79,15 @@ variable "api_dns_zone_prefix" { default = "api.selfcare" description = "The dns subdomain." } + +variable "workload_profile_name" { + type = string + description = "Workload Profile name to use" + default = null +} + +variable "cae_name" { + type = string + description = "Container App Environment name" + default = "cae-cp" +}