Skip to content

add domain to fd for sbox#2564

Open
NickAzureDevops wants to merge 3 commits intomasterfrom
add-domain-to-fd
Open

add domain to fd for sbox#2564
NickAzureDevops wants to merge 3 commits intomasterfrom
add-domain-to-fd

Conversation

@NickAzureDevops
Copy link
Copy Markdown
Contributor

@NickAzureDevops NickAzureDevops commented Aug 28, 2025

Jira link

See DTSPO-27329

Change description

add domain to front door for https://backstage.sandbox.platform.hmcts.net/ in sbox env

Testing done

Security Vulnerability Assessment

CVE Suppression: Are there any CVEs present in the codebase (either newly introduced or pre-existing) that are being intentionally suppressed or ignored by this commit?

  • Yes
  • No

Checklist

  • commit messages are meaningful and follow good commit message guidelines
  • README and other documentation has been updated / added (if needed)
  • tests have been updated / new tests has been added (if needed)
  • Does this PR introduce a breaking change

🤖AEP PR SUMMARY🤖

environments/sbox/sbox.tfvars

  • Added a new configuration block for "backstage" with custom domain, DNS zone name, backend domain, certificate name, and other settings. This includes enabling the shutter app and using Azure Key Vault for SSL mode.

Copilot AI review requested due to automatic review settings August 28, 2025 15:13
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds a new frontend configuration for the Backstage application in the sandbox environment to enable access through Azure Front Door at https://backstage.sandbox.platform.hmcts.net/.

  • Adds a new "backstage" frontend entry to the sbox.tfvars configuration
  • Configures the custom domain, DNS zone, backend domain, and SSL certificate for the Backstage service

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment thread environments/sbox/sbox.tfvars Outdated
@github-actions
Copy link
Copy Markdown

Suggestions for Improvement:

  1. Consistency in Attribute Ordering:

    • The name attribute appears last in previous blocks, but comes first in the newly added backstage block. For code consistency and readability, maintain the same attribute order as the existing blocks. For example:
      hcl
      {
      product = "backstage"
      custom_domain = "backstage.sandbox.platform.hmcts.net"
      dns_zone_name = "sandbox.platform.hmcts.net"
      backend_domain = ["firewall-sbox-int-palo-sbox.uksouth.cloudapp.azure.com"]
      certificate_name = "wildcard-sandbox-platform-hmcts-net"
      disabled_rules = {}
      shutter_app = true
      ssl_mode = "AzureKeyVault"
      }
      
      
  2. Empty disabled_rules Clarification:

    • The disabled_rules attribute is set to an empty {} in this block. If this is intentional, it would be helpful to add a comment explaining why no rules are being disabled. For example:
      disabled_rules = {} # No rules disabled for now; future rules can be added here
  3. DNS Zone Reuse:

    • Consider verifying if dns_zone_name ("sandbox.platform.hmcts.net") is already declared globally for this environment. If so, reference the global variable instead of hardcoding it repeatedly to avoid errors and simplify updates. Example:
      dns_zone_name = var.shared_dns_zone_name
  4. Carbon and Cost Perspective:

    • Adding a new custom domain with SSL certificates ensures encrypted communication, but managing originating and backend traffic across regions via firewall-sbox-int-palo-sbox.uksouth.cloudapp.azure.com may impact traffic costs and carbon footprint. Consider verifying if optimal routing (like internal load balancers or regional endpoints) can reduce costs and emissions.
  5. Validation for Added Domain and Certificate:

    • Ensure the custom_domain and certificate_name values have been validated in Azure (e.g., DNS A records, CNAMEs, and Key Vault certificates). Explicit validation or documentation of this in terraform comments or a separate README would help future maintainers.
  6. Test Shutter App Behavior:

    • Since shutter_app = true, ensure this behavior has been tested for the \"backstage\" product in this specific environment and confirm there is no unintended blocking due to shuttering.

Estimated Cost and Carbon Impact:

  • The addition of a new custom domain with SSL certificate and an associated backend domain may increase Azure DNS query costs and SSL certificate renewal costs (~£50-100/year per dynamic wildcard certificate). Carbon impact will depend on underlying region energy consumption and routing efficiency.

@github-actions
Copy link
Copy Markdown

Improvements to the sbox.tfvars Git Diff

  1. Consistency in Attribute Order:

    • Maintain a consistent attribute order across all frontend definitions. For example, product appears first in the original block but is missing in the new entry. Keeping the same order enhances readability and reduces the chances of human error.
    • Suggestion:
      hcl
      {
      product = "backstage"
      name = "backstage"
      custom_domain = "backstage.sandbox.platform.hmcts.net"
      dns_zone_name = "sandbox.platform.hmcts.net"
      backend_domain = ["firewall-sbox-int-palo-sbox.uksouth.cloudapp.azure.com"]
      certificate_name = "wildcard-sandbox-platform-hmcts-net"
      disabled_rules = {}
      shutter_app = true
      ssl_mode = "AzureKeyVault"
      }
      
      
  2. Proper Validation for backend_domain:

    • Currently, backend_domain is supplied as an array, but if only one backend is relevant, this could instead be a single string for simplicity. If multiple backends are expected in the future, leave as-is but ensure there’s validation to prevent misconfiguration or empty arrays.
    • Suggestion: Add validation or documentation indicating acceptable values for backend_domain.
  3. Static Strings Handling:

    • Strings such as \"backstage.sandbox.platform.hmcts.net\" and \"wildcard-sandbox-platform-hmcts-net\" appear to be static. To improve maintainability, consider referencing them from a central variable file.
    • Suggestion:
      custom_domain    = var.backstage_custom_domain
      certificate_name = var.sandbox_wildcard_certificate
  4. Security: Validation for Certificates:

    • Ensure that the certificate_name matches the expected wildcard and domain configuration. Misconfiguration can lead to invalid SSL setups.
    • Suggestion:
      Document the certificate creation process and verify the domain validity during deployment.
  5. Carbon Usage and Cost Optimization:

    • While no explicit infrastructure resources are defined here, adding a new frontend like backstage could unintentionally lead to increased SSL management, DNS querying, and application hosting costs. Estimate the financial impact (e.g., ~£10-£50/month for Azure Key Vault SSL certs).
    • Suggestion:
      Monitor and track the usage of AzureKeyVault certificates. For small environments, consider consolidating into fewer certificates if possible and assess their necessity.
  6. Comment with Purpose:

    • Document the purpose of backstage. Adding a descriptive comment improves the maintainability and clarity of the configuration.
    • Suggestion:
      # Backstage frontend: Internal developer portal for the sandbox environment
      { 
        ...
      }
  7. Future-proofing with Default Values:

    • If the shutter_app feature will frequently be enabled or disabled, add a configurable variable (e.g., var.default_shutter_app) rather than hardcoding.
    • Suggestion:
      shutter_app = var.default_shutter_app

By addressing the above, the configuration will improve in maintainability, security, cost-awareness, and clarity.

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: sbox_shutter_webapp - TerraformPlanApply)

Plan: 5 to add, 0 to change, 0 to destroy.
  • Create
    • module.static_webapp.azurerm_dns_cname_record.cname_record["backstage"]
    • module.static_webapp.azurerm_dns_txt_record.zone_validate["backstage"]
    • module.static_webapp.azurerm_static_site.swebapp["backstage"]
    • module.static_webapp.azurerm_static_site_custom_domain.custom_domain["backstage"]
    • module.static_webapp.github_actions_secret.secret["backstage"]
