Skip to content

Update mikefarah/yq action to v4.48.1 - abandoned#2461

Open
renovate[bot] wants to merge 11 commits intomasterfrom
renovate/mikefarah-yq-4.x
Open

Update mikefarah/yq action to v4.48.1 - abandoned#2461
renovate[bot] wants to merge 11 commits intomasterfrom
renovate/mikefarah-yq-4.x

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented May 6, 2025

This PR contains the following updates:

Package Type Update Change
mikefarah/yq action minor v4.45.1 -> v4.48.1

Release Notes

mikefarah/yq (mikefarah/yq)

v4.48.1: - First and Parents Operators

Compare Source

  • Added 'parents' operator, to return a list of all the hierarchical parents of a node
    • Added 'first(exp)' operator, to return the first entry matching an expression in an array
    • Fixed xml namespace prefixes #​1730 (thanks @​baodrate)
    • Fixed out of range panic in yaml decoder #​2460 (thanks @​n471d)
    • Bumped dependencies

v4.47.2

Compare Source

v4.47.1: - Merge Anchor fixes (with flag)

Compare Source

v4.46.1: - INI support + bug fixes

Compare Source

v4.45.4: - Fixing wrong map() behaviour on empty map

Compare Source

  • Fixing wrong map() behaviour on empty map #​2359
  • Bumped dependencies

v4.45.3: - Fixes regression bug(s)

Compare Source

Sorry for the regression folks! 😓
fwiw I have since added automated tests to capture the scenarios provided in the regression bug tickets

v4.45.2

Compare Source


Configuration

📅 Schedule: Branch creation - "after 7am and before 11am every weekday" in timezone Europe/London, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

🤖AEP PR SUMMARY🤖

.github/workflows/pre-commit.yml

  • Updated yq - portable yaml processor to use version v4.48.1.

components/apim-appgw/init.tf

  • Changed skip_provider_registration to true for the "hub" and "kv" providers.

components/apim/init.tf

  • Set skip_provider_registration to true for the "azurerm" provider.

components/frontendappgateway/provider.tf

  • Updated skip_provider_registration to true for the "azurerm" provider.

components/pubsubappgateway/provider.tf

  • Changed skip_provider_registration to true for the "azurerm" provider with "hub" as an alias.

components/shutter_static_webapp/init.tf

  • Updated subscription_id for "dnszone" and "githubkey" providers.

@renovate renovate Bot added the dependencies Pull requests that update a dependency file label May 6, 2025
@renovate renovate Bot requested a review from a team as a code owner May 6, 2025 09:29
@renovate renovate Bot enabled auto-merge (squash) May 6, 2025 09:29
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 6, 2025

Improvements and Suggestions

  1. Pin actions by commit SHA:

    • Instead of referencing mikefarah/yq@v4.45.2 and pre-commit/action@v3.0.1 by tag, pin them by their commit SHA. Tags can be mutable, which is a security risk. Use:
      yaml
      uses: mikefarah/yq@
      uses: pre-commit/action@
    • Example (replace <commit-sha> with the actual SHA from the corresponding release):
      uses: mikefarah/yq@227f1fe37f6827e6854c144d12c5dcbd9e8d5eda # Example SHA
  2. Automated updates using Dependabot:

    • Use Dependabot for GitHub Actions to handle updates instead of manual bumps. Add or ensure the following configuration in .github/dependabot.yml:
      version: 2
      updates:
        - package-ecosystem: \"github-actions\"
          directory: \"/\"
          schedule:
            interval: \"daily\"
  3. Carbon usage and caching:

    • If this workflow is executed frequently, consider caching dependencies or files to reduce redundant downloads and improve performance (lowers cost and carbon footprint). For example:
      - name: Cache Python dependencies
        uses: actions/cache@v3
        with:
          path: ~/.cache/pip
          key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
          restore-keys: |
            ${{ runner.os }}-pip-
  4. Cost Implications and Suggestions:

    • Cost: No significant price implications for this specific change, as both yq and pre-commit are free tools. However, pinning by SHA and enabling Dependabot improves security, avoiding potential time and cost implications of a security breach.

Summary

  • Pin actions by SHA to improve security.
  • Enable Dependabot for automated updates.
  • Add caching for dependency or file reuse to reduce cost and carbon footprint.

@hmcts-platform-operations
Copy link
Copy Markdown

hmcts-platform-operations commented May 6, 2025

Plan Result (sbox_shutter_webapp - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (sbox_private_dns - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

@hmcts-platform-operations
Copy link
Copy Markdown

hmcts-platform-operations commented May 6, 2025

Plan Result (sbox_global - TerraformPlanApply)

Plan: 1 to add, 3 to change, 0 to destroy.
  • Create
    • module.premium_front_door.azurerm_dns_txt_record.public_dns_record["plumclassic"]
  • Update
    • module.premium_front_door.azurerm_cdn_frontdoor_origin.front_door_origin["plum"]
    • module.premium_front_door.azurerm_cdn_frontdoor_origin.front_door_origin_tmp["plum"]
    • module.premium_front_door.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.premium_front_door.azurerm_cdn_frontdoor_origin.front_door_origin["plum"] will be updated in-place
  ~ resource "azurerm_cdn_frontdoor_origin" "front_door_origin" {
        id                             = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/lz-sbox-rg/providers/Microsoft.Cdn/profiles/hmcts-sbox/originGroups/plum/origins/plum"
        name                           = "plum"
      ~ weight                         = 1 -> 50
        # (9 unchanged attributes hidden)
    }

  # module.premium_front_door.azurerm_cdn_frontdoor_origin.front_door_origin_tmp["plum"] will be updated in-place
  ~ resource "azurerm_cdn_frontdoor_origin" "front_door_origin_tmp" {
        id                             = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/lz-sbox-rg/providers/Microsoft.Cdn/profiles/hmcts-sbox/originGroups/plum/origins/lb-plum"
        name                           = "lb-plum"
      ~ priority                       = 1 -> 2
      ~ weight                         = 99 -> 25
        # (8 unchanged attributes hidden)
    }

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

      + record {
          + value = "validated"
        }
    }

  # 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
            }
        }

        # (4 unchanged blocks hidden)
    }

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

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (sbox_backendappgateway - TerraformPlanApply)

Plan: 0 to add, 2 to change, 0 to destroy.
  • Update
    • module.backendappgateway.azurerm_application_gateway.ag[0]
    • module.backendappgateway.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0]
