diff --git a/.container_app/container_app.tf b/.container_app/container_app.tf index bd5dfebe2..a9e28d64a 100644 --- a/.container_app/container_app.tf +++ b/.container_app/container_app.tf @@ -57,7 +57,7 @@ resource "azapi_resource" "container_app_onboarding" { template = { containers = [ { - env = concat(var.container_app.app_settings, local.secrets_env) + env = concat(var.app_settings, local.secrets_env) image = "ghcr.io/pagopa/selfcare-onboarding:${var.image_tag}" name = "${local.project}-${local.app_name}" resources = { diff --git a/.container_app/env/dev/terraform.tfvars b/.container_app/env/dev/terraform.tfvars index 38bb67594..1c0624e84 100644 --- a/.container_app/env/dev/terraform.tfvars +++ b/.container_app/env/dev/terraform.tfvars @@ -10,28 +10,28 @@ tags = { } container_app = { - image_tag = "sha-384dd82" min_replicas = 0 max_replicas = 1 scale_rules = [] - app_settings = [ - { - name = "USER_REGISTRY_URL" - value = "https://api.uat.pdv.pagopa.it/user-registry/v1" - }, - { - name = "ONBOARDING_FUNCTIONS_URL" - value = "https://selc-d-func.azurewebsites.net" - }, - { - name = "ONBOARDING_ALLOWED_INSTITUTIONS_PRODUCTS" - value = "{'prod-interop': ['*'], 'prod-pn': ['*'], 'prod-io': ['*'], 'prod-io-premium': ['*'], 'prod-pagopa': ['*'], 'prod-fd': ['*'], 'prod-fd-garantito': ['*']}" - } - ] cpu = 0.5 memory = "1Gi" } +app_settings = [ + { + name = "USER_REGISTRY_URL" + value = "https://api.uat.pdv.pagopa.it/user-registry/v1" + }, + { + name = "ONBOARDING_FUNCTIONS_URL" + value = "https://selc-d-func.azurewebsites.net" + }, + { + name = "ONBOARDING_ALLOWED_INSTITUTIONS_PRODUCTS" + value = "{'prod-interop': ['*'], 'prod-pn': ['*'], 'prod-io': ['*'], 'prod-io-premium': ['*'], 'prod-pagopa': ['*'], 'prod-fd': ['*'], 'prod-fd-garantito': ['*']}" + } +] + key_vault = { resource_group_name = "selc-d-sec-rg" name = "selc-d-kv" diff --git a/.container_app/env/prod/backend.ini b/.container_app/env/prod/backend.ini new file mode 100644 index 000000000..dc3318a88 --- /dev/null +++ b/.container_app/env/prod/backend.ini @@ -0,0 +1 @@ +subscription=PROD-SelfCare diff --git a/.container_app/env/prod/backend.tfvars b/.container_app/env/prod/backend.tfvars new file mode 100644 index 000000000..365a6d565 --- /dev/null +++ b/.container_app/env/prod/backend.tfvars @@ -0,0 +1,4 @@ +resource_group_name = "terraform-state-rg" +storage_account_name = "tfappprodselfcare" +container_name = "terraform-state" +key = "onboarding-app.tfstate" diff --git a/.container_app/env/prod/terraform.tfvars b/.container_app/env/prod/terraform.tfvars new file mode 100644 index 000000000..2dbd565ea --- /dev/null +++ b/.container_app/env/prod/terraform.tfvars @@ -0,0 +1,57 @@ +prefix = "selc" +env_short = "p" + +tags = { + CreatedBy = "Terraform" + Environment = "Prod" + Owner = "SelfCare" + Source = "https://github.com/pagopa/selfcare-onboarding" + CostCenter = "TS310 - PAGAMENTI & SERVIZI" +} + +container_app = { + min_replicas = 0 + max_replicas = 5 + scale_rules = [ + { + custom = { + metadata = { + "desiredReplicas" = "3" + "start" = "0 8 * * MON-FRI" + "end" = "0 19 * * MON-FRI" + "timezone" = "Europe/Rome" + } + type = "cron" + } + name = "cron-scale-rule" + } + ] + cpu = 1.25 + memory = "2.5Gi" +} + +app_settings = [ + { + name = "USER_REGISTRY_URL" + value = "https://api.uat.pdv.pagopa.it/user-registry/v1" + }, + { + name = "ONBOARDING_FUNCTIONS_URL" + value = "https://selc-p-func.azurewebsites.net" + }, + { + name = "ONBOARDING_ALLOWED_INSTITUTIONS_PRODUCTS" + value = "{'prod-interop': ['*'], 'prod-pn': ['*'], 'prod-io': ['*'], 'prod-io-premium': ['*'], 'prod-pagopa': ['*'], 'prod-fd': ['*'], 'prod-fd-garantito': ['*']}" + } +] + +key_vault = { + resource_group_name = "selc-p-sec-rg" + name = "selc-p-kv" + secrets_names = [ + "jwt-public-key", + "mongodb-connection-string", + "user-registry-api-key", + "onboarding-functions-api-key" + ] +} diff --git a/.container_app/env/uat/backend.ini b/.container_app/env/uat/backend.ini new file mode 100644 index 000000000..8be578585 --- /dev/null +++ b/.container_app/env/uat/backend.ini @@ -0,0 +1 @@ +subscription=UAT-SelfCare diff --git a/.container_app/env/uat/backend.tfvars b/.container_app/env/uat/backend.tfvars new file mode 100644 index 000000000..b79311338 --- /dev/null +++ b/.container_app/env/uat/backend.tfvars @@ -0,0 +1,4 @@ +resource_group_name = "terraform-state-rg" +storage_account_name = "tfappuatselfcare" +container_name = "terraform-state" +key = "onboarding-app.tfstate" diff --git a/.container_app/env/uat/terraform.tfvars b/.container_app/env/uat/terraform.tfvars new file mode 100644 index 000000000..9d95ca4b5 --- /dev/null +++ b/.container_app/env/uat/terraform.tfvars @@ -0,0 +1,44 @@ +prefix = "selc" +env_short = "u" + +tags = { + CreatedBy = "Terraform" + Environment = "Uat" + Owner = "SelfCare" + Source = "https://github.com/pagopa/selfcare-onboarding" + CostCenter = "TS310 - PAGAMENTI & SERVIZI" +} + +container_app = { + min_replicas = 0 + max_replicas = 2 + scale_rules = [] + cpu = 0.5 + memory = "1Gi" +} + +app_settings = [ + { + name = "USER_REGISTRY_URL" + value = "https://api.uat.pdv.pagopa.it/user-registry/v1" + }, + { + name = "ONBOARDING_FUNCTIONS_URL" + value = "https://selc-u-func.azurewebsites.net" + }, + { + name = "ONBOARDING_ALLOWED_INSTITUTIONS_PRODUCTS" + value = "{'prod-interop': ['*'], 'prod-pn': ['*'], 'prod-io': ['*'], 'prod-io-premium': ['*'], 'prod-pagopa': ['*'], 'prod-fd': ['*'], 'prod-fd-garantito': ['*']}" + } +] + +key_vault = { + resource_group_name = "selc-u-sec-rg" + name = "selc-u-kv" + secrets_names = [ + "jwt-public-key", + "mongodb-connection-string", + "user-registry-api-key", + "onboarding-functions-api-key" + ] +} diff --git a/.container_app/variables.tf b/.container_app/variables.tf index 8bf1172c4..878618cd0 100644 --- a/.container_app/variables.tf +++ b/.container_app/variables.tf @@ -28,7 +28,6 @@ variable "tags" { variable "container_app" { description = "Container App configuration" type = object({ - image_tag = string min_replicas = number max_replicas = number @@ -42,32 +41,21 @@ variable "container_app" { cpu = number memory = string - - app_settings = list(object({ - name = string - value = string - })) }) - - default = { - image_tag = "latest" - min_replicas = 0 - max_replicas = 1 - - scale_rules = [] - app_settings = [] - env = [] - - cpu = 0.5 - memory = "1Gi" - } } variable "image_tag" { - type = string + type = string default = "latest" } +variable "app_settings" { + type = list(object({ + name = string + value = string + })) +} + variable "key_vault" { description = "KeyVault data to get secrets values from" type = object({