Change Result (Click me)
  # module.static_webapp.azurerm_dns_cname_record.cname_record["backstage"] will be created
  + resource "azurerm_dns_cname_record" "cname_record" {
      + fqdn                = (known after apply)
      + id                  = (known after apply)
      + name                = "backstage-shutter"
      + record              = (known after apply)
      + resource_group_name = "reformMgmtRG"
      + ttl                 = 300
      + zone_name           = "sandbox.platform.hmcts.net"
    }

  # module.static_webapp.azurerm_dns_txt_record.zone_validate["backstage"] will be created
  + resource "azurerm_dns_txt_record" "zone_validate" {
      + fqdn                = (known after apply)
      + id                  = (known after apply)
      + name                = "_dnsauth.backstage"
      + resource_group_name = "reformMgmtRG"
      + ttl                 = 3600
      + zone_name           = "sandbox.platform.hmcts.net"

      + record {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
    }

  # module.static_webapp.azurerm_static_site.swebapp["backstage"] will be created
  + resource "azurerm_static_site" "swebapp" {
      + api_key             = (sensitive value)
      + default_host_name   = (known after apply)
      + id                  = (known after apply)
      + location            = "westeurope"
      + name                = "backstage"
      + resource_group_name = "cft-platform-shutter-webapp-sbox-rg"
      + sku_size            = "Standard"
      + sku_tier            = "Standard"
      + tags                = {
          + "application"  = "core"
          + "builtFrom"    = "hmcts/azure-platform-terraform"
          + "businessArea" = "CFT"
          + "criticality"  = "Low"
          + "environment"  = "sandbox"
          + "expiresAfter" = "3000-01-01"
        }
    }

  # module.static_webapp.azurerm_static_site_custom_domain.custom_domain["backstage"] will be created
  + resource "azurerm_static_site_custom_domain" "custom_domain" {
      + domain_name      = "backstage.sandbox.platform.hmcts.net"
      + id               = (known after apply)
      + static_site_id   = (known after apply)
      + validation_token = (sensitive value)
      + validation_type  = "dns-txt-token"
    }

  # module.static_webapp.github_actions_secret.secret["backstage"] will be created
  + resource "github_actions_secret" "secret" {
      + created_at      = (known after apply)
      + id              = (known after apply)
      + plaintext_value = (sensitive value)
      + repository      = "azure-shutter-pages"
      + secret_name     = "backstage_sbox"
      + updated_at      = (known after apply)
    }

Plan: 5 to add, 0 to change, 0 to destroy.

Changes to Outputs:
  ~ debug_shutter = [
        # (1 unchanged element hidden)
        {
            backend_domain   = [
                "firewall-sbox-int-palo-sbox.uksouth.cloudapp.azure.com",
            ]
            certificate_name = "wildcard-sandbox-platform-hmcts-net"
            custom_domain    = "plumclassic.sandbox.platform.hmcts.net"
            disabled_rules   = {}
            dns_zone_name    = "sandbox.platform.hmcts.net"
            name             = "plumclassic"
            product          = "plumclassic"
            shutter_app      = true
            ssl_mode         = "AzureKeyVault"
        },
      + {
          + backend_domain   = [
              + "firewall-sbox-int-palo-sbox.uksouth.cloudapp.azure.com",
            ]
          + certificate_name = "wildcard-sandbox-platform-hmcts-net"
          + custom_domain    = "backstage.sandbox.platform.hmcts.net"
          + disabled_rules   = {}
          + dns_zone_name    = "sandbox.platform.hmcts.net"
          + name             = "backstage"
          + shutter_app      = true
          + ssl_mode         = "AzureKeyVault"
        },
    ]

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: sbox_apim_appgw - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: sbox_backendappgateway - TerraformPlanApply)

Plan: 0 to add, 1 to change, 0 to destroy.
  • Update
    • module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-sandbox-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: sbox_private_dns - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: sbox_apim - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: sbox_frontendappgateway - TerraformPlanApply)