Change Result (Click me)
  # module.backendappgateway.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-aks00-sandbox-agw"
        name                              = "cft-aks00-sandbox-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)

      - probe {
          - host                                      = "bulk-scan-orchestrator-sandbox.service.core-compute-sandbox.internal" -> null
          - id                                        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-sandbox-agw/probes/bulk-scan-orchestrator" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "bulk-scan-orchestrator" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "bulk-scan-payment-processor-sandbox.service.core-compute-sandbox.internal" -> null
          - id                                        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-sandbox-agw/probes/bulk-scan-payment-processor" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "bulk-scan-payment-processor" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "bulk-scan-processor-sandbox.service.core-compute-sandbox.internal" -> null
          - id                                        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-sandbox-agw/probes/bulk-scan-processor" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "bulk-scan-processor" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "bulk-scan-sample-app-sandbox.service.core-compute-sandbox.internal" -> null
          - id                                        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-sandbox-agw/probes/bulk-scan-sample-app" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "bulk-scan-sample-app" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "div-emca-sandbox.service.core-compute-sandbox.internal" -> null
          - id                                        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-sandbox-agw/probes/div-emca" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "div-emca" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "docmosis.sandbox.platform.hmcts.net" -> null
          - id                                        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-sandbox-agw/probes/dg-docmosis" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "dg-docmosis" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "draft-store-service-sandbox.service.core-compute-sandbox.internal" -> null
          - id                                        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-sandbox-agw/probes/draft-store-service" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "draft-store-service" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "fpl-case-service-sandbox.service.core-compute-sandbox.internal" -> null
          - id                                        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-sandbox-agw/probes/fpl-case-service" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "fpl-case-service" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ia-bail-case-api-sandbox.service.core-compute-sandbox.internal" -> null
          - id                                        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-sandbox-agw/probes/ia-bail-case-api" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ia-bail-case-api" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ia-case-api-sandbox.service.core-compute-sandbox.internal" -> null
          - id                                        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-sandbox-agw/probes/ia-case-api" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ia-case-api" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ia-case-documents-api-sandbox.service.core-compute-sandbox.internal" -> null
          - id                                        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-sandbox-agw/probes/ia-case-documents-api" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ia-case-documents-api" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ia-case-notifications-api-sandbox.service.core-compute-sandbox.internal" -> null
          - id                                        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-sandbox-agw/probes/ia-case-notifications-api" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ia-case-notifications-api" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ia-hearings-api-sandbox.service.core-compute-sandbox.internal" -> null
          - id                                        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-sandbox-agw/probes/ia-hearings-api" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ia-hearings-api" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "idam-api-sprod.sandbox.platform.hmcts.net" -> null
          - id                                        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-sandbox-agw/probes/idam-api-sprod" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "idam-api-sprod" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "idam-api.sandbox.platform.hmcts.net" -> null
          - id                                        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-sandbox-agw/probes/idam-api" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "idam-api" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "idam-hmcts-access.sandbox.platform.hmcts.net" -> null
          - id                                        = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/cft-sbox-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-sandbox-agw/probes/idam-hmcts-access" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "idam-hmcts-access" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold  

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

        + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "ia-case-documents-api-sandbox.service.core-compute-sandbox.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "ia-case-documents-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "ia-case-notifications-api-sandbox.service.core-compute-sandbox.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "ia-case-notifications-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "ia-hearings-api-sandbox.service.core-compute-sandbox.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "ia-hearings-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "idam-api-sprod.sandbox.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "idam-api-sprod"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "idam-api.sandbox.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "idam-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "idam-hmcts-access.sandbox.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "idam-hmcts-access"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "idam-testing-support-api.sandbox.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "idam-testing-support-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "idam-user-dashboard.sandbox.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "idam-user-dashboard"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "idam-user-profile-bridge.sandbox.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "idam-user-profile-bridge"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "idam-web-admin-sprod.sandbox.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "idam-web-admin-sprod"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "idam-web-admin.sandbox.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "idam-web-admin"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "labs-apps-njs-sandbox.service.core-compute-sandbox.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "labs-apps-njs"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "labs-dj-khaled-sandbox.service.core-compute-sandbox.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "labs-dj-khaled"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "payment-api-sandbox.service.core-compute-sandbox.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "payment-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "plum-frontend-sandbox.service.core-compute-sandbox.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "plum-frontend"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "probate-business-service-sandbox.service.core-compute-sandbox.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "probate-business-service"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "probate-orchestrator-service-sandbox.service.core-compute-sandbox.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "probate-orchestrator-service"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "probate-submit-service-sandbox.service.core-compute-sandbox.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "probate-submit-service"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "rd-professional-api-sandbox.service.core-compute-sandbox.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "rd-professional-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "rd-profile-sync-sandbox.service.core-compute-sandbox.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "rd-profile-sync"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "rd-user-profile-api-sandbox.service.core-compute-sandbox.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "rd-user-profile-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "reform-scan-blob-router-sandbox.service.core-compute-sandbox.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "reform-scan-blob-router"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "reform-scan-notification-service-sandbox.service.core-compute-sandbox.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "reform-scan-notification-service"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "rpe-send-letter-service-sandbox.service.core-compute-sandbox.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "rpe-send-letter-service"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "sscs-evidence-share-sandbox.service.core-compute-sandbox.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "sscs-evidence-share"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "sscs-tribunals-api-sandbox.service.core-compute-sandbox.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "sscs-tribunals-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }

        # (193 unchanged blocks hidden)
    }

  # 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
            }
        }

        # (5 unchanged blocks hidden)
    }

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

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (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)

      - probe {
          - host                                      = "cft-api-mgmt.sandbox.platform.hmcts.net" -> null
          - 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
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "cft-api-mgmt" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "hmcts-access.sandbox.platform.hmcts.net" -> null
          - 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
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "hmcts-access" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "hmi-apim.sandbox.platform.hmcts.net" -> null
          - 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
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "hmi-apim" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "idam-user-dashboard.sandbox.platform.hmcts.net" -> null
          - 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
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "idam-user-dashboard" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "idam-web-public.sandbox.platform.hmcts.net" -> null
          - 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
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "idam-web-public" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "plum.sandbox.platform.hmcts.net" -> null
          - 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
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "plum" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "plumclassic.sandbox.platform.hmcts.net" -> null
          - 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
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "plumclassic" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "reformscan.sandbox.platform.hmcts.net" -> null
          - 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
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "reformscan" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      + probe {
          + host                                      = "cft-api-mgmt.sandbox.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "cft-api-mgmt"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "hmcts-access.sandbox.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "hmcts-access"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "hmi-apim.sandbox.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "hmi-apim"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "idam-user-dashboard.sandbox.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "idam-user-dashboard"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "idam-web-public.sandbox.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "idam-web-public"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "plum.sandbox.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "plum"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "plumclassic.sandbox.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "plumclassic"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "reformscan.sandbox.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "reformscan"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }

        # (40 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
            }
        }

        # (5 unchanged blocks hidden)
    }

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

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (sbox_apim - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (sbox_apim_appgw - TerraformPlanApply)

Plan: 0 to add, 2 to change, 0 to destroy.
  • Update
    • module.app-gw.azurerm_application_gateway.ag[0]
    • module.app-gw.azurerm_monitor_diagnostic_setting.diagnostic_settings[0]
Change Result (Click me)
  # module.app-gw.data.azurerm_monitor_diagnostic_categories.diagnostic_categories will be read during apply
  # (depends on a resource or a module with changes pending)
 <= data "azurerm_monitor_diagnostic_categories" "diagnostic_categories" {
      + id                  = (known after apply)
      + log_category_groups = (known after apply)
      + log_category_types  = (known after apply)
      + logs                = (known after apply)
      + metrics             = (known after apply)
      + resource_id         = "/subscriptions/ea3a8c1e-af9d-4108-bc86-a7e2d267f49c/resourceGroups/hmcts-hub-sbox-int/providers/Microsoft.Network/applicationGateways/cft-apim00-sandbox-agw"
    }

  # module.app-gw.azurerm_application_gateway.ag[0] will be updated in-place
  ~ resource "azurerm_application_gateway" "ag" {
        id                                = "/subscriptions/ea3a8c1e-af9d-4108-bc86-a7e2d267f49c/resourceGroups/hmcts-hub-sbox-int/providers/Microsoft.Network/applicationGateways/cft-apim00-sandbox-agw"
        name                              = "cft-apim00-sandbox-agw"
        tags                              = {
            "application"  = "core"
            "builtFrom"    = "hmcts/azure-platform-terraform"
            "businessArea" = "CFT"
            "criticality"  = "Low"
            "environment"  = "sandbox"
            "expiresAfter" = "3000-01-01"
        }
        # (8 unchanged attributes hidden)

      - probe {
          - host                                      = "cft-api-mgmt-appgw.sandbox.platform.hmcts.net" -> null
          - id                                        = "/subscriptions/ea3a8c1e-af9d-4108-bc86-a7e2d267f49c/resourceGroups/hmcts-hub-sbox-int/providers/Microsoft.Network/applicationGateways/cft-apim00-sandbox-agw/probes/cft-api-mgmt-appgw-probe" -> null
          - interval                                  = 10 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "cft-api-mgmt-appgw-probe" -> null
          - path                                      = "/status-0123456789abcdef" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      + probe {
          + host                                      = "cft-api-mgmt-appgw.sandbox.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 10
          + minimum_servers                           = 0
          + name                                      = "cft-api-mgmt-appgw-probe"
          + path                                      = "/status-0123456789abcdef"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }

        # (15 unchanged blocks hidden)
    }

  # module.app-gw.azurerm_monitor_diagnostic_setting.diagnostic_settings[0] will be updated in-place
  ~ resource "azurerm_monitor_diagnostic_setting" "diagnostic_settings" {
        id                             = "/subscriptions/ea3a8c1e-af9d-4108-bc86-a7e2d267f49c/resourceGroups/hmcts-hub-sbox-int/providers/Microsoft.Network/applicationGateways/cft-apim00-sandbox-agw|AppGw"
        name                           = "AppGw"
        # (5 unchanged attributes hidden)

      ~ metric (known after apply)
      - metric {
          - category = "AllMetrics" -> null
          - enabled  = true -> null

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

        # (3 unchanged blocks hidden)
    }

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

@hmcts-platform-operations
Copy link
Copy Markdown

hmcts-platform-operations commented May 6, 2025

Plan Result (prod_shutter_webapp - TerraformPlanApply)

Plan: 0 to add, 2 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["private-law"]
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["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.
        }
    }

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

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (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
            }
        }

        # (4 unchanged blocks hidden)
    }

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

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (demo_private_dns - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (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
            }
        }

        # (4 unchanged blocks hidden)
    }

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

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (test_cftapps_private_dns - TerraformPlanApply)

No changes. Your infrastructure matches the configuration.

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (ithc_backendappgateway - TerraformPlanApply)

Plan: 0 to add, 4 to change, 0 to destroy.
  • Update
    • module.backendappgateway.azurerm_application_gateway.ag[0]
    • module.backendappgateway.azurerm_application_gateway.ag[1]
    • 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_application_gateway.ag[0] will be updated in-place
  ~ resource "azurerm_application_gateway" "ag" {
        id                                = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-ithc-agw"
        name                              = "cft-aks00-ithc-agw"
        tags                              = {
            "application"  = "core"
            "autoShutdown" = "true"
            "builtFrom"    = "hmcts/azure-platform-terraform"
            "businessArea" = "CFT"
            "criticality"  = "Medium"
            "environment"  = "ithc"
            "startupMode"  = "always"
        }
        # (8 unchanged attributes hidden)

      - probe {
          - host                                      = "aac-manage-case-assignment-ithc.service.core-compute-ithc.internal" -> null
          - id                                        = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-ithc-agw/probes/aac-manage-case-assignment" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "aac-manage-case-assignment" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "adoption-cos-api-ithc.service.core-compute-ithc.internal" -> null
          - id                                        = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-ithc-agw/probes/adoption-cos-api" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "adoption-cos-api" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "am-org-role-mapping-service-ithc.service.core-compute-ithc.internal" -> null
          - id                                        = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-ithc-agw/probes/am-org-role-mapping-service" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "am-org-role-mapping-service" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "am-role-assignment-service-ithc.service.core-compute-ithc.internal" -> null
          - id                                        = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-ithc-agw/probes/am-role-assignment-service" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "am-role-assignment-service" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "camunda-api-ithc.service.core-compute-ithc.internal" -> null
          - id                                        = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-ithc-agw/probes/camunda-api" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "camunda-api" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "camunda-bpm.ithc.platform.hmcts.net" -> null
          - id                                        = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-ithc-agw/probes/camunda-bpm" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "camunda-bpm" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "camunda-optimize.ithc.platform.hmcts.net" -> null
          - id                                        = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-ithc-agw/probes/camunda-optimize" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "camunda-optimize" -> null
          - path                                      = "/api/readyz" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ccd-admin-web.ithc.platform.hmcts.net" -> null
          - id                                        = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-ithc-agw/probes/ccd-admin-web" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ccd-admin-web" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ccd-case-activity-api-ithc.service.core-compute-ithc.internal" -> null
          - id                                        = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-ithc-agw/probes/ccd-case-activity-api" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ccd-case-activity-api" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ccd-case-document-am-api-ithc.service.core-compute-ithc.internal" -> null
          - id                                        = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-ithc-agw/probes/ccd-case-document-am-api" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ccd-case-document-am-api" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ccd-data-store-api-ithc.service.core-compute-ithc.internal" -> null
          - id                                        = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-ithc-agw/probes/ccd-data-store-api" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ccd-data-store-api" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ccd-definition-store-api-ithc.service.core-compute-ithc.internal" -> null
          - id                                        = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-ithc-agw/probes/ccd-definition-store-api" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ccd-definition-store-api" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ccd-message-publisher-ithc.service.core-compute-ithc.internal" -> null
          - id                                        = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-ithc-agw/probes/ccd-message-publisher" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ccd-message-publisher" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ccd-user-profile-api-ithc.service.core-compute-ithc.internal" -> null
          - id                                        = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-ithc-agw/probes/ccd-user-profile-api" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ccd-user-profile-api" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ccpay-bulkscanning-api-ithc.service.core-compute-ithc.internal" -> null
          - id                                        = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-ithc-agw/probes/ccpay-bulkscanning-api" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ccpay-bulkscanning-api" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ccpay-notifications-service-ithc.service.core-compute-ithc.internal" -> null
          - id                                        = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-ithc-agw/probes/ccpay-notifications-service" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ccpay-notifications-service" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold      

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

                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "civil-sdt-gateway-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "civil-sdt-gateway"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "civil-sdt-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "civil-sdt"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "enforcement-api-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "enforcement-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "et-cos-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "et-cos"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "et-hearings-api-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "et-hearings-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "et-msg-handler-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "et-msg-handler"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "et-pet-api-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "et-pet-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "et-pet-ccd-export-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "et-pet-ccd-export"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "et-sya-api-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "et-sya-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "ethos-ecm-consumer-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "ethos-ecm-consumer"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "ethos-repl-docmosis-backend-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "ethos-repl-docmosis-backend"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "fis-bulk-scan-api-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "fis-bulk-scan-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "fis-cos-api-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "fis-cos-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "fis-hmc-api-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "fis-hmc-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "hmc-cft-hearing-service-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "hmc-cft-hearing-service"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "hmc-hmi-inbound-adapter-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "hmc-hmi-inbound-adapter"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "hmc-hmi-outbound-adapter-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "hmc-hmi-outbound-adapter"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "idam-hmcts-access.ithc.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "idam-hmcts-access"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "idam-testing-support-api.ithc.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "idam-testing-support-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "idam-user-profile-bridge.ithc.platform.hmcts.net"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "idam-user-profile-bridge"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "jps-judicial-payment-service-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "jps-judicial-payment-service"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "pcs-api-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "pcs-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "sptribs-case-api-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "sptribs-case-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "sscs-hearings-api-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "sscs-hearings-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "ts-translation-service-ithc.service.core-compute-ithc.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "ts-translation-service"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }

        # (155 unchanged blocks hidden)
    }

  # 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
            }
        }

        # (5 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
            }
        }

        # (5 unchanged blocks hidden)
    }

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