Plan: 0 to add, 2 to change, 0 to destroy.
  • Update
    • module.frontendappgateway.azurerm_application_gateway.ag[0]
    • module.frontendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.frontendappgateway.azurerm_application_gateway.ag[0] will be updated in-place
  ~ resource "azurerm_application_gateway" "ag" {
        id                                = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw"
        name                              = "cft-aks-fe-00-sbox-agw"
        tags                              = {
            "application"  = "core"
            "autoShutdown" = "true"
            "builtFrom"    = "hmcts/azure-platform-terraform"
            "businessArea" = "CFT"
            "criticality"  = "Low"
            "environment"  = "sandbox"
            "expiresAfter" = "3000-01-01"
            "startupMode"  = "always"
        }
        # (8 unchanged attributes hidden)

      + backend_address_pool {
          + fqdns        = []
          + id           = (known after apply)
          + ip_addresses = [
              + "10.2.11.250",
              + "10.2.9.250",
            ]
          + name         = "backstage"
        }

      - backend_http_settings {
          - cookie_based_affinity               = "Disabled" -> null
          - id                                  = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/cft-api-mgmt" -> null
          - name                                = "cft-api-mgmt" -> null
          - pick_host_name_from_backend_address = false -> null
          - port                                = 80 -> null
          - probe_id                            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/probes/cft-api-mgmt" -> null
          - probe_name                          = "cft-api-mgmt" -> null
          - protocol                            = "Http" -> null
          - request_timeout                     = 30 -> null
          - trusted_root_certificate_names      = [] -> null
            # (3 unchanged attributes hidden)
        }
      - backend_http_settings {
          - cookie_based_affinity               = "Disabled" -> null
          - id                                  = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/hmcts-access" -> null
          - name                                = "hmcts-access" -> null
          - pick_host_name_from_backend_address = false -> null
          - port                                = 80 -> null
          - probe_id                            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/probes/hmcts-access" -> null
          - probe_name                          = "hmcts-access" -> null
          - protocol                            = "Http" -> null
          - request_timeout                     = 30 -> null
          - trusted_root_certificate_names      = [] -> null
            # (3 unchanged attributes hidden)
        }
      - backend_http_settings {
          - cookie_based_affinity               = "Disabled" -> null
          - id                                  = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/hmi-apim" -> null
          - name                                = "hmi-apim" -> null
          - pick_host_name_from_backend_address = false -> null
          - port                                = 80 -> null
          - probe_id                            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/probes/hmi-apim" -> null
          - probe_name                          = "hmi-apim" -> null
          - protocol                            = "Http" -> null
          - request_timeout                     = 30 -> null
          - trusted_root_certificate_names      = [] -> null
            # (3 unchanged attributes hidden)
        }
      - backend_http_settings {
          - cookie_based_affinity               = "Disabled" -> null
          - id                                  = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/idam-user-dashboard" -> null
          - name                                = "idam-user-dashboard" -> null
          - pick_host_name_from_backend_address = false -> null
          - port                                = 80 -> null
          - probe_id                            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/probes/idam-user-dashboard" -> null
          - probe_name                          = "idam-user-dashboard" -> null
          - protocol                            = "Http" -> null
          - request_timeout                     = 30 -> null
          - trusted_root_certificate_names      = [] -> null
            # (3 unchanged attributes hidden)
        }
      - backend_http_settings {
          - cookie_based_affinity               = "Disabled" -> null
          - id                                  = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/idam-web-public" -> null
          - name                                = "idam-web-public" -> null
          - pick_host_name_from_backend_address = false -> null
          - port                                = 80 -> null
          - probe_id                            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/probes/idam-web-public" -> null
          - probe_name                          = "idam-web-public" -> null
          - protocol                            = "Http" -> null
          - request_timeout                     = 30 -> null
          - trusted_root_certificate_names      = [] -> null
            # (3 unchanged attributes hidden)
        }
      - backend_http_settings {
          - cookie_based_affinity               = "Disabled" -> null
          - id                                  = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/plum" -> null
          - name                                = "plum" -> null
          - pick_host_name_from_backend_address = false -> null
          - port                                = 80 -> null
          - probe_id                            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/probes/plum" -> null
          - probe_name                          = "plum" -> null
          - protocol                            = "Http" -> null
          - request_timeout                     = 30 -> null
          - trusted_root_certificate_names      = [] -> null
            # (3 unchanged attributes hidden)
        }
      - backend_http_settings {
          - cookie_based_affinity               = "Disabled" -> null
          - id                                  = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/plumclassic" -> null
          - name                                = "plumclassic" -> null
          - pick_host_name_from_backend_address = false -> null
          - port                                = 80 -> null
          - probe_id                            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/probes/plumclassic" -> null
          - probe_name                          = "plumclassic" -> null
          - protocol                            = "Http" -> null
          - request_timeout                     = 30 -> null
          - trusted_root_certificate_names      = [] -> null
            # (3 unchanged attributes hidden)
        }
      - backend_http_settings {
          - cookie_based_affinity               = "Enabled" -> null
          - id                                  = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/reformscan" -> null
          - name                                = "reformscan" -> null
          - pick_host_name_from_backend_address = false -> null
          - port                                = 80 -> null
          - probe_id                            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/probes/reformscan" -> null
          - probe_name                          = "reformscan" -> null
          - protocol                            = "Http" -> null
          - request_timeout                     = 30 -> null
          - trusted_root_certificate_names      = [] -> null
            # (3 unchanged attributes hidden)
        }
      + backend_http_settings {
          + cookie_based_affinity               = "Disabled"
          + id                                  = (known after apply)
          + name                                = "backstage"
          + pick_host_name_from_backend_address = false
          + port                                = 80
          + probe_id                            = (known after apply)
          + probe_name                          = "backstage"
          + protocol                            = "Http"
          + request_timeout                     = 30
          + trusted_root_certificate_names      = []
            # (3 unchanged attributes hidden)
        }
      + backend_http_settings {
          + cookie_based_affinity               = "Disabled"
          + id                                  = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/cft-api-mgmt"
          + name                                = "cft-api-mgmt"
          + pick_host_name_from_backend_address = false
          + port                                = 80
          + probe_id                            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/probes/cft-api-mgmt"
          + probe_name                          = "cft-api-mgmt"
          + protocol                            = "Http"
          + request_timeout                     = 30
          + trusted_root_certificate_names      = []
        }
      + backend_http_settings {
          + cookie_based_affinity               = "Disabled"
          + id                                  = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/hmcts-access"
          + name                                = "hmcts-access"
          + pick_host_name_from_backend_address = false
          + port                                = 80
          + probe_id                            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/probes/hmcts-access"
          + probe_name                          = "hmcts-access"
          + protocol                            = "Http"
          + request_timeout                     = 30
          + trusted_root_certificate_names      = []
        }
      + backend_http_settings {
          + cookie_based_affinity               = "Disabled"
          + id                                  = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/hmi-apim"
          + name                                = "hmi-apim"
          + pick_host_name_from_backend_address = false
          + port                                = 80
          + probe_id                            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/probes/hmi-apim"
          + probe_name                          = "hmi-apim"
          + protocol                            = "Http"
          + request_timeout                     = 30
          + trusted_root_certificate_names      = []
        }
      + backend_http_settings {
          + cookie_based_affinity               = "Disabled"
          + id                                  = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/idam-user-dashboard"
          + name                                = "idam-user-dashboard"
          + pick_host_name_from_backend_address = false
          + port                                = 80
          + probe_id                            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/probes/idam-user-dashboard"
          + probe_name                          = "idam-user-dashboard"
          + protocol                            = "Http"
          + request_timeout                     = 30
          + trusted_root_certificate_names      = []
        }
      + backend_http_settings {
          + cookie_based_affinity               = "Disabled"
          + id                                  = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/idam-web-public"
          + name                                = "idam-web-public"
          + pick_host_name_from_backend_address = false
          + port                                = 80
          + probe_id                            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/probes/idam-web-public"
          + probe_name                          = "idam-web-public"
          + protocol                            = "Http"
          + request_timeout                     = 30
          + trusted_root_certificate_names      = []
        }
      + backend_http_settings {
          + cookie_based_affinity               = "Disabled"
          + id                                  = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/plum"
          + name                                = "plum"
          + pick_host_name_from_backend_address = false
          + port                                = 80
          + probe_id                            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/probes/plum"
          + probe_name                          = "plum"
          + protocol                            = "Http"
          + request_timeout                     = 30
          + trusted_root_certificate_names      = []
        }
      + backend_http_settings {
          + cookie_based_affinity               = "Disabled"
          + id                                  = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/plumclassic"
          + name                                = "plumclassic"
          + pick_host_name_from_backend_address = false
          + port                                = 80
          + probe_id                            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/probes/plumclassic"
          + probe_name                          = "plumclassic"
          + protocol                            = "Http"
          + request_timeout                     = 30
          + trusted_root_certificate_names      = []
        }
      + backend_http_settings {
          + cookie_based_affinity               = "Enabled"
          + id                                  = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/reformscan"
          + name                                = "reformscan"
          + pick_host_name_from_backend_address = false
          + port                                = 80
          + probe_id                            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/probes/reformscan"
          + probe_name                          = "reformscan"
          + protocol                            = "Http"
          + request_timeout                     = 30
          + trusted_root_certificate_names      = []
        }

      - http_listener {
          - frontend_ip_configuration_id   = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/frontendIPConfigurations/appGwPrivateFrontendIp" -> null
          - frontend_ip_configuration_name = "appGwPrivateFrontendIp" -> null
          - frontend_port_id               = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/frontendPorts/http" -> null
          - frontend_port_name             = "http" -> null
          - host_name                      = "cft-api-mgmt.sandbox.platform.hmcts.net" -> null
          - host_names                     = [] -> null
          - id                             = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/httpListeners/cft-api-mgmt" -> null
          - name                           = "cft-api-mgmt" -> null
          - protocol                       = "Http" -> null
          - require_sni                    = false -> null
            # (5 unchanged attributes hidden)
        }
      - http_listener {
          - frontend_ip_configuration_id   = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-

# ...
# ... The maximum length of GitHub Comment is 65536, so the content is omitted by tfcmt.
# ...

  - priority                    = 30 -> null
          - rewrite_rule_set_id         = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/rewriteRuleSets/x_fwded_proto" -> null
          - rewrite_rule_set_name       = "x_fwded_proto" -> null
          - rule_type                   = "Basic" -> null
            # (4 unchanged attributes hidden)
        }
      - request_routing_rule {
          - backend_address_pool_id     = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendAddressPools/idam-web-public" -> null
          - backend_address_pool_name   = "idam-web-public" -> null
          - backend_http_settings_id    = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/idam-web-public" -> null
          - backend_http_settings_name  = "idam-web-public" -> null
          - http_listener_id            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/httpListeners/idam-web-public" -> null
          - http_listener_name          = "idam-web-public" -> null
          - id                          = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/requestRoutingRules/idam-web-public" -> null
          - name                        = "idam-web-public" -> null
          - priority                    = 10 -> null
          - rewrite_rule_set_id         = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/rewriteRuleSets/x_fwded_proto" -> null
          - rewrite_rule_set_name       = "x_fwded_proto" -> null
          - rule_type                   = "Basic" -> null
            # (4 unchanged attributes hidden)
        }
      - request_routing_rule {
          - backend_address_pool_id     = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendAddressPools/plum" -> null
          - backend_address_pool_name   = "plum" -> null
          - backend_http_settings_id    = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/plum" -> null
          - backend_http_settings_name  = "plum" -> null
          - http_listener_id            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/httpListeners/plum" -> null
          - http_listener_name          = "plum" -> null
          - id                          = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/requestRoutingRules/plum" -> null
          - name                        = "plum" -> null
          - priority                    = 40 -> null
          - rewrite_rule_set_id         = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/rewriteRuleSets/x_fwded_proto" -> null
          - rewrite_rule_set_name       = "x_fwded_proto" -> null
          - rule_type                   = "Basic" -> null
            # (4 unchanged attributes hidden)
        }
      - request_routing_rule {
          - backend_address_pool_id     = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendAddressPools/plumclassic" -> null
          - backend_address_pool_name   = "plumclassic" -> null
          - backend_http_settings_id    = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/plumclassic" -> null
          - backend_http_settings_name  = "plumclassic" -> null
          - http_listener_id            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/httpListeners/plumclassic" -> null
          - http_listener_name          = "plumclassic" -> null
          - id                          = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/requestRoutingRules/plumclassic" -> null
          - name                        = "plumclassic" -> null
          - priority                    = 50 -> null
          - rewrite_rule_set_id         = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/rewriteRuleSets/x_fwded_proto" -> null
          - rewrite_rule_set_name       = "x_fwded_proto" -> null
          - rule_type                   = "Basic" -> null
            # (4 unchanged attributes hidden)
        }
      - request_routing_rule {
          - backend_address_pool_id     = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendAddressPools/reformscan" -> null
          - backend_address_pool_name   = "reformscan" -> null
          - backend_http_settings_id    = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/reformscan" -> null
          - backend_http_settings_name  = "reformscan" -> null
          - http_listener_id            = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/httpListeners/reformscan" -> null
          - http_listener_name          = "reformscan" -> null
          - id                          = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/requestRoutingRules/reformscan" -> null
          - name                        = "reformscan" -> null
          - priority                    = 80 -> null
          - rewrite_rule_set_id         = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/rewriteRuleSets/x_fwded_proto" -> null
          - rewrite_rule_set_name       = "x_fwded_proto" -> null
          - rule_type                   = "Basic" -> null
            # (4 unchanged attributes hidden)
        }
      + request_routing_rule {
          + backend_address_pool_id    = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendAddressPools/hmcts-access"
          + backend_address_pool_name  = "hmcts-access"
          + backend_http_settings_id   = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/hmcts-access"
          + backend_http_settings_name = "hmcts-access"
          + http_listener_id           = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/httpListeners/hmcts-access"
          + http_listener_name         = "hmcts-access"
          + id                         = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/requestRoutingRules/hmcts-access"
          + name                       = "hmcts-access"
          + priority                   = 20
          + rewrite_rule_set_id        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/rewriteRuleSets/x_fwded_proto"
          + rewrite_rule_set_name      = "x_fwded_proto"
          + rule_type                  = "Basic"
            # (2 unchanged attributes hidden)
        }
      + request_routing_rule {
          + backend_address_pool_id    = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendAddressPools/idam-user-dashboard"
          + backend_address_pool_name  = "idam-user-dashboard"
          + backend_http_settings_id   = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/idam-user-dashboard"
          + backend_http_settings_name = "idam-user-dashboard"
          + http_listener_id           = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/httpListeners/idam-user-dashboard"
          + http_listener_name         = "idam-user-dashboard"
          + id                         = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/requestRoutingRules/idam-user-dashboard"
          + name                       = "idam-user-dashboard"
          + priority                   = 30
          + rewrite_rule_set_id        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/rewriteRuleSets/x_fwded_proto"
          + rewrite_rule_set_name      = "x_fwded_proto"
          + rule_type                  = "Basic"
            # (2 unchanged attributes hidden)
        }
      + request_routing_rule {
          + backend_address_pool_id    = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendAddressPools/idam-web-public"
          + backend_address_pool_name  = "idam-web-public"
          + backend_http_settings_id   = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/idam-web-public"
          + backend_http_settings_name = "idam-web-public"
          + http_listener_id           = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/httpListeners/idam-web-public"
          + http_listener_name         = "idam-web-public"
          + id                         = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/requestRoutingRules/idam-web-public"
          + name                       = "idam-web-public"
          + priority                   = 10
          + rewrite_rule_set_id        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/rewriteRuleSets/x_fwded_proto"
          + rewrite_rule_set_name      = "x_fwded_proto"
          + rule_type                  = "Basic"
            # (2 unchanged attributes hidden)
        }
      + request_routing_rule {
          + backend_address_pool_id    = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendAddressPools/plum"
          + backend_address_pool_name  = "plum"
          + backend_http_settings_id   = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/plum"
          + backend_http_settings_name = "plum"
          + http_listener_id           = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/httpListeners/plum"
          + http_listener_name         = "plum"
          + id                         = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/requestRoutingRules/plum"
          + name                       = "plum"
          + priority                   = 40
          + rewrite_rule_set_id        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/rewriteRuleSets/x_fwded_proto"
          + rewrite_rule_set_name      = "x_fwded_proto"
          + rule_type                  = "Basic"
            # (2 unchanged attributes hidden)
        }
      + request_routing_rule {
          + backend_address_pool_id    = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendAddressPools/plumclassic"
          + backend_address_pool_name  = "plumclassic"
          + backend_http_settings_id   = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/backendHttpSettingsCollection/plumclassic"
          + backend_http_settings_name = "plumclassic"
          + http_listener_id           = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/httpListeners/plumclassic"
          + http_listener_name         = "plumclassic"
          + id                         = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/requestRoutingRules/plumclassic"
          + name                       = "plumclassic"
          + priority                   = 50
          + rewrite_rule_set_id        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw/rewriteRuleSets/x_fwded_proto"
          + rewrite_rule_set_name      = "x_fwded_proto"
          + rule_type                  = "Basic"
            # (2 unchanged attributes hidden)
        }
      + request_routing_rule {
          + backend_address_pool_id     = (known after apply)
          + backend_address_pool_name   = "backstage"
          + backend_http_settings_id    = (known after apply)
          + backend_http_settings_name  = "backstage"
          + http_listener_id            = (known after apply)
          + http_listener_name          = "backstage"
          + id                          = (known after apply)
          + name                        = "backstage"
          + priority                    = 60
          + redirect_configuration_id   = (known after apply)
          + rewrite_rule_set_id         = (known after apply)
          + rewrite_rule_set_name       = "x_fwded_proto"
          + rule_type                   = "Basic"
          + url_path_map_id             = (known after apply)
            # (2 unchanged attributes hidden)
        }
      + request_routing_rule {
          + backend_address_pool_id     = (known after apply)
          + backend_address_pool_name   = "cft-api-mgmt"
          + backend_http_settings_id    = (known after apply)
          + backend_http_settings_name  = "cft-api-mgmt"
          + http_listener_id            = (known after apply)
          + http_listener_name          = "cft-api-mgmt"
          + id                          = (known after apply)
          + name                        = "cft-api-mgmt"
          + priority                    = 80
          + redirect_configuration_id   = (known after apply)
          + rewrite_rule_set_id         = (known after apply)
          + rewrite_rule_set_name       = "x_fwded_proto"
          + rule_type                   = "Basic"
          + url_path_map_id             = (known after apply)
            # (2 unchanged attributes hidden)
        }
      + request_routing_rule {
          + backend_address_pool_id     = (known after apply)
          + backend_address_pool_name   = "hmi-apim"
          + backend_http_settings_id    = (known after apply)
          + backend_http_settings_name  = "hmi-apim"
          + http_listener_id            = (known after apply)
          + http_listener_name          = "hmi-apim"
          + id                          = (known after apply)
          + name                        = "hmi-apim"
          + priority                    = 70
          + redirect_configuration_id   = (known after apply)
          + rewrite_rule_set_id         = (known after apply)
          + rewrite_rule_set_name       = "x_fwded_proto"
          + rule_type                   = "Basic"
          + url_path_map_id             = (known after apply)
            # (2 unchanged attributes hidden)
        }
      + request_routing_rule {
          + backend_address_pool_id     = (known after apply)
          + backend_address_pool_name   = "reformscan"
          + backend_http_settings_id    = (known after apply)
          + backend_http_settings_name  = "reformscan"
          + http_listener_id            = (known after apply)
          + http_listener_name          = "reformscan"
          + id                          = (known after apply)
          + name                        = "reformscan"
          + priority                    = 90
          + redirect_configuration_id   = (known after apply)
          + rewrite_rule_set_id         = (known after apply)
          + rewrite_rule_set_name       = "x_fwded_proto"
          + rule_type                   = "Basic"
          + url_path_map_id             = (known after apply)
            # (2 unchanged attributes hidden)
        }

        # (16 unchanged blocks hidden)
    }

  # module.frontendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-sbox-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