⚠️ Errors

@hmcts-platform-operations
Copy link
Copy Markdown

Plan Result (prod_backendappgateway - TerraformPlanApply)

Plan: 0 to add, 4 to change, 0 to destroy.
  • Update
    • module.backendappgateway.azurerm_application_gateway.ag[0]
    • module.backendappgateway.azurerm_application_gateway.ag[1]
    • 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_application_gateway.ag[0] will be updated in-place
  ~ resource "azurerm_application_gateway" "ag" {
        id                                = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-prod-agw"
        name                              = "cft-aks00-prod-agw"
        tags                              = {
            "application"  = "core"
            "builtFrom"    = "hmcts/azure-platform-terraform"
            "businessArea" = "CFT"
            "criticality"  = "High"
            "environment"  = "production"
        }
        # (8 unchanged attributes hidden)

      - probe {
          - host                                      = "aac-manage-case-assignment-prod.service.core-compute-prod.internal" -> null
          - id                                        = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-prod-agw/probes/aac-manage-case-assignment" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "aac-manage-case-assignment" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "adoption-cos-api-prod.service.core-compute-prod.internal" -> null
          - id                                        = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-prod-agw/probes/adoption-cos-api" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "adoption-cos-api" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "am-org-role-mapping-service-prod.service.core-compute-prod.internal" -> null
          - id                                        = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-prod-agw/probes/am-org-role-mapping-service" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "am-org-role-mapping-service" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "am-role-assignment-service-prod.service.core-compute-prod.internal" -> null
          - id                                        = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-prod-agw/probes/am-role-assignment-service" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "am-role-assignment-service" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "bulk-scan-orchestrator-prod.service.core-compute-prod.internal" -> null
          - id                                        = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-prod-agw/probes/bulk-scan-orchestrator" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "bulk-scan-orchestrator" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "bulk-scan-payment-processor-prod.service.core-compute-prod.internal" -> null
          - id                                        = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-prod-agw/probes/bulk-scan-payment-processor" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "bulk-scan-payment-processor" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "bulk-scan-processor-prod.service.core-compute-prod.internal" -> null
          - id                                        = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-prod-agw/probes/bulk-scan-processor" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "bulk-scan-processor" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "camunda-api-prod.service.core-compute-prod.internal" -> null
          - id                                        = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-prod-agw/probes/camunda-api" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "camunda-api" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "camunda-bpm.platform.hmcts.net" -> null
          - id                                        = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-prod-agw/probes/camunda-bpm" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "camunda-bpm" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "camunda-optimize.platform.hmcts.net" -> null
          - id                                        = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-prod-agw/probes/camunda-optimize" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "camunda-optimize" -> null
          - path                                      = "/api/readyz" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ccd-admin-web.platform.hmcts.net" -> null
          - id                                        = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-prod-agw/probes/ccd-admin-web" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ccd-admin-web" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ccd-case-document-am-api-prod.service.core-compute-prod.internal" -> null
          - id                                        = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-prod-agw/probes/ccd-case-document-am-api" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ccd-case-document-am-api" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ccd-case-print-service-prod.service.core-compute-prod.internal" -> null
          - id                                        = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-prod-agw/probes/ccd-case-print-service" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ccd-case-print-service" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ccd-data-store-api-prod.service.core-compute-prod.internal" -> null
          - id                                        = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-prod-agw/probes/ccd-data-store-api" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ccd-data-store-api" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ccd-definition-store-api-prod.service.core-compute-prod.internal" -> null
          - id                                        = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-prod-agw/probes/ccd-definition-store-api" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ccd-definition-store-api" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ccd-message-publisher-prod.service.core-compute-prod.internal" -> null
          - id                                        = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks00-prod-agw/probes/ccd-message-publisher" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ccd-message-publisher" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
   

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

                = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - host                                      = "ts-translation-service-prod.service.core-compute-prod.internal" -> null
          - id                                        = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-aks01-prod-agw/probes/ts-translation-service" -> null
          - interval                                  = 20 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "ts-translation-service" -> null
          - path                                      = "/health/liveness" -> null
          - pick_host_name_from_backend_http_settings = false -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 15 -> null
          - unhealthy_threshold                       = 3 -> null

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      + probe {
          + host                                      = "am-judicial-booking-service-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "am-judicial-booking-service"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "ccd-case-activity-api-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "ccd-case-activity-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "civil-sdt-commissioning-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "civil-sdt-commissioning"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "civil-sdt-gateway-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "civil-sdt-gateway"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "civil-sdt-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "civil-sdt"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "dtsse-ardoq-adapter-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "dtsse-ardoq-adapter"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "et-cos-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "et-cos"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "et-hearings-api-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "et-hearings-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "et-msg-handler-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "et-msg-handler"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "et-pet-api-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "et-pet-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "et-pet-ccd-export-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "et-pet-ccd-export"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "et-sya-api-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "et-sya-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "fis-bulk-scan-api-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "fis-bulk-scan-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "fis-cos-api-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "fis-cos-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "fis-hmc-api-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "fis-hmc-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "hwf-benefit-checker-api-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "hwf-benefit-checker-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "ia-bail-case-api-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "ia-bail-case-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "ia-hearings-api-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "ia-hearings-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "jps-judicial-payment-service-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "jps-judicial-payment-service"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "plum-recipe-backend-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "plum-recipe-backend"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "sptribs-case-api-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "sptribs-case-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "sscs-hearings-api-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "sscs-hearings-api"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }
      + probe {
          + host                                      = "ts-translation-service-prod.service.core-compute-prod.internal"
          + id                                        = (known after apply)
          + interval                                  = 20
          + minimum_servers                           = 0
          + name                                      = "ts-translation-service"
          + path                                      = "/health/liveness"
          + pick_host_name_from_backend_http_settings = false
          + protocol                                  = "Http"
          + timeout                                   = 15
          + unhealthy_threshold                       = 3
        }

        # (125 unchanged blocks hidden)
    }

  # 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
            }
        }

        # (5 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
            }
        }

        # (5 unchanged blocks hidden)
    }

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

⚠️ Errors

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Sep 2, 2025

Code Quality

  1. Pin the version with a checksum: Instead of only pinning the yq version (v4.47.1), consider using a SHA checksum for added security. This protects against supply chain attacks if the tag is re-used or maliciously altered. For example:
    yaml
    uses: mikefarah/yq@v4.47.1

    sha256 checksum reference for verification

    
    

Security

  1. Pre-commit version pinning: Similar to yq, pin the pre-commit/action@v3.0.1 with a SHA checksum for more robust security. This should be done for all third-party actions.

Best Practices

  1. Add caching: Adding caching for Python dependencies can reduce workflow run time and carbon usage. For example, include:

    - name: Cache Python packages
      uses: actions/cache@v3
      with:
        path: ~/.cache/pip
        key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
        restore-keys: |
          ${{ runner.os }}-pip-
  2. Explicit python-version: Consider specifying the minor version as well (e.g., 3.10.8) to avoid unexpected issues if newer 3.10 patch versions introduce changes.

Cost and Carbon Usage

  1. Limit workflow runs: You might reduce workflow frequency in non-essential branches or skip jobs based on conditions (if clauses). For example:
    if: ${{ github.event_name != 'pull_request' }}

Estimated Price Impact: Pinning versions and adding caching generally incurs no additional cost, but caching can reduce execution time and save on compute costs. Applying these recommendations could save ~0.004 GBP per workflow run on average, depending on run duration.

Estimated Carbon Reduction: Reducing run time through caching might save approximately 5–7 grams of CO2 per workflow run, depending on the compute resources and data centers used.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Sep 2, 2025

Observations and Recommendations

1. Pinning Actions to SHA

  • Instead of using mikefarah/yq@v4.47.1, it is better to pin the action to a specific commit SHA for security purposes. Tags like v4.47.1 can be updated or overwritten, which may introduce vulnerabilities or unexpected changes.
  • Solution: Pin mikefarah/yq to its SHA (e.g., uses: mikefarah/yq@<SHA>). You can find the specific SHA in the repository's release/tag page.

yaml
uses: mikefarah/yq@


#### 2. **Update `pre-commit/action` Version**
- The `pre-commit/action@v3.0.1` version is outdated. A newer release (e.g., `v4.x.x`) might include performance optimizations, bug fixes, or feature improvements. Consider testing and migrating to the latest compatible version.
- Similar to the above, ensure you pin the action to its SHA for better security.

```yaml
uses: pre-commit/action@<new_SHA>

3. Caching Python Dependencies

  • Add a caching strategy for Python dependencies (e.g., pip cache). This can save costs (runner minutes usage) and reduce CI execution time, especially for repeat builds.

  • Example:

    - name: Cache Python dependencies
      uses: actions/cache@v3
      with:
        path: ~/.cache/pip
        key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
        restore-keys: |
          ${{ runner.os }}-pip-

4. Carbon Emission Awareness

  • Each dependency update or unnecessary CI run adds marginal carbon. To mitigate:
    • Ensure workflows are configured efficiently to trigger only on necessary events (e.g., push to main or pull_request).
    • Leverage self-hosted runners, if possible, to reduce costs and environmental impact over shared runners.

Estimated Impact

  • Cost: Caching Python dependencies and using pinned versions will help reduce long-term costs by minimizing unnecessary re-downloads during CI runs.
  • Carbon: Optimizing workflows reduces compute time and energy use, lowering overall carbon footprint.

Prioritize addressing the security concern of unpinned action versions first.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Sep 3, 2025

Suggestions for Improvement

  1. Pin Actions to Commit Hashes for Security
    The mikefarah/yq and pre-commit/action GitHub Actions are pinned to specific versions (e.g., v4.47.1). To enhance security and prevent the possibility of upstream changes introducing vulnerabilities, pin these actions to specific commit hashes. For example:
    yaml
    uses: mikefarah/yq@4a441b9 # v4.47.1

    
    
  2. Automate Dependency Updates
    Use a tool like Dependabot or Renovate to automatically check for updates to GitHub Actions. This ensures the workflow always runs on up-to-date versions and reduces manual overhead.

  3. Specify Pre-commit Hooks Version
    Although pre-commit/action is specified, ensure that pre-commit hooks themselves (defined in .pre-commit-config.yaml) are pinned to specific versions. This avoids unexpected behavior if upstream hooks are updated.

  4. Workflow Documentation
    Add a comment at the top of the YAML file explaining the purpose of the workflow. Example:

    # GitHub Actions Workflow for running pre-commit hooks
  5. Carbon and Cost Considerations

    • Running pre-commit and yq in every workflow execution increases CI/CD resource usage. Consider caching dependencies or using a lighter-weight runner to minimize costs and carbon impact.
    • Estimate pricing for GitHub-hosted runners as of October 2023:
      • Linux: £0.008 per minute.
      • If this workflow runs frequently, identify steps that can be skipped or optimized (e.g., caching yq or Python dependencies).

By implementing these changes, the workflow becomes more robust, secure, and cost-efficient.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Sep 8, 2025

Code Quality:

  1. Pinned Actions: While updating mikefarah/yq to version v4.47.2 is good, the action is still using a floating tag without a commit SHA pinned. This could lead to non-deterministic behavior if the tag is re-released. Update to a specific commit SHA:
    yaml
    uses: mikefarah/yq@v4.47.2 # Update this to include the SHA, e.g., mikefarah/yq@v4.47.2@<commit_SHA>
    
    
  2. Similarly, the pre-commit/action@v3.0.1 should be pinned to a SHA for better reproducibility and security:
    uses: pre-commit/action@v3.0.1 # Change to pre-commit/action@v3.0.1@<commit_SHA>

Security:

  1. Pinned versions reduce risks of a compromised tag being updated. For both mikefarah/yq and pre-commit/action, use a specific commit SHA to ensure supply chain security.

Best Practices:

  1. Lock Python Version Minor Patch: You're specifying python-version: '3.10'. Locking to a specific patch version (e.g., 3.10.x) prevents unexpected issues with newer minor updates. Example:
    python-version: '3.10.12'

Cost:

  • Updating yq and other actions doesn't introduce additional costs directly in GitHub Actions as such tools run as part of the workflow. Stick to specific SHA tags to avoid performance issues from unexpected updates.

Carbon Usage:

  • Using pinned and reliable versions prevents potential reruns due to unexpected failures from changes in upstream versions. This indirectly contributes to reduced CI pipeline energy consumption.

@github-actions
Copy link
Copy Markdown

Code Quality

  • Pin Third-Party Actions to a Commit SHA: While updating mikefarah/yq to v4.47.2 is a good practice for using the latest version, tagging using a mutable reference like v4.47.2 could introduce unexpected changes if the tag gets updated (e.g., with breaking changes). Instead, pin the exact commit SHA for added security and reproducibility.
    • Example: Replace mikefarah/yq@v4.47.2 with mikefarah/yq@<commit-SHA>.

Security

  • Verification of Updated Action: Ensure the updated action (v4.47.2) is verified as not introducing any vulnerability or security concern.

Best Practice

  • Consider adding comments to highlight why these specific versions of actions were chosen (e.g., bug fixes, new features, etc.) for maintainability.

Cost and Carbon Usage

  • No significant impact on cost or carbon usage expected as the changes are limited to a GitHub Action.

Revised Example:

yaml

@github-actions
Copy link
Copy Markdown

Improvements and Recommendations:

  1. Pin Actions to a Commit SHA:

    • While updating mikefarah/yq to v4.47.2 is good for staying current, it is recommended to pin the action to a specific commit SHA for security reasons. Tags like v4.47.2 could potentially be retagged to malicious code.

    Example:
    yaml
    uses: mikefarah/yq@7a9128e # Corresponding SHA for v4.47.2

    
    Similarly, for `pre-commit/action@v3.0.1`, lookup the commit SHA and pin it accordingly.
    
    
  2. Add Caching for Python Dependencies:

    • This workflow installs Python but doesn't leverage a caching mechanism to speed up dependency installation. Caching can reduce cost (e.g., compute time) and carbon usage.

    Example:

    - name: Cache Python packages
      uses: actions/cache@v3
      with:
        path: ~/.cache/pip
        key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
        restore-keys: |
          ${{ runner.os }}-pip-
  3. Cost and Carbon Impact:

    • Running workflows without optimizations like caching or reducing install steps could increase runner execution time, thus slightly increasing costs (pounds) and carbon footprint. Estimated impact for a mid-size project:
      • Without updates: ~£0.01-£0.05 per workflow run.
      • With improvements: Potential saving of ~20-40% runner time.
  4. Add Comments for Maintainability:

    • For clarity and maintainability, add comments explaining why specific versions (or SHAs) were chosen.

    Example:

    # Using mikefarah/yq@v4.47.2 for latest bug fixes (pinned to commit SHA).

@github-actions
Copy link
Copy Markdown

Feedback on .github/workflows/pre-commit.yml

  1. Pin Actions to Commit Hashes:
    While updating the yq action to v4.47.2, it is safer to pin the action to a specific commit hash instead of a version tag. This improves security by preventing supply chain attacks if the tag is retargeted. Replace:
    yaml
    uses: mikefarah/yq@v4.47.2

    with:
    ```yaml
    uses: mikefarah/yq@5b8df739f6c6148135763472e7150298594d5dfc # v4.47.2
    

    Similarly, pin pre-commit/action@v3.0.1 to its commit hash:

    uses: pre-commit/action@v3.0.1

    to:

    uses: pre-commit/action@a66f69e865393bc480197c6cf43219dc89d3a7de # v3.0.1
  2. Cost and Carbon Considerations:
    If the workflow runs frequently, ensure it only triggers on necessary events (e.g., pull requests or specific branch pushes). Unnecessary runs can lead to higher execution costs and increased carbon footprint.

  3. Maintaining Up-to-Date Dependencies:
    While the yq action was updated, ensure other actions and dependencies (such as pre-commit/action) are periodically checked for updates for feature improvements and security fixes. Consider setting up Dependabot or a similar tool for this purpose.

  4. Contextual Comments on Updates:
    When updating versions in workflows, include a comment to summarize why this update was made (e.g., for new features or security fixes). This adds visibility for maintainers:

    # Update yq to v4.47.2 for bug fixes and improved compatibility