Plan: 0 to add, 2 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: sbox_global - TerraformPlanApply)

Plan: 13 to add, 1 to change, 0 to destroy.
  • Create
    • module.premium_front_door.azurerm_cdn_frontdoor_custom_domain.custom_domain["backstage"]
    • module.premium_front_door.azurerm_cdn_frontdoor_custom_domain_association.custom_association_A["backstage"]
    • module.premium_front_door.azurerm_cdn_frontdoor_custom_domain_association.custom_association_B["backstage"]
    • module.premium_front_door.azurerm_cdn_frontdoor_firewall_policy.custom["backstage"]
    • module.premium_front_door.azurerm_cdn_frontdoor_origin.front_door_origin["backstage"]
    • module.premium_front_door.azurerm_cdn_frontdoor_origin_group.origin_group["backstage"]
    • module.premium_front_door.azurerm_cdn_frontdoor_route.routing_rule_A["backstage"]
    • module.premium_front_door.azurerm_cdn_frontdoor_route.routing_rule_B["backstage"]
    • module.premium_front_door.azurerm_cdn_frontdoor_rule.caching_rule["backstage"]
    • module.premium_front_door.azurerm_cdn_frontdoor_rule_set.caching_ruleset["backstage"]
    • module.premium_front_door.azurerm_cdn_frontdoor_secret.certificate["backstage"]
    • module.premium_front_door.azurerm_cdn_frontdoor_security_policy.security_policy["backstage"]
    • module.premium_front_door.azurerm_dns_txt_record.public_dns_record["backstage"]
  • Update
    • module.premium_front_door.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.premium_front_door.azurerm_cdn_frontdoor_custom_domain.custom_domain["backstage"] will be created
  + resource "azurerm_cdn_frontdoor_custom_domain" "custom_domain" {
      + cdn_frontdoor_profile_id = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/lz-sbox-rg/providers/Microsoft.Cdn/profiles/hmcts-sbox"
      + expiration_date          = (known after apply)
      + host_name                = "backstage.sandbox.platform.hmcts.net"
      + id                       = (known after apply)
      + name                     = "backstage"
      + validation_token         = (known after apply)

      + tls {
          + cdn_frontdoor_secret_id = (known after apply)
          + certificate_type        = "CustomerCertificate"
          + minimum_tls_version     = "TLS12"
        }
    }

  # module.premium_front_door.azurerm_cdn_frontdoor_custom_domain_association.custom_association_A["backstage"] will be created
  + resource "azurerm_cdn_frontdoor_custom_domain_association" "custom_association_A" {
      + cdn_frontdoor_custom_domain_id = (known after apply)
      + cdn_frontdoor_route_ids        = (known after apply)
      + id                             = (known after apply)
    }

  # module.premium_front_door.azurerm_cdn_frontdoor_custom_domain_association.custom_association_B["backstage"] will be created
  + resource "azurerm_cdn_frontdoor_custom_domain_association" "custom_association_B" {
      + cdn_frontdoor_custom_domain_id = (known after apply)
      + cdn_frontdoor_route_ids        = (known after apply)
      + id                             = (known after apply)
    }

  # module.premium_front_door.azurerm_cdn_frontdoor_firewall_policy.custom["backstage"] will be created
  + resource "azurerm_cdn_frontdoor_firewall_policy" "custom" {
      + enabled                    = true
      + frontend_endpoint_ids      = (known after apply)
      + id                         = (known after apply)
      + mode                       = "Prevention"
      + name                       = "backstagesboxPremium"
      + request_body_check_enabled = true
      + resource_group_name        = "lz-sbox-rg"
      + sku_name                   = "Premium_AzureFrontDoor"
      + tags                       = {
          + "application"  = "core"
          + "builtFrom"    = "hmcts/azure-platform-terraform"
          + "businessArea" = "CFT"
          + "criticality"  = "Low"
          + "environment"  = "sandbox"
          + "expiresAfter" = "3000-01-01"
        }

      + managed_rule {
          + action  = "Block"
          + type    = "DefaultRuleSet"
          + version = "1.0"
        }
    }

  # module.premium_front_door.azurerm_cdn_frontdoor_origin.front_door_origin["backstage"] will be created
  + resource "azurerm_cdn_frontdoor_origin" "front_door_origin" {
      + cdn_frontdoor_origin_group_id  = (known after apply)
      + certificate_name_check_enabled = true
      + enabled                        = true
      + host_name                      = "firewall-sbox-int-palo-sbox.uksouth.cloudapp.azure.com"
      + http_port                      = 80
      + https_port                     = 443
      + id                             = (known after apply)
      + name                           = "backstage"
      + origin_host_header             = "backstage.sandbox.platform.hmcts.net"
      + priority                       = 1
      + weight                         = 50
    }

  # module.premium_front_door.azurerm_cdn_frontdoor_origin_group.origin_group["backstage"] will be created
  + resource "azurerm_cdn_frontdoor_origin_group" "origin_group" {
      + cdn_frontdoor_profile_id                                  = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/lz-sbox-rg/providers/Microsoft.Cdn/profiles/hmcts-sbox"
      + id                                                        = (known after apply)
      + name                                                      = "backstage"
      + restore_traffic_time_to_healed_or_new_endpoint_in_minutes = 10
      + session_affinity_enabled                                  = false

      + load_balancing {
          + additional_latency_in_milliseconds = 0
          + sample_size                        = 4
          + successful_samples_required        = 2
        }
    }

  # module.premium_front_door.azurerm_cdn_frontdoor_route.routing_rule_A["backstage"] will be created
  + resource "azurerm_cdn_frontdoor_route" "routing_rule_A" {
      + cdn_frontdoor_custom_domain_ids = (known after apply)
      + cdn_frontdoor_endpoint_id       = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/lz-sbox-rg/providers/Microsoft.Cdn/profiles/hmcts-sbox/afdEndpoints/hmcts-sbox"
      + cdn_frontdoor_origin_group_id   = (known after apply)
      + cdn_frontdoor_origin_ids        = (known after apply)
      + cdn_frontdoor_rule_set_ids      = (known after apply)
      + enabled                         = true
      + forwarding_protocol             = "HttpOnly"
      + https_redirect_enabled          = false
      + id                              = (known after apply)
      + link_to_default_domain          = false
      + name                            = "backstage"
      + patterns_to_match               = [
          + "/*",
        ]
      + supported_protocols             = [
          + "Https",
        ]
    }

  # module.premium_front_door.azurerm_cdn_frontdoor_route.routing_rule_B["backstage"] will be created
  + resource "azurerm_cdn_frontdoor_route" "routing_rule_B" {
      + cdn_frontdoor_custom_domain_ids = (known after apply)
      + cdn_frontdoor_endpoint_id       = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/lz-sbox-rg/providers/Microsoft.Cdn/profiles/hmcts-sbox/afdEndpoints/hmcts-sbox"
      + cdn_frontdoor_origin_group_id   = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/lz-sbox-rg/providers/Microsoft.Cdn/profiles/hmcts-sbox/originGroups/defaultBackend"
      + cdn_frontdoor_origin_ids        = [
          + "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/lz-sbox-rg/providers/Microsoft.Cdn/profiles/hmcts-sbox/originGroups/defaultBackend/origins/defaultBackend",
        ]
      + cdn_frontdoor_rule_set_ids      = (known after apply)
      + enabled                         = true
      + forwarding_protocol             = "MatchRequest"
      + https_redirect_enabled          = false
      + id                              = (known after apply)
      + link_to_default_domain          = false
      + name                            = "backstageHttpsRedirect"
      + patterns_to_match               = [
          + "/*",
        ]
      + supported_protocols             = [
          + "Http",
        ]
    }

  # module.premium_front_door.azurerm_cdn_frontdoor_rule.caching_rule["backstage"] will be created
  + resource "azurerm_cdn_frontdoor_rule" "caching_rule" {
      + behavior_on_match           = "Continue"
      + cdn_frontdoor_rule_set_id   = (known after apply)
      + cdn_frontdoor_rule_set_name = (known after apply)
      + id                          = (known after apply)
      + name                        = "backstagecachingrule"
      + order                       = 3

      + actions {
          + route_configuration_override_action {
              + cache_behavior                = "HonorOrigin"
              + compression_enabled           = false
              + query_string_caching_behavior = "UseQueryString"
            }
        }

      + conditions {
          + url_file_extension_condition {
              + match_values     = [
                  + "jpg",
                  + "png",
                  + "css",
                  + "ico",
                  + "js",
                ]
              + negate_condition = false
              + operator         = "Equal"
              + transforms       = [
                  + "Lowercase",
                ]
            }
        }
    }

  # module.premium_front_door.azurerm_cdn_frontdoor_rule_set.caching_ruleset["backstage"] will be created
  + resource "azurerm_cdn_frontdoor_rule_set" "caching_ruleset" {
      + cdn_frontdoor_profile_id = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/lz-sbox-rg/providers/Microsoft.Cdn/profiles/hmcts-sbox"
      + id                       = (known after apply)
      + name                     = "backstagecaching"
    }

  # module.premium_front_door.azurerm_cdn_frontdoor_secret.certificate["backstage"] will be created
  + resource "azurerm_cdn_frontdoor_secret" "certificate" {
      + cdn_frontdoor_profile_id   = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/lz-sbox-rg/providers/Microsoft.Cdn/profiles/hmcts-sbox"
      + cdn_frontdoor_profile_name = (known after apply)
      + id                         = (known after apply)
      + name                       = "backstage-managed-secret"

      + secret {
          + customer_certificate {
              + key_vault_certificate_id  = "https://acmedcdcftappssbox.vault.azure.net/certificates/wildcard-sandbox-platform-hmcts-net"
              + subject_alternative_names = (known after apply)
            }
        }
    }

  # module.premium_front_door.azurerm_cdn_frontdoor_security_policy.security_policy["backstage"] will be created
  + resource "azurerm_cdn_frontdoor_security_policy" "security_policy" {
      + cdn_frontdoor_profile_id = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/lz-sbox-rg/providers/Microsoft.Cdn/profiles/hmcts-sbox"
      + id                       = (known after apply)
      + name                     = "backstagesboxPremium-securityPolicy"

      + security_policies {
          + firewall {
              + cdn_frontdoor_firewall_policy_id = (known after apply)

              + association {
                  + patterns_to_match = [
                      + "/*",
                    ]

                  + domain {
                      + active                  = (known after apply)
                      + cdn_frontdoor_domain_id = (known after apply)
                    }
                }
            }
        }
    }

  # module.premium_front_door.azurerm_dns_txt_record.public_dns_record["backstage"] will be created
  + resource "azurerm_dns_txt_record" "public_dns_record" {
      + fqdn                = (known after apply)
      + id                  = (known after apply)
      + name                = "_dnsauth.backstage"
      + resource_group_name = "reformmgmtrg"
      + ttl                 = 3600
      + zone_name           = "sandbox.platform.hmcts.net"

      + record {
          + value = (known after apply)
        }
    }

  # module.premium_front_door.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/lz-sbox-rg/providers/Microsoft.Cdn/profiles/hmcts-sbox|fd-log-analytics-logs-sa"
        name                           = "fd-log-analytics-logs-sa"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (1 unchanged block hidden)
    }

Plan: 13 to add, 1 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: demo_apim_appgw - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: stg_apim_appgw - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: test_apim_appgw - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: prod_apim_appgw - TerraformPlanApply)

Plan: 0 to add, 1 to change, 0 to destroy.
  • Update
    • module.app-gw.azurerm_monitor_diagnostic_setting.diagnostic_settings[0]
Change Result (Click me)
  # module.app-gw.azurerm_monitor_diagnostic_setting.diagnostic_settings[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostic_settings" {
        id                             = "/subscriptions/0978315c-75fe-4ada-9d11-1eb5e0e0b214/resourceGroups/hmcts-hub-prod-int/providers/Microsoft.Network/applicationGateways/cft-apim00-prod-agw|AppGw"
        name                           = "AppGw"
        # (5 unchanged attributes hidden)

      - enabled_log {
          - category       = "ApplicationGatewayAccessLog" -> null
            # (1 unchanged attribute hidden)

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (1 unchanged block hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: perftest_pubsubappgateway - TerraformPlanApply)

Plan: 0 to add, 1 to change, 0 to destroy.
  • Update
    • module.pubsubappgateway[0].azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.pubsubappgateway[0].azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/8a07fdcd-6abd-48b3-ad88-ff737a4b9e3c/resourceGroups/cft-perftest-network-rg/providers/Microsoft.Network/applicationGateways/cft-pubsub00-perftest-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: demo_private_dns - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: aat_pubsubappgateway - TerraformPlanApply)