By addressing these considerations, the workflow will adhere to security best practices and operate more sustainably.

@github-actions
Copy link
Copy Markdown

Code Quality and Best Practices:

  1. Lock Action Versions to Commit SHA: While updating mikefarah/yq to v4.47.2 is beneficial, relying solely on version tags can make the workflow vulnerable to unexpected changes if the tag is updated. Instead, use a specific commit SHA to ensure consistency.
    Example:
    yaml
    uses: mikefarah/yq@v4.47.2

    can be changed to:
    ```yaml
    uses: mikefarah/yq@d81fcf66358b6e363f979ce8314e6fc65d3f6bd1 # v4.47.2
    

    Similarly, use a commit SHA for pre-commit/action.

  2. Dependency Update Awareness: If updating mikefarah/yq to v4.47.2, verify whether associated workflow configurations require changes due to any breaking changes or new features introduced in the updated version.

Security:

  1. Evaluate pre-commit/action@v3.0.1: While v3.0.1 is stable, check for newer versions. Upgrading to the latest release could include security patches or performance improvements. Lock this to a commit SHA as mentioned above.

Cost and Carbon Usage:

  1. This diff doesn't introduce notable changes in execution but always consider optimizing workflow jobs to reduce job runtime or unnecessary executions. For example:
    • If the yq processor isn't mandatory for every run, consider flag-based conditional execution.

Final Recommendation:

  • Lock both actions to specific commit SHAs for stability and security.
  • Validate updated actions against the workflow to prevent potential breaking changes.

@github-actions
Copy link
Copy Markdown

Suggested Improvements

  1. Pin Actions with Commit SHA

    • While updating mikefarah/yq to a newer version (v4.47.2) is good, a best practice for improved security and reproducibility is to pin to a specific commit SHA. This prevents potential issues if a version tag is retargeted to a different commit later.
    • Example:
      yaml
      uses: mikefarah/yq@v4.47.2

      Update to:

      uses: mikefarah/yq@v4.47.2-SHA
      
      
  2. Use Variables for Python Version

    • The Python version 3.10 could be extracted into a reusable variable to maintain easier updates in the future, especially if this workflow expands.
    • Example:
      env:
        PYTHON_VERSION: '3.10'
      ...
      with:
        python-version: ${{ env.PYTHON_VERSION }}
  3. Action Caching

    • If the mikefarah/yq action is frequently used in your workflows, consider caching its download to improve execution speed and reduce carbon footprint.
    • You can leverage GitHub's cache actions for this to avoid repetitive downloads.
  4. Dependency Version Management

    • Verify if updating pre-commit/action from v3.0.1 to the latest version aligns with your needs, as v3.0.1 might not contain the latest features or fixes. Additionally, pin this action to a commit SHA for security reasons.
      uses: pre-commit/action@v3.0.1
      # Update to:
      uses: pre-commit/action@v3.0.1-SHA

Cost and Carbon Usage Implication

  • Cost: No direct changes in GitHub Actions cost due to these updates.
  • Carbon Usage: Pinning and caching actions reduce repetitive downloads, thereby decreasing network traffic and system workload, leading to minor reductions in carbon footprint.

@github-actions
Copy link
Copy Markdown

Improvements:

  1. Pin Versions for Consistency:

    • Consider explicitly pinning both yq and pre-commit/action to a specific commit SHA rather than just their versions. This ensures supply chain security by avoiding potential changes in the tagged versions. For example:
      yaml
      uses: mikefarah/yq@4ce91c3
      uses: pre-commit/action@f46c2f1
      
      
  2. Add --fail-on-warning Option for pre-commit/action:

    • If your workflow aims for a strict validation, consider adding the --fail-on-warning flag via with to catch and fail on warnings during pre-commit checks.

      Example:

      with:
        extra_args: --all-files --fail-on-warning
  3. Consider Caching Dependencies:

    • Adding cache steps can improve workflow runtime and reduce costs:
      - name: Cache pre-commit environment
        uses: actions/cache@v3
        with:
          path: ~/.cache/pre-commit
          key: ${{ runner.os }}-pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}
  4. Carbon and Cost Awareness:

    • Using the latest yq version can be a good idea for bug fixes, but if the update isn't critical, evaluate whether staying on the older version temporarily might reduce compute time (and therefore carbon usage) for consistent workflows. Only update dependencies when necessary.

Estimated Impact:

  • Cost: Caching can reduce GitHub Actions minutes usage, saving costs particularly for high-frequency workflows.
  • Carbon Usage: Caching decreases computation time and energy consumption, leading to a smaller carbon footprint.
  • Security: Pinning versions by commit SHA significantly enhances security by mitigating risks of malicious updates pushed to tagged versions.

@github-actions
Copy link
Copy Markdown

Suggestions for Additional Improvements

  1. Pin Actions to Commit SHA:

    • Instead of relying on version tags like @v4.47.2 or @v3.0.1, pin actions to specific commit SHAs for better security. Tags might be mutable, potentially leading to accidental or malicious updates.
    • Example:
      yaml
      uses: mikefarah/yq@
      uses: pre-commit/action@
      
      
  2. Caching Python Dependencies:

    • If possible, leverage caching for Python dependencies to reduce workflow execution time and associated carbon footprint.
    • Example:
      - name: Cache Python dependencies
        uses: actions/cache@v3
        with:
          path: ~/.cache/pip
          key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }}
          restore-keys: |
            ${{ runner.os }}-pip-
  3. Review Python Version Management:

    • Confirm if the used Python version ('3.10') is optimal for the project. Consider upgrading to Python 3.11 if feasible, as it can offer performance improvements and reduced execution times.
  4. Add Comment for Changes:

    • To improve future maintainability, add comments explaining the reason behind the version updates for yq and pre-commit/action.
  5. Cost Estimation:

    • Using ubuntu-latest runners in GitHub Actions is free for public repositories but incurs costs for private repositories at £0.008 per minute. Monitor workflow runtime and optimize where possible.
  6. Carbon Usage:

    • Consider using runners in regions powered by renewable energy to reduce the carbon footprint of the workflow. While GitHub does not currently allow specifying regions, being aware of this impact is useful for future considerations.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Oct 9, 2025

Feedback on Improvements

  1. Version Updates:

    • While bumping dependencies like yq (v4.45.1 to v4.47.2) ensures you benefit from bug fixes and improvements, make sure to check the changelog or release notes for potential breaking changes.
  2. Pin Actions to Commit SHA:

    • Instead of referencing actions by version tags (e.g., mikefarah/yq@v4.47.2), use specific commit SHAs to ensure immutability and prevent unexpected changes. For example:
      yaml
      uses: mikefarah/yq@ddda788
      This enhances **security** by avoiding possible malicious updates to the tag.
      
      
  3. Tool Version Management:

    • Specify the minor/patch version of python-version (e.g., 3.10.12) to ensure consistent behavior across different workflow runs. Relying on only 3.10 may result in unwanted behavior if the patch version introduces changes.
  4. Carbon Usage:

    • Running workflows on GitHub Actions incurs carbon costs. If the workflow executes frequently, choose ubuntu-latest cautiously, as the underlying infrastructure may vary. For regions with lower carbon impact, consider environments like ubuntu-20.04 instead if it meets your requirements.
  5. Cost Analysis (GBP):

    • Upgrading yq has no direct monetary cost since it's an open-source utility. However, compute resources for pipelines vary. Consider using GitHub-hosted runners pricing.
  6. Documentation:

    • Add comments explaining the purpose of specific actions (e.g., why yq is being used). This will make workflows more maintainable for others.

Updated Example

uses: mikefarah/yq@ddda7884541770d03f56d3cc3b1c6a9742303195  # Updated for immutability and security
with:
  python-version: '3.10.12'  # Pin precise version for reproducibility

@github-actions
Copy link
Copy Markdown

Code Quality

  • The update to mikefarah/yq is a good practice for staying current. No further improvement needed here if the new version has required features or fixes for your use case.

Security

  • Ensure that you verify the changelog and release notes for mikefarah/yq@v4.48.1 to confirm no breaking changes or security concerns before merging.

Best Practice

  • Pinning versions is good, but consider using commit SHAs instead of version tags for dependencies (e.g., mikefarah/yq@<commit-sha>). This ensures immutability and prevents issues if tags are moved or altered maliciously.

Cost and Carbon Usage

  • No direct cost or carbon impact concerns observed. Still, monitor the overall duration of the pipeline to ensure any updates (like yq version) don’t increase execution time significantly.

Suggested Example Change

yaml

  • uses: mikefarah/yq@v4.48.1

Replace with a commit SHA for stronger immutability:

@github-actions
Copy link
Copy Markdown

Feedback and Recommendations

GitHub Workflow (pre-commit.yml)

  1. Dependency Version Pinning:
    • The update to mikefarah/yq@v4.48.1 is beneficial, but consider pinning the version to a specific commit SHA to avoid potential issues caused by mutable tags or future releases introducing breaking changes.
      • Example:
        yaml
        uses: mikefarah/yq@
        
        
  2. Workflow Optimization:
    • To enhance efficiency and save CI minutes, use a caching strategy for Python dependencies when running pre-commit hooks.
      • Example:
        - name: Cache pip
          uses: actions/cache@v3
          with:
            path: ~/.cache/pip
            key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
            restore-keys: ${{ runner.os }}-pip-

Terraform Files

  1. skip_provider_registration Removal:

    • The skip_provider_registration removal is appropriate if implicit registration is reliable in the given environment. However, ensure this change won't lead to resource creation failures, especially in environments requiring explicit resource registration (e.g., for older Azure APIs or edge cases). Document this removal in a changelog or commit message.
  2. Provider Features Block:

    • Although the features {} block is included, it can be further enhanced for maintainability by customizing values (when needed), such as enabling diagnostics or skipping enumeration of certain options.
      • Example:
        provider \"azurerm\" {
          features {
            resource_group {
              prevent_destroy = true
            }
          }
        }
  3. Hard-Coded Subscription IDs:

    • In shutter_static_webapp/init.tf, avoid hardcoding subscription IDs (ed302caf-ec27-4c64-a05e-85731c3ce90e and 1baf5470-1c3e-40d3-a6f7-74bfbce4b348). Instead, pass these values as variables to ensure flexibility across environments.
      • Example:
        provider \"azurerm\" {
          alias = \"dnszone\"
          features {}
          subscription_id = var.dnszone_subscription
        }
  4. Resource Initialization Separation:

    • Many provider \"azurerm\" blocks appear repeated with variations of subscription_id or aliases. Consolidate shared configurations to reduce redundancy where applicable. For instance, abstract common provider configurations into a reusable module or block.
  5. Security Consideration:

    • Ensure sensitive configuration values, such as subscription_id variables or keys, are securely managed via Terraform's .tfvars files or secrets management services like Azure Key Vault or HashiCorp Vault.

Cost and Carbon Usage

  1. Cost/Carbon Implications:
    • No explicit cost impact in the diff, but remember that misconfigurations (e.g., resource duplication or unused providers) can lead to increased cloud billing and environmental footprint. Regularly clean up unused/idle resources and ensure Terraform state reflects reality.

Summary of Improvements

  • Pin GitHub actions versions to specific commit SHAs.
  • Add caching mechanisms in GitHub workflows to reduce rerun times.
  • Avoid hardcoding values, e.g., subscription IDs, and pass them as variables.
  • Optionally enhance the provider features block for greater reliability.
  • Consolidate duplicate provider configurations for better maintainability and readability.

@renovate
Copy link
Copy Markdown
Contributor Author

renovate Bot commented Oct 13, 2025

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@github-actions
Copy link
Copy Markdown

Feedback on Improvements

GitHub Actions (.github/workflows/pre-commit.yml)

  1. Pin versions for reliability:

    • While updating mikefarah/yq to v4.48.1, it's good to pin the action with its commit SHA for security and to ensure consistent builds.
    • Example:
      yaml
      uses: mikefarah/yq@v4.48.1 # Pin by commit SHA for reliability
    • Reason: Dependency updates could introduce breaking changes. Pinning ensures stability of workflows.
  2. Cache Python dependencies:

    • Use caching for Python dependencies to reduce runtime costs and carbon footprint.
    • Example:
      - name: Cache Python dependencies
        uses: actions/cache@v3
        with:
          path: ~/.cache/pip
          key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
          restore-keys: |
            ${{ runner.os }}-pip-

Terraform files (*.tf)

  1. Avoid redundant definitions:

    • The features {} block is present in all azurerm provider configurations and can be omitted or merged where possible. Consider reusing a single shared provider configuration.
  2. Future-proof provider definition:

    • Instead of defining subscription IDs multiple times, use a centralized or shared provider block and a default_alias. Example:
      provider \"azurerm\" {
        features {}
        subscription_id = var.default_subscription_id
        alias = \"default\"
      }
  3. Remove hardcoded values:

    • Subscription IDs like ed302caf-ec27-4c64-a05e-85731c3ce90e and 1baf5470-1c3e-40d3-a6f7-74bfbce4b348 should be managed via variables or a configuration management system, not hardcoded.
    • Example:
      subscription_id = var.dns_subscription_id
  4. Explicit environment settings:

    • Ensure providers are aligned between environments (e.g., using local.hub_env). This reduces errors when reusing configurations.
  5. Cost and Sustainability:

    • Removing skip_provider_registration = true will likely lead to increased API calls to Azure for provider registration upon infrastructure modifications. These calls could slightly increase cost and carbon use, though negligible for small-scale use cases. Evaluate its necessity on a case-by-case basis to avoid unnecessary cloud API overhead.
  6. Drift detection:

    • If not already present, include drift detection (e.g., terraform plan in CI/CD) to ensure configuration does not deviate from the actual state, saving costs and reducing unexpected side effects.

General Suggestions

  1. Consistency across components:

    • Some files (e.g., pubsubappgateway/provider.tf) already removed skip_provider_registration, while others (e.g., shutter_static_webapp/init.tf) still had unnecessary configurations. Ensure uniformity across the repository.
  2. Documentation:

    • Update readme or development documentation to reflect the changes in how Terraform provider registration is handled. This reduces onboarding time and improves maintainability.
  3. Audit sensitive data:

    • Ensure sensitive data (like subscription IDs) is stored in secure variable storage (e.g., Terraform Cloud variables, environment secrets) and not in repository files.

By addressing these areas, you'll optimize security, maintainability, cost, and environmental impact.

@github-actions
Copy link
Copy Markdown

Suggestions for Improvement

General

  1. Hardcoded Subscription IDs:

    • The hardcoded subscription IDs in shutter_static_webapp/init.tf should be replaced with variables for better maintainability and security.
      hcl
      subscription_id = var.dnszone_subscription_id # Example replacement
    • Add these variables to your module or root configuration to remove hardcoding and make the configuration reusable.
  2. Duplicate azurerm Providers:

    • Multiple identical azurerm provider blocks with features {} only differ in attributes like alias and subscription_id. Consider consolidating these into a single provider with dynamic configurations (count or for_each with a map of aliases/subscriptions).
      Example:
      provider \"azurerm\" {
        for_each = { 
          hub       = local.hub[local.hub_env].subscription
          kv        = var.key_vault_subscription
          dnszone   = \"ed302caf-ec27-4c64-a05e-85731c3ce90e\"
        }
        alias              = each.key
        subscription_id    = each.value
        features           = {}
      }
  3. Avoid Mixed Quote Styles:

    • Incidental differences in string declaration style (e.g., skip_provider_registration = true vs. \"true\") should be unified for consistency:
      • Recommendation: Use true (boolean type) instead of \"true\" (string).

GitHub Actions Workflow (pre-commit.yml)

  1. Pin to Commit Hash:

    • Instead of uses: mikefarah/yq@v4.48.1, pin to a specific commit hash to prevent potential issues from upstream changes:
      uses: mikefarah/yq@<commit-hash>
    • Same applies to pre-commit/action@v3.0.1.
  2. Consider Including Python Cache in Actions:

    • Caching Python dependencies can save build time and reduce costs. Add a cache step for Python dependencies:
      - name: Cache dependencies
        uses: actions/cache@v3
        with:
          path: ~/.cache/pip
          key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
          restore-keys: |
            ${{ runner.os }}-pip-

Terraform

  1. Enable Explicit Version Locking:

    • Explicitly lock the azurerm provider version for all components to ensure consistent behavior across deployments:
      provider \"azurerm\" {
        version = \"~> 3.70\" # Example version
        features {}
      }
  2. Enable Resource Lifecycle Rules:

    • Consider defining lifecycle settings for resources that should not be destroyed unintentionally (prevent_destroy):
      lifecycle {
        prevent_destroy = true
      }
  3. Add Comments for Clarity:

    • Enhance maintainability by adding comments, especially for complex local and variable usage. For example:
      # Select the subscription for the hub environment
      subscription_id = local.hub[local.hub_env].subscription

Cost and Environmental Considerations

  1. Carbon Footprint:

    • Although skip_provider_registration reduces unnecessary API calls (positive for both cost and carbon usage), ensure that registration only occurs explicitly when needed to prevent operational side effects.
  2. Cost Estimation:

    • Using variables instead of hardcoding for subscription IDs can facilitate budgeting across environments. Pinning specific provider versions may slightly increase costs during provider updates but ensures predictability in behavior.

Documentation and Testing

  1. Add Documentation:

    • Describe the rationale for skip_provider_registration in module documentation to help collaborators understand its inclusion.
  2. Testing Framework:

    • Ensure changes in provider configuration work seamlessly using a Terraform plan and validate in CI/CD pipelines.

Estimated Cost and Environmental Impact

  • Cost Savings: Caching Python dependencies and reducing Terraform API calls reduce operational expenses.
  • Carbon Reduction: These changes (especially API call reduction) reduce cloud provider server energy usage.

@github-actions
Copy link
Copy Markdown

Suggestions for Improvements

.github/workflows/pre-commit.yml

  1. Pin Docker Image Digests:

    • The mikefarah/yq@v4.48.1 GitHub Action fetches a Docker image. To improve security and reproducibility, pin the Docker image digest instead of using the tag. Example:
      yaml
      uses: mikefarah/yq@v4.48.1
      with:
      imageDigest: sha256:<digest_value>
    • This avoids any risk of unexpected updates to the v4.48.1 tag.
  2. Pre-Commit Action Security:

    • The pre-commit/action@v3.0.1 action should also ideally be pinned to a specific SHA for security reasons:
      uses: pre-commit/action@<specific_github_sha>

Terraform Files (init.tf and provider.tf)

  1. Consolidate provider \"azurerm\" Blocks:

    • Multiple redundant provider \"azurerm\" blocks with overlapping configurations like features {} exist. Consolidate where possible to simplify and reduce code repetition. For example:
      provider \"azurerm\" {
        features {}
        skip_provider_registration = true
      }
  2. Avoid Inline Subscription IDs:

    • Hardcoded subscription IDs (e.g., ed302caf-ec27-4c64-a05e-85731c3ce90e) should be parameterized using variables for better maintainability:
      subscription_id = var.dnszone_subscription
    • Pass these as variables from a terraform.tfvars or a backend configuration.
  3. Ensure Consistency with Attribute Values:

    • For skip_provider_registration, some blocks use \"true\" (as a string) while others use true (as a boolean). To adhere to best practices, always use the correct type (true for booleans):
      skip_provider_registration = true
  4. Use Environment Variables for Secure Inputs:

    • If handling sensitive data like subscription IDs, consider using TF_VAR_ environment variables rather than hardcoding or even plain variables.

General Notes

  • Terraform Cost Impact:

    • No immediate changes identified through this diff that would significantly affect Azure cost. However, using proper terraform plan can confirm this.
  • Carbon Usage:

    • Switching to a newer version of mikefarah/yq (v4.48.1) may slightly increase CI/CD carbon footprint if the Docker image is larger or not cached. The difference is likely negligible.
  • Consistency in Formatting:

    • Ensure that all blocks have consistent indentation for better readability. Many of the provider \"azurerm\" blocks in the diff have mixed formatting.

By addressing the above points, the code will achieve better security, readability, and maintainability.

@renovate
Copy link
Copy Markdown
Contributor Author

renovate Bot commented Nov 3, 2025

Autoclosing Skipped

This PR has been flagged for autoclosing. However, it is being skipped due to the branch being already modified. Please close/delete it manually or report a bug if you think this is in error.

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.

2 participants