Plan: 0 to add, 1 to change, 0 to destroy.
  • Update
    • module.pubsubappgateway[0].azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.pubsubappgateway[0].azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/96c274ce-846d-4e48-89a7-d528432298a7/resourceGroups/cft-aat-network-rg/providers/Microsoft.Network/applicationGateways/cft-pubsub00-aat-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: ithc_pubsubappgateway - TerraformPlanApply)

Plan: 0 to add, 2 to change, 0 to destroy.
  • Update
    • module.pubsubappgateway[0].azurerm_monitor_diagnostic_setting.diagnostic_settings[0]
    • module.pubsubappgateway[0].azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.pubsubappgateway[0].azurerm_monitor_diagnostic_setting.diagnostic_settings[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostic_settings" {
        id                             = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-pubsub00-ithc-agw|app-gw"
        name                           = "app-gw"
        # (5 unchanged attributes hidden)

      - enabled_log {
          - category       = "ApplicationGatewayAccessLog" -> null
            # (1 unchanged attribute hidden)

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }
      - enabled_log {
          - category       = "ApplicationGatewayFirewallLog" -> null
            # (1 unchanged attribute hidden)

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (1 unchanged block hidden)
    }

  # module.pubsubappgateway[0].azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-pubsub00-ithc-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

Plan: 0 to add, 2 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: prod_pubsubappgateway - TerraformPlanApply)

Plan: 0 to add, 1 to change, 0 to destroy.
  • Update
    • module.pubsubappgateway[0].azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.pubsubappgateway[0].azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-pubsub00-prod-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: prod_private_dns - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: test_frontendappgateway - TerraformPlanApply)

Plan: 0 to add, 1 to change, 0 to destroy.
  • Update
    • module.frontendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.frontendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/8a07fdcd-6abd-48b3-ad88-ff737a4b9e3c/resourceGroups/cft-perftest-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-perftest-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: stg_frontendappgateway - TerraformPlanApply)

Plan: 0 to add, 2 to change, 0 to destroy.
  • Update
    • module.frontendappgateway.azurerm_monitor_diagnostic_setting.diagnostic_settings[0]
    • module.frontendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.frontendappgateway.azurerm_monitor_diagnostic_setting.diagnostic_settings[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostic_settings" {
        id                             = "/subscriptions/96c274ce-846d-4e48-89a7-d528432298a7/resourceGroups/cft-aat-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-aat-agw|app-gw"
        name                           = "app-gw"
        # (5 unchanged attributes hidden)

      - enabled_log {
          - category_group = "allLogs" -> null
            # (1 unchanged attribute hidden)

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (1 unchanged block hidden)
    }

  # module.frontendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/96c274ce-846d-4e48-89a7-d528432298a7/resourceGroups/cft-aat-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-aat-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

Plan: 0 to add, 2 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: stg_private_dns - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: prod_frontendappgateway - TerraformPlanApply)

Plan: 0 to add, 1 to change, 0 to destroy.
  • Update
    • module.frontendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.frontendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-prod-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: test_backendappgateway - TerraformPlanApply)

Plan: 0 to add, 2 to change, 0 to destroy.
  • Update
    • module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
    • module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[1]
Change Result (Click me)
  # module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/8a07fdcd-6abd-48b3-ad88-ff737a4b9e3c/resourceGroups/cft-perftest-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-perftest-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

  # module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[1] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/8a07fdcd-6abd-48b3-ad88-ff737a4b9e3c/resourceGroups/cft-perftest-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks01-perftest-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

Plan: 0 to add, 2 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: demo_backendappgateway - TerraformPlanApply)

Plan: 0 to add, 2 to change, 0 to destroy.
  • Update
    • module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
    • module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[1]
Change Result (Click me)
  # module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/d025fece-ce99-4df2-b7a9-b649d3ff2060/resourceGroups/cft-demo-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-demo-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

  # module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[1] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/d025fece-ce99-4df2-b7a9-b649d3ff2060/resourceGroups/cft-demo-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks01-demo-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

Plan: 0 to add, 2 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: demo_pubsubappgateway - TerraformPlanApply)

Plan: 0 to add, 1 to change, 0 to destroy.
  • Update
    • module.pubsubappgateway[0].azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.pubsubappgateway[0].azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/d025fece-ce99-4df2-b7a9-b649d3ff2060/resourceGroups/cft-demo-network-rg/providers/Microsoft.Network/applicationGateways/cft-pubsub00-demo-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: ithc_private_dns - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: ithc_backendappgateway - TerraformPlanApply)

Plan: 0 to add, 2 to change, 0 to destroy.
  • Update
    • module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
    • module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[1]
Change Result (Click me)
  # module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-ithc-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

  # module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[1] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks01-ithc-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

Plan: 0 to add, 2 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: stg_backendappgateway - TerraformPlanApply)

Plan: 0 to add, 2 to change, 0 to destroy.
  • Update
    • module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
    • module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[1]
Change Result (Click me)
  # module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/96c274ce-846d-4e48-89a7-d528432298a7/resourceGroups/cft-aat-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-aat-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

  # module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[1] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/96c274ce-846d-4e48-89a7-d528432298a7/resourceGroups/cft-aat-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks01-aat-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

Plan: 0 to add, 2 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: ithc_frontendappgateway - TerraformPlanApply)

Plan: 0 to add, 1 to change, 0 to destroy.
  • Update
    • module.frontendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.frontendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-ithc-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: prod_backendappgateway - TerraformPlanApply)

Plan: 0 to add, 2 to change, 0 to destroy.
  • Update
    • module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
    • module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[1]
Change Result (Click me)
  # module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-prod-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

  # module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[1] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks01-prod-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

Plan: 0 to add, 2 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: prod_shutter_webapp - TerraformPlanApply)

Plan: 0 to add, 8 to change, 0 to destroy.
  • Update
    • module.static_webapp.azurerm_dns_txt_record.zone_validate["adoption"]
    • module.static_webapp.azurerm_dns_txt_record.zone_validate["cui-ra"]
    • module.static_webapp.azurerm_dns_txt_record.zone_validate["em-icp"]
    • module.static_webapp.azurerm_dns_txt_record.zone_validate["et-staff-pet"]
    • module.static_webapp.azurerm_dns_txt_record.zone_validate["et-syr"]
    • module.static_webapp.azurerm_dns_txt_record.zone_validate["manage-payments"]
    • module.static_webapp.azurerm_dns_txt_record.zone_validate["private-law"]
    • module.static_webapp.azurerm_dns_txt_record.zone_validate["sscs-ibca"]
Change Result (Click me)
  # module.static_webapp.azurerm_dns_txt_record.zone_validate["adoption"] will be updated in-place
  ~ resource "azurerm_dns_txt_record" "zone_validate" {
        id                  = "/subscriptions/ed302caf-ec27-4c64-a05e-85731c3ce90e/resourceGroups/reformMgmtRG/providers/Microsoft.Network/dnsZones/platform.hmcts.net/TXT/_dnsauth.apply-for-adoption"
        name                = "_dnsauth.apply-for-adoption"
        tags                = {}
        # (4 unchanged attributes hidden)

      - record {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
      + record {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
    }

  # module.static_webapp.azurerm_dns_txt_record.zone_validate["cui-ra"] will be updated in-place
  ~ resource "azurerm_dns_txt_record" "zone_validate" {
        id                  = "/subscriptions/ed302caf-ec27-4c64-a05e-85731c3ce90e/resourceGroups/reformMgmtRG/providers/Microsoft.Network/dnsZones/manage-your-support-for-hmcts-services.service.gov.uk/TXT/_dnsauth"
        name                = "_dnsauth"
        tags                = {}
        # (4 unchanged attributes hidden)

      - record {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
      + record {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
    }

  # module.static_webapp.azurerm_dns_txt_record.zone_validate["em-icp"] will be updated in-place
  ~ resource "azurerm_dns_txt_record" "zone_validate" {
        id                  = "/subscriptions/ed302caf-ec27-4c64-a05e-85731c3ce90e/resourceGroups/reformMgmtRG/providers/Microsoft.Network/dnsZones/platform.hmcts.net/TXT/_dnsauth.em-icp"
        name                = "_dnsauth.em-icp"
        tags                = {}
        # (4 unchanged attributes hidden)

      - record {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
      + record {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
    }

  # module.static_webapp.azurerm_dns_txt_record.zone_validate["et-staff-pet"] will be updated in-place
  ~ resource "azurerm_dns_txt_record" "zone_validate" {
        id                  = "/subscriptions/ed302caf-ec27-4c64-a05e-85731c3ce90e/resourceGroups/reformMgmtRG/providers/Microsoft.Network/dnsZones/employmenttribunals.service.gov.uk/TXT/_dnsauth.admin"
        name                = "_dnsauth.admin"
        tags                = {}
        # (4 unchanged attributes hidden)

      - record {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
      + record {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
    }

  # module.static_webapp.azurerm_dns_txt_record.zone_validate["et-syr"] will be updated in-place
  ~ resource "azurerm_dns_txt_record" "zone_validate" {
        id                  = "/subscriptions/ed302caf-ec27-4c64-a05e-85731c3ce90e/resourceGroups/reformMgmtRG/providers/Microsoft.Network/dnsZones/respond-employment-tribunals.service.gov.uk/TXT/_dnsauth.www"
        name                = "_dnsauth.www"
        tags                = {}
        # (4 unchanged attributes hidden)

      - record {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
      + record {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
    }

  # module.static_webapp.azurerm_dns_txt_record.zone_validate["manage-payments"] will be updated in-place
  ~ resource "azurerm_dns_txt_record" "zone_validate" {
        id                  = "/subscriptions/ed302caf-ec27-4c64-a05e-85731c3ce90e/resourceGroups/reformMgmtRG/providers/Microsoft.Network/dnsZones/platform.hmcts.net/TXT/_dnsauth.manage-payments"
        name                = "_dnsauth.manage-payments"
        tags                = {}
        # (4 unchanged attributes hidden)

      - record {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
      + record {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
    }

  # module.static_webapp.azurerm_dns_txt_record.zone_validate["private-law"] will be updated in-place
  ~ resource "azurerm_dns_txt_record" "zone_validate" {
        id                  = "/subscriptions/ed302caf-ec27-4c64-a05e-85731c3ce90e/resourceGroups/reformMgmtRG/providers/Microsoft.Network/dnsZones/apply-to-court-about-child-arrangements-c100.service.gov.uk/TXT/_dnsauth.www"
        name                = "_dnsauth.www"
        tags                = {}
        # (4 unchanged attributes hidden)

      - record {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
      + record {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
    }

  # module.static_webapp.azurerm_dns_txt_record.zone_validate["sscs-ibca"] will be updated in-place
  ~ resource "azurerm_dns_txt_record" "zone_validate" {
        id                  = "/subscriptions/ed302caf-ec27-4c64-a05e-85731c3ce90e/resourceGroups/reformMgmtRG/providers/Microsoft.Network/dnsZones/appeal-infected-blood-compensation-decision.service.gov.uk/TXT/_dnsauth"
        name                = "_dnsauth"
        tags                = {}
        # (4 unchanged attributes hidden)

      - record {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
      + record {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
    }

Plan: 0 to add, 8 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: demo_frontendappgateway - TerraformPlanApply)

Plan: 0 to add, 2 to change, 0 to destroy.
  • Update
    • module.frontendappgateway.azurerm_monitor_diagnostic_setting.diagnostic_settings[0]
    • module.frontendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.frontendappgateway.azurerm_monitor_diagnostic_setting.diagnostic_settings[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostic_settings" {
        id                             = "/subscriptions/d025fece-ce99-4df2-b7a9-b649d3ff2060/resourceGroups/cft-demo-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-demo-agw|app-gw"
        name                           = "app-gw"
        # (5 unchanged attributes hidden)

      - enabled_log {
          - category_group = "allLogs" -> null
            # (1 unchanged attribute hidden)

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (1 unchanged block hidden)
    }

  # module.frontendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/d025fece-ce99-4df2-b7a9-b649d3ff2060/resourceGroups/cft-demo-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks-fe-00-demo-agw|app-gw-storage-account"
        name                           = "app-gw-storage-account"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (2 unchanged blocks hidden)
    }

Plan: 0 to add, 2 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: test_cftapps_private_dns - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: ithc_apim - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: test_apim - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: demo_apim - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: dev_global - TerraformPlanApply)

Plan: 0 to add, 1 to change, 0 to destroy.
  • Update
    • module.premium_front_door.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.premium_front_door.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/8b6ea922-0862-443e-af15-6056e1c9b9a4/resourceGroups/lz-preview-rg/providers/Microsoft.Cdn/profiles/hmcts-preview|fd-log-analytics-logs-sa"
        name                           = "fd-log-analytics-logs-sa"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (1 unchanged block hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: stg_apim - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: aat_global - TerraformPlanApply)

Plan: 0 to add, 1 to change, 0 to destroy.
  • Update
    • module.premium_front_door.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.premium_front_door.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/96c274ce-846d-4e48-89a7-d528432298a7/resourceGroups/lz-aat-rg/providers/Microsoft.Cdn/profiles/hmcts-aat|fd-log-analytics-logs-sa"
        name                           = "fd-log-analytics-logs-sa"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (1 unchanged block hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: prod_global - TerraformPlanApply)

Plan: 0 to add, 2 to change, 0 to destroy.
  • Update
    • module.premium_front_door.azurerm_dns_txt_record.public_dns_record["adoption"]
    • module.premium_front_door.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.premium_front_door.azurerm_dns_txt_record.public_dns_record["adoption"] will be updated in-place
  ~ resource "azurerm_dns_txt_record" "public_dns_record" {
        id                  = "/subscriptions/ed302caf-ec27-4c64-a05e-85731c3ce90e/resourceGroups/reformmgmtrg/providers/Microsoft.Network/dnsZones/platform.hmcts.net/TXT/_dnsauth.apply-for-adoption"
        name                = "_dnsauth.apply-for-adoption"
        tags                = {}
        # (4 unchanged attributes hidden)

      - record {
          - value = "n3zyn06dl4jk9flktv4d018rxhrrjfm7" -> null
        }
      + record {
          + value = "_csw9t8s984h1ntcu0vntw7figuezfck"
        }
    }

  # module.premium_front_door.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/lz-prod-rg/providers/Microsoft.Cdn/profiles/hmcts-prod|fd-log-analytics-logs-sa"
        name                           = "fd-log-analytics-logs-sa"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (1 unchanged block hidden)
    }

Plan: 0 to add, 2 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: ithc_global - TerraformPlanApply)

Plan: 0 to add, 1 to change, 0 to destroy.
  • Update
    • module.premium_front_door.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.premium_front_door.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/lz-ithc-rg/providers/Microsoft.Cdn/profiles/hmcts-ithc|fd-log-analytics-logs-sa"
        name                           = "fd-log-analytics-logs-sa"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (1 unchanged block hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: perftest_global - TerraformPlanApply)

Plan: 0 to add, 1 to change, 0 to destroy.
  • Update
    • module.premium_front_door.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.premium_front_door.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/8a07fdcd-6abd-48b3-ad88-ff737a4b9e3c/resourceGroups/lz-perftest-rg/providers/Microsoft.Cdn/profiles/hmcts-perftest|fd-log-analytics-logs-sa"
        name                           = "fd-log-analytics-logs-sa"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (1 unchanged block hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (765: demo_global - TerraformPlanApply)

Plan: 0 to add, 1 to change, 0 to destroy.
  • Update
    • module.premium_front_door.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.premium_front_door.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
        id                             = "/subscriptions/d025fece-ce99-4df2-b7a9-b649d3ff2060/resourceGroups/lz-demo-rg/providers/Microsoft.Cdn/profiles/hmcts-demo|fd-log-analytics-logs-sa"
        name                           = "fd-log-analytics-logs-sa"
        # (6 unchanged attributes hidden)

      - metric {
          - category = "AllMetrics" -> null
          - enabled  = false -> null

          - retention_policy {
              - days    = 0 -> null
              - enabled = false -> null
            }
        }

        # (1 unchanged block hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

⚠️ Errors

@github-actions
Copy link
Copy Markdown

Code Quality

  1. Consistent Formatting:
    • Ensure consistent alignment of keys within each object for readability. Indent shutter_app and ssl_mode values to align similarly with keys like custom_domain.

Security

  1. Validation of Domain Inputs:

    • Add validation checks in your Terraform module for the custom_domain to prevent accidental misconfiguration or usage of unattested domains like platform.hmcts.net.
  2. SSL Certificate Source:

    • Document or validate how certificates like wildcard-sandbox-platform-hmcts-net are rotated and stored securely. If expired or mismanaged, it could lead to downtime or vulnerabilities.

Best Practice

  1. Comment for Justification:

    • Add a comment explaining the purpose of the backstage entry and why the domain sandbox.platform.hmcts.net and specific backend domains are required. This improves long-term maintainability.
  2. DRY Principle for Repeated Values:

    • The dns_zone_name value sandbox.platform.hmcts.net is repeated. Centralize commonly reused values in a separate variable. For example:
      hcl
      dns_zone_name = "sandbox.platform.hmcts.net"
      Reference it in all blocks.
      
      

Cost

  1. Domain and Certificate Management Costs:
    • Revisit domain registration (sandbox.platform.hmcts.net) and wildcard certificate (wildcard-sandbox-platform-hmcts-net) costs. If unused subdomains are piling up, consolidation could save money.

Carbon Usage

  1. Unused Configuration Implications:
    • Ensure the backstage frontend is actively necessary. Unused application configurations contribute to resource wastage and increased carbon footprint due to provisioning and DNS management being active.

Suggested Changes

Post-improvements, your block might look like this:

common_dns_zone_name = \"sandbox.platform.hmcts.net\"

frontends = [
  {
    name = \"backstage\"
    custom_domain = \"backstage.${common_dns_zone_name}\"
    dns_zone_name = common_dns_zone_name
    backend_domain = [\"firewall-sbox-int-palo-sbox.uksouth.cloudapp.azure.com\"]
    certificate_name = \"wildcard-sandbox-platform-hmcts-net\"
    disabled_rules = {}
    shutter_app = true
    ssl_mode = \"AzureKeyVault\"
  }
]

@github-actions
Copy link
Copy Markdown

Code Review Feedback:

  1. Security:

    • Hardcoded Backend Domain: The backend_domain is currently hardcoded with firewall-sbox-int-palo-sbox.uksouth.cloudapp.azure.com. Consider parameterizing this value or storing it in a secure configuration management solution to avoid accidental exposure of sensitive infrastructure details.
      • Example: Use a variable like backend_domain = var.firewall_backend_domain.
  2. Reusability & Best Practices:

    • Empty disabled_rules Block: If the disabled_rules block is not in use, consider omitting it or adding a comment explaining its purpose for future maintainability.
      • Example: Add a comment such as:
        tf

        Placeholder for custom WAF rule overrides if needed in the future

    • Consistency in Blocks: Ensure the format and spacing of this block matches other similar blocks for consistent readability.
  3. Potential Cost Implication:

    • Custom Domain and Certificate: Adding a new custom domain (backstage.sandbox.platform.hmcts.net) and associated certificate (wildcard-sandbox-platform-hmcts-net) may incur additional cost if this uses resource-intensive DNS features or SSL certificates. Be sure to validate the cost impact and optimize the certificate usage if possible (e.g., wildcard reuse).
      • Estimated Price Change in GBP: Depending on Azure DNS and Key Vault SSL Certificate pricing, this could add £10-£50 per month per domain.
  4. Carbon Usage:

    • No immediate concerns related to carbon usage are evident in this snippet. However, if this is part of a larger application deployment, ensure efficient utilization of compute resources linked to backend_domain.
  5. Documentation:

    • Missing Documentation for backstage Application: It’s unclear from this diff what the purpose or configuration of the backstage application is. Consider adding inline comments to describe this service’s role.
      • Example:
        # Backstage - Developer portal for internal teams
  6. Validation and Testing:

    • Introduce validation steps or unit tests in the Terraform pipeline to confirm the new domain and certificate configuration are properly applied and functional.

Suggested Updates Example:

{
  name = \"backstage\"
  custom_domain = var.backstage_custom_domain  # Moved to variables for flexibility
  dns_zone_name = var.dns_zone_name           # Avoid hardcoding
  backend_domain = [var.firewall_backend_domain]  # Parameterized for security
  certificate_name = var.certificate_name     # Parameterized for reuse
  shutter_app = true
  ssl_mode = \"AzureKeyVault\"
  # Placeholder for disabled WAF rules
  disabled_rules = {}
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants