-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update Terraform azurerm to v4 #2247
base: master
Are you sure you want to change the base?
Conversation
Code Review: Terraform AzureRM Provider Version UpgradeOverview: General Advice:
Specific Suggestions:
Estimated Cost Changes: Carbon Usage: In summary, the upgrade requires careful attention to potential breaking changes, thorough testing, and possible adjustments in Terraform configurations to ensure a smooth transition to |
4c2f65a
to
8b92be2
Compare
Improvements OverviewThe changes show an update to the AzureRM provider from version
Cost and Carbon Usage Consideration
Final NotesWhile this review focuses on the Terraform provider version update, it's important to view this change within the broader context of your infrastructure management practices. Careful planning, testing, and ongoing review of Terraform resources and provider capabilities will yield the best results in terms of maintainability, cost efficiency, and sustainability. |
8b92be2
to
2f400ab
Compare
Review SummaryThe git diff indicates an update across multiple Terraform configurations, specifically upgrading the Version Pinning StrategyIt's crucial to adopt a more flexible version pinning strategy to ensure smoother transitions between versions and to avoid potential conflicts or breaking changes that could affect your infrastructure stability. Suggestion:
|
2f400ab
to
60c6425
Compare
Review SummaryThe diff provided shows updates to the AzureRM provider version for Terraform across multiple components. Upgrading to version Additional Improvements
Cost and Carbon Usage ConsiderationsUpgrading the provider itself does not directly impact costs or carbon usage. However, new features or resources introduced in the RecommendationCarry out a thorough review and testing phase to ensure that the upgrade does not introduce any regression or configuration drift. Consider gradual implementation with extensive monitoring to mitigate potential risks. Should new or optimized resources be available in the upgraded version, assess their impact on costs and carbon usage, aiming for a balance between innovation, stability, and sustainability. |
60c6425
to
f1d85bf
Compare
Based on the provided git diff, the changes predominantly focus on updating the
As for the exact cost implications in GBP or the specific carbon usage impact, these depend on how the new provider version changes resource utilization or infrastructure configuration. Without concrete changes in the infrastructure code beyond the provider version update, estimating cost or carbon impact would be speculative. It's advisable to monitor your infrastructure's cost and usage closely after applying these updates to gauge their impact. |
f1d85bf
to
db5a82f
Compare
Review Summary:The diff provided shows an upgrade of the Additional Improvements:
Conclusion:The Terraform provider upgrade is a positive step towards leveraging newer features, improvements, and security patches. However, it's crucial to approach the upgrade with a thorough understanding of potential impacts, including compatibility checks, performance, cost implications, and environmental considerations. Implementing the additional improvements and suggestions outlined above will help ensure a smoother transition and maintain high-quality infrastructure-as-code practices. |
db5a82f
to
b387976
Compare
Terraform Provider Version Update ReviewThe provided git diff reflects updates to the Terraform
In summary, while the update itself is a good practice, ensuring readiness through changelog review, implementing version constraints, thorough testing, updating documentation, assessing potential cost implications, and considering carbon usage impacts are critical steps for a successful and beneficial upgrade. |
Plan Result (sbox_private_dns - TerraformPlanApply)
|
Plan Result (sbox_apim_appgw - TerraformPlanApply)
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)
+ 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"
"startupMode" = "always"
}
# (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
}
}
}
Plan: 0 to add, 2 to change, 0 to destroy. |
Plan Result (sbox_backendappgateway - TerraformPlanApply)
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
}
}
# (2 unchanged blocks hidden)
}
Plan: 0 to add, 2 to change, 0 to destroy.
|
Plan Result (sbox_frontendappgateway - TerraformPlanApply)
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 = "frontdoor.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 = "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 = "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 = "frontdoor.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 = "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 = "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
}
}
# (2 unchanged blocks hidden)
}
Plan: 0 to add, 2 to change, 0 to destroy.
|
Plan Result (sbox_shutter_webapp - TerraformPlanApply)
|
Plan Result (sbox_global - TerraformPlanApply)
Change Result (Click me) # azurerm_storage_account.diagnostics will be updated in-place
~ resource "azurerm_storage_account" "diagnostics" {
~ cross_tenant_replication_enabled = true -> false
id = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/lz-sbox-rg/providers/Microsoft.Storage/storageAccounts/hmctscftdiagsbox"
name = "hmctscftdiagsbox"
tags = {
"application" = "core"
"builtFrom" = "hmcts/azure-platform-terraform"
"businessArea" = "CFT"
"criticality" = "Low"
"environment" = "sandbox"
"expiresAfter" = "3000-01-01"
"startupMode" = "always"
}
# (95 unchanged attributes hidden)
# (3 unchanged blocks hidden)
}
# module.premium_front_door.azurerm_cdn_frontdoor_profile.front_door will be updated in-place
~ resource "azurerm_cdn_frontdoor_profile" "front_door" {
id = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/lz-sbox-rg/providers/Microsoft.Cdn/profiles/hmcts-sbox"
name = "hmcts-sbox"
tags = {
"application" = "core"
"builtFrom" = "hmcts/azure-platform-terraform"
"businessArea" = "CFT"
"criticality" = "Low"
"environment" = "sandbox"
"expiresAfter" = "3000-01-01"
"startupMode" = "always"
}
# (4 unchanged attributes hidden)
- identity {
- identity_ids = [] -> null
- principal_id = "8523e6b9-8461-46fd-abb9-1b2491384367" -> null
- tenant_id = "531ff96d-0ae9-462a-8d2d-bec7c0b42082" -> null
- type = "SystemAssigned" -> null
}
}
# module.premium_front_door.azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
id = "/subscriptions/b72ab7b7-723f-4b18-b6f6-03b0f2c6a1bb/resourceGroups/lz-sbox-rg/providers/Microsoft.Cdn/profiles/hmcts-sbox|fd-log-analytics-logs-sa"
name = "fd-log-analytics-logs-sa"
# (6 unchanged attributes hidden)
- metric {
- category = "AllMetrics" -> null
- enabled = false -> null
- retention_policy {
- days = 0 -> null
- enabled = false -> null
}
}
# (1 unchanged block hidden)
}
Plan: 0 to add, 3 to change, 0 to destroy. |
Plan Result (stg_private_dns - TerraformPlanApply)
|
Plan Result (prod_private_dns - TerraformPlanApply)
|
Plan Result (demo_private_dns - TerraformPlanApply)
|
c8d9c88
to
5ed3c41
Compare
General Improvements
Cost and Carbon Usage Considerations
ConclusionThe upgrade to version "4.7.0" of the |
5ed3c41
to
97abe87
Compare
Code Review on Terraform UpdatesGeneral Observations:The git diff shows a series of updates to the Additional Improvements:
Conclusion:This upgrade to the |
97abe87
to
3c368ba
Compare
Terraform AzureRM Provider Version Update ReviewThe updates shown in the diff primarily involve updating the AzureRM provider version for various Terraform components from
In summary, while the provider version update is a crucial aspect, ensure comprehensive testing and review to leverage newer features safely and efficiently. These actions not only maintain the health and security of your infrastructure but also optimize costs and carbon footprint over time. Estimated Price Changes: Direct cost changes due to provider version updates are not applicable. Indirect costs will depend on optimizations and new resources utilized as a result of new features available in |
3c368ba
to
52aec71
Compare
Code ReviewTerraform Provider Version UpdateThe diff indicates that the Terraform Specific Suggestions:
Cost & Carbon Usage Consideration:Direct cost or carbon usage impact from upgrading the Terraform provider version is negligible. However, leveraging new features for efficiency could have downstream benefits in reducing both costs and carbon footprint. Although quantifying these savings depends heavily on your specific deployments, adopting more efficient patterns enabled by the provider upgrade could lead to reduced compute, storage, or networking resources, translating into cost savings and potentially lower carbon emissions associated with decreased power consumption. |
52aec71
to
0db7c24
Compare
The git diff indicates that the version of the Code Quality & Best Practices
Security Enhancements
Cost & Carbon Usage Considerations
Since pricing for Azure services varies based on region, resource types, and usage, it's challenging to provide a specific cost estimation without detailed infrastructure usage patterns. However, adopting best practices for efficiency and monitoring can lead to cost savings over time. |
0db7c24
to
78870a3
Compare
Terraform Provider Upgrade AnalysisThe primary change in the diff is the upgrade of the 1. Review Change Log for Breaking Changes:Given the major version bump (from 3.x to 4.x), there could be breaking changes that might affect existing resources or their configuration.
2. Assess Deprecations and New Features:Major version upgrades typically introduce new features and deprecate old ones.
3. Version Constraints:The current version is pinned to
4. Testing and Validation:With the provider update, thorough testing is crucial to ensure that existing resources are not inadvertently affected.
5. Cost and Carbon Usage Consideration:Upgrading a provider does not directly impact cost or carbon usage. However, new features or optimizations introduced by the upgrade could enable more efficient resource usage, potentially leading to cost and carbon savings.
Pricing Estimation:
ConclusionUpgrading the |
78870a3
to
27cb959
Compare
Additional Improvements for Terraform ConfigurationConsistency in Provider Configuration
Locking Provider Versions
Leverage State Locking
Security by Principle of Least Privilege
Continuous Integration/Continuous Deployment (CI/CD) Pipeline
Review Costs of Upgraded Resources
Environment-specific Configurations
Version Control and Documentation
ConclusionPerforming a provider version upgrade in Terraform is a significant step towards utilizing better features and ensuring security through bug fixes. However, it comes with the responsibility to conduct thorough testing, review the impact on existing resources, and ensure best practices around security and infrastructure management are followed. |
27cb959
to
3212595
Compare
Code Review AssessmentThe git diff presented shows updates to the Version ConsistencyAll the changes consistently update the provider to version Version Pinning Best PracticesUpgrading the provider version is important, but it is equally important to ensure that the upgrade doesn't introduce breaking changes that could affect your infrastructure. It is a good practice to:
Additional Suggestions
Cost, Security, Best Practice
Carbon Usage
In conclusion, while the version update is a positive step, it's critical to incorporate best practices around version pinning, thorough testing, and consideration of compatibility and documentation to ensure smooth and secure operations. |
3212595
to
f6c36f7
Compare
The given git diff suggests an update to the AzureRM provider for Terraform across various components from either version 1. Review Upgrade GuidesUpgrading major versions (from
2. Version ConstraintsInstead of pinning to a specific version hcl
|
Plan Result (demo_pubsubappgateway - TerraformPlanApply)
Change Result (Click me) # module.pubsubappgateway[0].azurerm_application_gateway.ag[0] will be updated in-place
~ resource "azurerm_application_gateway" "ag" {
id = "/subscriptions/d025fece-ce99-4df2-b7a9-b649d3ff2060/resourceGroups/cft-demo-network-rg/providers/Microsoft.Network/applicationGateways/cft-pubsub00-demo-agw"
name = "cft-pubsub00-demo-agw"
tags = {
"application" = "core"
"autoShutdown" = "true"
"builtFrom" = "hmcts/azure-platform-terraform"
"businessArea" = "CFT"
"criticality" = "Medium"
"environment" = "demo"
"startupMode" = "always"
}
# (8 unchanged attributes hidden)
- probe {
- host = "em-icp-webpubsub.demo.platform.hmcts.net" -> null
- id = "/subscriptions/d025fece-ce99-4df2-b7a9-b649d3ff2060/resourceGroups/cft-demo-network-rg/providers/Microsoft.Network/applicationGateways/cft-pubsub00-demo-agw/probes/em-icp-webpubsub" -> null
- interval = 20 -> null
- minimum_servers = 0 -> null
- name = "em-icp-webpubsub" -> 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 = "em-icp-webpubsub.demo.platform.hmcts.net"
+ id = (known after apply)
+ interval = 20
+ minimum_servers = 0
+ name = "em-icp-webpubsub"
+ path = "/health/liveness"
+ pick_host_name_from_backend_http_settings = false
+ protocol = "Http"
+ timeout = 15
+ unhealthy_threshold = 3
}
# (12 unchanged blocks hidden)
}
# module.pubsubappgateway[0].azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
id = "/subscriptions/d025fece-ce99-4df2-b7a9-b649d3ff2060/resourceGroups/cft-demo-network-rg/providers/Microsoft.Network/applicationGateways/cft-pubsub00-demo-agw|app-gw-storage-account"
name = "app-gw-storage-account"
# (6 unchanged attributes hidden)
- metric {
- category = "AllMetrics" -> null
- enabled = false -> null
- retention_policy {
- days = 0 -> null
- enabled = false -> null
}
}
# (2 unchanged blocks hidden)
}
# module.pubsubappgateway[0].azurerm_web_application_firewall_policy.waf_policy[0] will be updated in-place
~ resource "azurerm_web_application_firewall_policy" "waf_policy" {
id = "/subscriptions/d025fece-ce99-4df2-b7a9-b649d3ff2060/resourceGroups/cft-demo-network-rg/providers/Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/cft-pubsub-waf-policy-demo"
name = "cft-pubsub-waf-policy-demo"
tags = {
"application" = "core"
"autoShutdown" = "true"
"builtFrom" = "hmcts/azure-platform-terraform"
"businessArea" = "CFT"
"criticality" = "Medium"
"environment" = "demo"
"startupMode" = "always"
}
# (4 unchanged attributes hidden)
~ policy_settings {
~ js_challenge_cookie_expiration_in_minutes = 0 -> 30
# (8 unchanged attributes hidden)
}
# (1 unchanged block hidden)
}
Plan: 0 to add, 3 to change, 0 to destroy.
|
f6c36f7
to
f946490
Compare
Remember, while keeping your provider version current is good practice, it is equally important to manage these upgrades thoughtfully and systematically to ensure they align with your operational and business objectives. |
f946490
to
4038e13
Compare
Terraform Provider Version Upgrade ReviewThe pull request updates the AzureRM provider version from "3.113.0" and "3.65.0" to "4.16.0" across multiple Terraform configurations. This is an important step in keeping infrastructure code up-to-date with the latest provider features and bug fixes. However, several additional improvements and considerations should be made:
In conclusion, while updating the AzureRM provider to "4.16.0" is a positive step, attention to potential breaking changes, testing for compatibility, and adopting flexible version constraints are important to ensure a smooth transition and maintain optimal infrastructure code health. |
4038e13
to
5a1679e
Compare
Code Review FeedbackTerraform Provider Version UpdateThe proposed changes involve updating the
Version Consistency Across ComponentsIt's positive to see the provider version being updated consistently across multiple components. This aids in maintaining uniformity and reducing potential compatibility issues between different parts of your infrastructure managed by Terraform. Cost, Security, and Carbon Usage Considerations
Specific Example for Improvementhcl
|
Plan Result (perftest_pubsubappgateway - TerraformPlanApply)
Change Result (Click me) # module.pubsubappgateway[0].azurerm_application_gateway.ag[0] will be updated in-place
~ resource "azurerm_application_gateway" "ag" {
id = "/subscriptions/8a07fdcd-6abd-48b3-ad88-ff737a4b9e3c/resourceGroups/cft-perftest-network-rg/providers/Microsoft.Network/applicationGateways/cft-pubsub00-perftest-agw"
name = "cft-pubsub00-perftest-agw"
tags = {
"application" = "core"
"autoShutdown" = "true"
"builtFrom" = "hmcts/azure-platform-terraform"
"businessArea" = "CFT"
"criticality" = "Medium"
"environment" = "testing"
"startupMode" = "always"
}
# (8 unchanged attributes hidden)
- probe {
- host = "em-icp-webpubsub.perftest.platform.hmcts.net" -> null
- id = "/subscriptions/8a07fdcd-6abd-48b3-ad88-ff737a4b9e3c/resourceGroups/cft-perftest-network-rg/providers/Microsoft.Network/applicationGateways/cft-pubsub00-perftest-agw/probes/em-icp-webpubsub" -> null
- interval = 20 -> null
- minimum_servers = 0 -> null
- name = "em-icp-webpubsub" -> 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 = "em-icp-webpubsub.perftest.platform.hmcts.net"
+ id = (known after apply)
+ interval = 20
+ minimum_servers = 0
+ name = "em-icp-webpubsub"
+ path = "/health/liveness"
+ pick_host_name_from_backend_http_settings = false
+ protocol = "Http"
+ timeout = 15
+ unhealthy_threshold = 3
}
# (12 unchanged blocks hidden)
}
# module.pubsubappgateway[0].azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
id = "/subscriptions/8a07fdcd-6abd-48b3-ad88-ff737a4b9e3c/resourceGroups/cft-perftest-network-rg/providers/Microsoft.Network/applicationGateways/cft-pubsub00-perftest-agw|app-gw-storage-account"
name = "app-gw-storage-account"
# (6 unchanged attributes hidden)
- metric {
- category = "AllMetrics" -> null
- enabled = false -> null
- retention_policy {
- days = 0 -> null
- enabled = false -> null
}
}
# (2 unchanged blocks hidden)
}
# module.pubsubappgateway[0].azurerm_web_application_firewall_policy.waf_policy[0] will be updated in-place
~ resource "azurerm_web_application_firewall_policy" "waf_policy" {
id = "/subscriptions/8a07fdcd-6abd-48b3-ad88-ff737a4b9e3c/resourceGroups/cft-perftest-network-rg/providers/Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/cft-pubsub-waf-policy-perftest"
name = "cft-pubsub-waf-policy-perftest"
tags = {
"application" = "core"
"autoShutdown" = "true"
"builtFrom" = "hmcts/azure-platform-terraform"
"businessArea" = "CFT"
"criticality" = "Medium"
"environment" = "testing"
"startupMode" = "always"
}
# (4 unchanged attributes hidden)
~ policy_settings {
~ js_challenge_cookie_expiration_in_minutes = 0 -> 30
# (8 unchanged attributes hidden)
}
# (1 unchanged block hidden)
}
Plan: 0 to add, 3 to change, 0 to destroy.
|
Plan Result (aat_pubsubappgateway - TerraformPlanApply)
Change Result (Click me) # module.pubsubappgateway[0].azurerm_application_gateway.ag[0] will be updated in-place
~ resource "azurerm_application_gateway" "ag" {
id = "/subscriptions/96c274ce-846d-4e48-89a7-d528432298a7/resourceGroups/cft-aat-network-rg/providers/Microsoft.Network/applicationGateways/cft-pubsub00-aat-agw"
name = "cft-pubsub00-aat-agw"
tags = {
"application" = "core"
"autoShutdown" = "true"
"builtFrom" = "hmcts/azure-platform-terraform"
"businessArea" = "CFT"
"criticality" = "High"
"environment" = "staging"
"startupMode" = "always"
}
# (8 unchanged attributes hidden)
- probe {
- host = "em-icp-webpubsub.aat.platform.hmcts.net" -> null
- id = "/subscriptions/96c274ce-846d-4e48-89a7-d528432298a7/resourceGroups/cft-aat-network-rg/providers/Microsoft.Network/applicationGateways/cft-pubsub00-aat-agw/probes/em-icp-webpubsub" -> null
- interval = 20 -> null
- minimum_servers = 0 -> null
- name = "em-icp-webpubsub" -> 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 = "em-icp-webpubsub.aat.platform.hmcts.net"
+ id = (known after apply)
+ interval = 20
+ minimum_servers = 0
+ name = "em-icp-webpubsub"
+ path = "/health/liveness"
+ pick_host_name_from_backend_http_settings = false
+ protocol = "Http"
+ timeout = 15
+ unhealthy_threshold = 3
}
# (12 unchanged blocks hidden)
}
# module.pubsubappgateway[0].azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
id = "/subscriptions/96c274ce-846d-4e48-89a7-d528432298a7/resourceGroups/cft-aat-network-rg/providers/Microsoft.Network/applicationGateways/cft-pubsub00-aat-agw|app-gw-storage-account"
name = "app-gw-storage-account"
# (6 unchanged attributes hidden)
- metric {
- category = "AllMetrics" -> null
- enabled = false -> null
- retention_policy {
- days = 0 -> null
- enabled = false -> null
}
}
# (2 unchanged blocks hidden)
}
# module.pubsubappgateway[0].azurerm_web_application_firewall_policy.waf_policy[0] will be updated in-place
~ resource "azurerm_web_application_firewall_policy" "waf_policy" {
id = "/subscriptions/96c274ce-846d-4e48-89a7-d528432298a7/resourceGroups/cft-aat-network-rg/providers/Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/cft-pubsub-waf-policy-aat"
name = "cft-pubsub-waf-policy-aat"
tags = {
"application" = "core"
"autoShutdown" = "true"
"builtFrom" = "hmcts/azure-platform-terraform"
"businessArea" = "CFT"
"criticality" = "High"
"environment" = "staging"
"startupMode" = "always"
}
# (4 unchanged attributes hidden)
~ policy_settings {
~ js_challenge_cookie_expiration_in_minutes = 0 -> 30
# (8 unchanged attributes hidden)
}
# (1 unchanged block hidden)
}
Plan: 0 to add, 3 to change, 0 to destroy.
|
Plan Result (ithc_pubsubappgateway - TerraformPlanApply)
Change Result (Click me) # module.pubsubappgateway[0].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-pubsub00-ithc-agw"
name = "cft-pubsub00-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 = "em-icp-webpubsub.ithc.platform.hmcts.net" -> null
- id = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-pubsub00-ithc-agw/probes/em-icp-webpubsub" -> null
- interval = 20 -> null
- minimum_servers = 0 -> null
- name = "em-icp-webpubsub" -> 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 = "em-icp-webpubsub.ithc.platform.hmcts.net"
+ id = (known after apply)
+ interval = 20
+ minimum_servers = 0
+ name = "em-icp-webpubsub"
+ path = "/health/liveness"
+ pick_host_name_from_backend_http_settings = false
+ protocol = "Http"
+ timeout = 15
+ unhealthy_threshold = 3
}
# (12 unchanged blocks hidden)
}
# module.pubsubappgateway[0].azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
id = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGateways/cft-pubsub00-ithc-agw|app-gw-storage-account"
name = "app-gw-storage-account"
# (6 unchanged attributes hidden)
- metric {
- category = "AllMetrics" -> null
- enabled = false -> null
- retention_policy {
- days = 0 -> null
- enabled = false -> null
}
}
# (2 unchanged blocks hidden)
}
# module.pubsubappgateway[0].azurerm_web_application_firewall_policy.waf_policy[0] will be updated in-place
~ resource "azurerm_web_application_firewall_policy" "waf_policy" {
id = "/subscriptions/62864d44-5da9-4ae9-89e7-0cf33942fa09/resourceGroups/cft-ithc-network-rg/providers/Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/cft-pubsub-waf-policy-ithc"
name = "cft-pubsub-waf-policy-ithc"
tags = {
"application" = "core"
"autoShutdown" = "true"
"builtFrom" = "hmcts/azure-platform-terraform"
"businessArea" = "CFT"
"criticality" = "Medium"
"environment" = "ithc"
"startupMode" = "always"
}
# (4 unchanged attributes hidden)
~ policy_settings {
~ js_challenge_cookie_expiration_in_minutes = 0 -> 30
# (8 unchanged attributes hidden)
}
# (1 unchanged block hidden)
}
Plan: 0 to add, 3 to change, 0 to destroy.
|
Plan Result (prod_pubsubappgateway - TerraformPlanApply)
Change Result (Click me) # module.pubsubappgateway[0].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-pubsub00-prod-agw"
name = "cft-pubsub00-prod-agw"
tags = {
"application" = "core"
"builtFrom" = "hmcts/azure-platform-terraform"
"businessArea" = "CFT"
"criticality" = "High"
"environment" = "production"
"startupMode" = "always"
}
# (8 unchanged attributes hidden)
- probe {
- host = "em-icp-webpubsub.prod.platform.hmcts.net" -> null
- id = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-pubsub00-prod-agw/probes/em-icp-webpubsub" -> null
- interval = 20 -> null
- minimum_servers = 0 -> null
- name = "em-icp-webpubsub" -> 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 = "em-icp-webpubsub.prod.platform.hmcts.net"
+ id = (known after apply)
+ interval = 20
+ minimum_servers = 0
+ name = "em-icp-webpubsub"
+ path = "/health/liveness"
+ pick_host_name_from_backend_http_settings = false
+ protocol = "Http"
+ timeout = 15
+ unhealthy_threshold = 3
}
# (12 unchanged blocks hidden)
}
# module.pubsubappgateway[0].azurerm_monitor_diagnostic_setting.diagnostics_access_logs_sa[0] will be updated in-place
~ resource "azurerm_monitor_diagnostic_setting" "diagnostics_access_logs_sa" {
id = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGateways/cft-pubsub00-prod-agw|app-gw-storage-account"
name = "app-gw-storage-account"
# (6 unchanged attributes hidden)
- metric {
- category = "AllMetrics" -> null
- enabled = false -> null
- retention_policy {
- days = 0 -> null
- enabled = false -> null
}
}
# (2 unchanged blocks hidden)
}
# module.pubsubappgateway[0].azurerm_web_application_firewall_policy.waf_policy[0] will be updated in-place
~ resource "azurerm_web_application_firewall_policy" "waf_policy" {
id = "/subscriptions/8cbc6f36-7c56-4963-9d36-739db5d00b27/resourceGroups/cft-prod-network-rg/providers/Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/cft-pubsub-waf-policy-prod"
name = "cft-pubsub-waf-policy-prod"
tags = {
"application" = "core"
"builtFrom" = "hmcts/azure-platform-terraform"
"businessArea" = "CFT"
"criticality" = "High"
"environment" = "production"
"startupMode" = "always"
}
# (4 unchanged attributes hidden)
~ policy_settings {
~ js_challenge_cookie_expiration_in_minutes = 0 -> 30
# (8 unchanged attributes hidden)
}
# (1 unchanged block hidden)
}
Plan: 0 to add, 3 to change, 0 to destroy.
|
This PR contains the following updates:
3.65.0
->4.17.0
3.113.0
->4.17.0
Release Notes
hashicorp/terraform-provider-azurerm (azurerm)
v4.17.0
Compare Source
FEATURES:
azurerm_api_management_subscription
(#27824)azurerm_cognitive_account_rai_policy
(#28013)azurerm_mssql_job_target_group
(#28492)ENHANCEMENTS:
network
- update to use2024-05-01
(#28146)privatedns
- update to use2024-06-01
(#28599)storage
- update to use2023-05-01
(#27760)azure_communication_service
- add support for thehostname
property (#28620)azurerm_api_management
-capacity
now has a max limit of 50 (#28648)azurerm_backup_protected_vm
- add support for featurevm_backup_suspend_protection_and_retain_data_on_destroy
(#27950)azurerm_cognitive_account
- support for thebypass
property (#28221)azure_communication_service
- add support for thehostname
property (#28620)azurerm_container_app_environment
- add support for Azure Monitor as a log destination (#26047)azurerm_mssql_elasticpool
- add support forMOPRMS
pool type and update validation forPRMS
andGen5
pool types (#28453)azurerm_mssql_managed_instance_transparent_data_encryption
- support for themanaged_hsm_key_id
property (#28480)azurerm_stream_analytics_output_cosmosdb
- support for theauthentication_mode
property (#28372)azurerm_stream_analytics_stream_input_blob
- add support forauthentication_mode
(#27853)BUG FIXES:
azurerm_container_app
- update the validation regex for the resource's name (#28528)azurerm_kubernetes_cluster
- parseoms_agent.log_analytics_workspace_id
insensitively to handle inconsistent casing (#28575)azurerm_kubernetes_flux_configuration
- fix issue where removingpost_build
from akustomization
resulted in an error from the API (#28590)azurerm_linux_virtual_machine_scale_set
- prevent crash caused by ommitedextensions_to_provision_after_vm_creation
block (#28549)azurerm_log_analytics_storage_insights
- use subscription from workspace ID when building the resource ID (#28469)azurerm_orchestrated_virtual_machine_scale_set
- prevent crash caused by ommitedextensions_to_provision_after_vm_creation
block (#28549)azurerm_virtual_machine
- parseos_disk
insensitively to handle inconsistent casing (#28592)azurerm_windows_virtual_machine_scale_set
- Prevent crash caused by ommitedextensions_to_provision_after_vm_creation
block (#28549)v4.16.0
Compare Source
NOTE: This release contains a breaking change reverting
redisenterprise
API version from2024-10-01
to2024-06-01-preview
as not all regions are currently supported in the2024-10-01
versionBREAKING CHANGES:
redisenterprise
API version reverted from2024-10-01
to2024-06-01-preview
(#28516)FEATURES:
azurerm_container_registry_credential_set
(#27528)azurerm_mssql_job
(#28456)azurerm_mssql_job_schedule
(#28456)ENHANCEMENTS:
hashicorp/go-azure-sdk
tov0.20250115.1141151
(#28519)costmanagement
update to use2023-08-01
(#27680)postgresql
update API version to2024-08-01
(#28474)azurerm_container_app
– support for thetermination_grace_period_seconds
property (#28307)azurerm_cost_anomaly_alert
- add support for thenotification_email
property (#27680)azurerm_data_protection_backup_vault
- support forimmutability
property (#27859)azurerm_databricks_workspace
- fixignore_changes
support (#28527)azurerm_kubernetes_cluster_node_pool
- add support for thetemporary_name_for_rotation
property to allow node pool rotation (#27791)azurerm_linux_function_app
- add support for node22
and java17
support forJBOSSEAP
(#28472)azurerm_linux_web_app
- add support for node22
and java17
support forJBOSSEAP
(#28472)azurerm_windows_function_app
- add support for node22
and java17
support forJBOSSEAP
(#28472)BUG FIXES:
azurerm_logic_app_standard
- fix settingpublic_network_access
for conflicting API properties (#28465)azurerm_redis_cache
-data_persistence_authentication_method
can now be unset (#27932)azurerm_mssql_database
- fix bug where verifying TDE might fail to return an error on failure (#28505)azurerm_mssql_database
- fix several potential bugs where retry functions could return false negatives for actual errors (#28505)azurerm_private_endpoint
- fix a bug where reading Private DNS could error and exit the Read of the resource early without raising an error (#28505)v4.15.0
Compare Source
FEATURES:
azurerm_kubernetes_fleet_manager
(#28278)azurerm_arc_kubernetes_provisioned_cluster
(#28216)azurerm_machine_learning_workspace_network_outbound_rule_private_endpoint
(#27874)azurerm_machine_learning_workspace_network_outbound_rule_service_tag
(#27931)azurerm_dynatrace_tag_rules
(#27985)ENHANCEMENTS:
go-git
version to5.13.0
(#28425)hashicorp/go-azure-sdk
tov0.20241212.1154051
(#28360)frontdoor
- partial update to use2024-02-01
API (#28233)postgresql
- update to2024-08-01
(#28380)redisenterprise
- update to2024-10-01
and support for new skus (#28280)azurerm_healthcare_dicom_service
- add support for thedata_partitions_enabled
,cors
,encryption_key_url
andstorage
properties (#27375)azurerm_nginx_deployment
- add support for thedataplane_api_endpoint
property (#28379)azurerm_static_web_app
- add support for therepository_url
andrepository_branch
properties (#27401)azurerm_billing_account_cost_management_export
- add support for thefile_format
property (#27122)azurerm_cdn_frontdoor_profile
- add support for theidentity
property (#28281)azurerm_cognitive_deployment
-DataZoneProvisionedManaged
andGlobalProvisionedManaged
skus are now supported (#28404)azurerm_databricks_access_connector
-SystemAssigned,UserAssigned
identity is now supported (#28442)azurerm_healthcare_dicom_service
- add support for thedata_partitions_enabled
,cors
,encryption_key_url
andstorage
properties (#27375)azurerm_kubernetes_flux_configuration
- add support for thepost_build
andwait
properties (#25695)azurerm_linux_virtual_machine
- export theos_disk.0.id
attribute (#28352)azurerm_netapp_volume
- make thenetwork_features
property Optional/Computed (#28390)azurerm_nginx_deployment
- add support for thedataplane_api_endpoint
property (#28379)azurerm_resource_group_cost_management_export
- add support for thefile_format
property (#27122)azurerm_site_recovery_replicated_vm
- support for thenetwork_interface.recovery_load_balancer_backend_address_pool_ids
property (#28398)azurerm_static_web_app
- add support for therepository_url
,repository_branch
andrepository_token
properties (#27401)azurerm_subscription_cost_management_export
- add support for thefile_format
property (#27122)azurerm_virtual_network
- support for theprivate_endpoint_vnet_policies
property (#27830)azurerm_windows_virtual_machine
- export theos_disk.0.id
attribute (#28352)azurerm_mssql_managed_instance
- support for new propertyazure_active_directory_administrator
(#24801)BUG FIXES:
azurerm_api_management
- update thecapacity
property to allow increasing the apim scalability to31
(#28427)azurerm_automation_software_update_configuration
remove deprecated misspelled attributeerror_meesage
(#28312)azurerm_batch_pool
- support for new blocksecurity_profile
(#28069)azurerm_log_analytics_data_export_rule
- now creates successfully without returning404
(#27876)azurerm_mongo_cluster
- remove CustomizeDiff logic foradministrator_password
to allow the input to be generated by therandom_password
resource (#28215)azurerm_mongo_cluster
- valdation updated so the resource now creates successfully when usingcreate_mode
GeoReplica
(#28269)azurerm_mssql_managed_instance
- allow system and user assigned identities, fix update failure (#28319)azurerm_storage_account
- fix error handling forstatic_website
andqueue_properties
availability checks (#28279)v4.14.0
Compare Source
BREAKING CHANGES:
nginx
- update api version to2024-09-01-preview
, this API no longer supports certain properties which have had to be deprecated in the provider for the upgrade (#27776)azurerm_nginx_configuration
- theprotected_file.content
property will not be populated and has been deprecated (#27776)azurerm_nginx_deployment
- themanaged_resource_group
property will not be populated and has been deprecated (#27776)azurerm_network_function_collector_policy
- the API doesn't preserve the ordering of theipfx_ingestion.source_resource_ids
property causing non-empty plans after apply, this property's type has been changed from a list to a set to prevent Terraform from continually trying to recreate this resource. If this property is being referenced anywhere you will need to update your config to convert it to a list before referencing it (#27915)azurerm_nginx_deployment
- themanaged_resource_group
property is no longer supported and has been deprecated (#27776)FEATURES:
azurerm_cognitive_account_rai_blocklist
(#28043)azurerm_fabric_capacity
(#28080)ENHANCEMENTS:
go-azure-sdk
tov0.20241206.1180327
(#28211)nginx
- update api version to2024-11-01-preview
(#28227)azurerm_linux_function_app
- add support for preview value21
forjava_version
(#26304)azurerm_linux_function_app_slot
- support1.3
forsite_config.minimum_tls_version
andsite_config.scm_minimum_tls_version
(#28016)azurerm_linux_web_app
- add support for preview value21
forjava_version
(#26304)azurerm_orchestrated_virtual_machine_scale_set
- support hot patching for2025-datacenter-azure-edition-core-smalldisk
(#28160)azurerm_search_service
- add support for thenetwork_rule_bypass_option
property (#28139)azurerm_windows_function_app
- add support for preview value21
forjava_version
(#26304)azurerm_windows_function_app_slot
- support1.3
forsite_config.minimum_tls_version
andsite_config.scm_minimum_tls_version
(#28016)azurerm_windows_virtual_machine
- support hot patching for2025-datacenter-azure-edition-core-smalldisk
(#28160)azurerm_windows_web_app
- add support for preview value21
forjava_version
(#26304)BUG FIXES:
azurerm_management_group
- fix regression where subscription ID can't be parsed correctly anymore (#28228)v4.13.0
Compare Source
ENHANCEMENTS:
azurerm_cognitive_deployment
- support for thedynamic_throttling_enabled
property (#28100)azurerm_key_vault_managed_hardware_security_module_key
- thekey_type
property now supportsoct-HSM
(#28171)azurerm_machine_learning_datastore_datalake_gen2
- can now be used with storage account in a different subscription (#28123)azurerm_network_watcher_flow_log
-target_resource_id
supports subnets and network interfaces (#28177)BUG:
azurerm_logic_app_standard
- update theidentity
property to support User Assigned Identities (#28158)azurerm_cdn_frontdoor_origin_group
- update validation of theinterval_in_seconds
property to match API behaviour (#28143)azurerm_container_group
- retrieve log analytics workspace key from config when updating resource (#28025)azurerm_mssql_elasticpool
- fix sku tier and family validation that prevented the creation of Hyperscale PRMS pools (#28178)azurerm_search_service
- thepartition_count
property can now be up to3
when using basic sku (#28105)v4.12.0
Compare Source
FEATURES:
azurerm_mssql_managed_database
(#27026)BUG FIXES:
azurerm_application_insights_api_key
- fix condition that nil checks the list of available API keys to prevent an indefinate loop when keys created outside of Terraform are present (#28037)azurerm_data_factory_linked_service_azure_sql_database
- sendtenant_id
only if it has been specified (#28120)azurerm_eventgrid_event_subscription
- fix crash when flatteningadvanced_filter
(#28110)azurerm_virtual_network_gateway
- fix crash issue when specifyingroot_certificate
orrevoked_certificate
(#28099)ENHANCEMENTS:
go-azure-sdk
tov0.20241128.1112539
(#28137)containerapps
- update api version to2024-03-01
(#28074)Search
- update api version to2024-06-01-preview
(#27803)azurerm_logic_app_standard
- add support for thepublic_network_access
property (#27913)azurerm_search_service
- add support for thecustomer_managed_key_encryption_compliance_status
property (#27478)azurerm_container_registry_task
- add validation oncpu
as well as onagent_pool_name
andagent_setting
(#28098)azurerm_databricks_workspace
- add support for theenhanced_security_compliance
block (#26606)azurerm_eventhub
- deprecatenamespace_name
andresource_group_name
in favour ofnamespace_id
(#28055)azurerm_logic_app_standard
- add support for thepublic_network_access
property (#27913)azurerm_search_service
- add support for thecustomer_managed_key_encryption_compliance_status
property (#27478)azurerm_cosmosdb_account
- add support for valueEnableNoSQLFullTextSearch
in thecapabilities.name
property (#28114)v4.11.0
Compare Source
NOTES:
azurerm_key_vault_certificate
andazurerm_key_vault_secret
now support ephemeral valuesFEATURES:
azurerm_key_vault_certificate
(#28083)azurerm_key_vault_secret
(#28083)azurerm_eventgrid_namespace
(#27682)ENHANCEMENTS:
hashicorp/go-azure-sdk
tov0.20241118.1115603
(#28075)batch
- upgrade api version to2024-07-01
(#27982)containerregistry
- upgrade api version to2023-11-01-preview
(#27983)azurerm_application_gateway
-1.1
is now accepted as a validrule_set_version
in thewaf_configuration
block (#28039)azurerm_arc_machine
- add support for theidentity
andtags
properties (#27987)azurerm_container_app
-secret.name
now accepts up to 253 characters and.
(#27935)azurerm_network_manager
-scope_accesses
now acceptsRouting
(#28033)azurerm_network_watcher_flow_log
- add support for thetarget_resource_id
property (#26015)azurerm_role_assignment
-condition_version
will be defaulted to2.0
whencondition
has been set (#27189)azurerm_subnet
-Informatica.DataManagement/organizations
is a validservice_delegation
(#27993)azurerm_virtual_network
-Informatica.DataManagement/organizations
is a validservice_delegation
(#27993)azurerm_web_application_firewall_policy
-1.1
is now accepted as a validversion
forMicrosoft_BotManagerRuleSet
rule types (#28039)BUG FIXES:
azurerm_api_management
-public_ip_address_id
is no longer required whenzone
has been set (#27976)azurerm_api_management_diagnostic
- raise and error whenoperation_name_format
is used with andidentity
that is notapplicationinsights
(#27630)azurerm_api_management_api_diagnostic
- raise and error whenoperation_name_format
is used with andidentity
that is notapplicationinsights
(#27630)azurerm_application_gateway
-rewrite_rule_set
can be supplied when usingBasic
sku (#28011)azurerm_container_registry_token_password
- correctly mark as gone if container registry token doesn't exist (#27232)azurerm_kusto_cluster
-allowed_fqdn
andallowed_ip_ranges
can now be set to empty lists (#27529)azurerm_linux_function_app_slot
- create content settings when using a consumpton plan (#25412)azurerm_virtual_network_gatway
- updatingip_configuration
now recreates the resource (#27828)v4.10.0
Compare Source
BREAKING CHANGES:
cognitive
to2024-10-01
, due to a behavioural change in this version of the API, theprimary_access_key
andsecondary_access_key
can not be retrieved iflocal_authentication_enabled
has been set tofalse
. These properties that may have had values previously will now be empty. This has affected theazurerm_ai_services
andazurerm_cognitive_account
resources as well as theazurerm_cognitive_account
data source (#27851)FEATURES:
azurerm_key_vault_managed_hardware_security_module_key
(#27827)azurerm_netapp_backup_vault
(#27188)azurerm_netapp_backup_policy
(#27188)ENHANCEMENTS:
terraform-plugin-framework
to versionv1.13.0
(#27936)terraform-plugin-framework-validators
to versionv0.14.0
(#27936)terraform-plugin-go
to versionv0.25.0
(#27936)terraform-plugin-mux
to versionv0.17.0
(#27936)terraform-plugin-sdk/v2
to versionv2.35.0
(#27936)azurerm_bastion_host
- add support for thezones
property (#27909)azurerm_application_gateway
- support more values for thestatus_code
property (#27535)azurerm_bastion_host
- support for thezones
property (#27909)azurerm_communication_service
- support forusgov
region (#27919)azurerm_email_communication_service
- support forusgov
region added (#27919)azurerm_linux_function_app
- support for .NET 9 (#27879)azurerm_linux_function_app_slot
- support for .NET 9 (#27879)azurerm_linux_web_app
- support for .NET 9 (#27879)azurerm_linux_web_app_slot
- support for .NET 9 (#27879)azurerm_windows_web_app
- support for .NET 9 (#27879)azurerm_windows_web_app_slot
- support for .NET 9 (#27879)azurerm_windows_function_app
- support for .NET 9 (#27879)azurerm_windows_function_app_slot
- support for .NET 9 (#27879)BUG FIXES:
azurerm_log_analytics_workspace_table
- use the subscription from workspace ID (#27590)azurerm_traffic_manager_external_endpoint
- the value forpriority
will be dynamically assigned by the API (#27966)azurerm_traffic_manager_azure_endpoint
- the value forpriority
will be dynamically assigned by the API (#27966)v4.9.0
Compare Source
FEATURES:
azurerm_dynatrace_monitor
(#27432)azurerm_dashboard_grafana_managed_private_endpoint
(#27781)azurerm_data_protection_backup_instance_mysql_flexible_server
(#27464)azurerm_mongo_cluster
(#27636)azurerm_stack_hci_network_interface
(#26888)ENHANCEMENTS:
go-azure-sdk
tov0.20241104.1140654
(#27896)go-azure-helpers
tov0.71.0
(#27897)golang-jwt
tov4.5.1
(#27938)storage
- allowazurerm_storage_account
to be used in Data Plane restrictive environments (#27818)azurerm_cognitive_deployment
-sku.0.name
now supportsDataZoneStandard
(#27926)azurerm_mssql_managed_database
- support for thetags
property (#27857)azurerm_oracle_cloud_vm_cluster
- support for thedomain
,scan_listener_port_tcp
,scan_listener_port_tcp_ssl
andzone_id
properties (#27808)azurerm_public_ip_prefix
- support for thesku_tier
property (#27882)azurerm_public_ip
- support for thedomain_name_label_scope
property (#27748)azurerm_subnet
-default_outbound_access_enabled
can now be updated (#27858)azurerm_storage_container
- support for thestorage_account_id
property (#27733)azurerm_storage_share
- support for thestorage_account_id
property (#27733)v4.8.0
Compare Source
FEATURES:
azurerm_virtual_network_peering
(#27530)azurerm_machine_learning_workspace_network_outbound_rule_fqdn
(#27384)azurerm_stack_hci_extension
(#26929)azurerm_stack_hci_marketplace_gallery_image
(#27532)azurerm_trusted_signing_account
(#27720)ENHANCEMENTS:
mysql
- upgrade api version to2023-12-30
(#27767)network
- upgrade api version to2024-03-01
(#27746)azurerm_cosmosdb_account
: support for CMK throughmanaged_hsm_key_id
property (#26521)azurerm_cosmosdb_account
- support further versions formongo_server_version
(#27763)azurerm_container_app_environment
- changing thelog_analytics_workspace_id
property no longer creates a new resource (#27794)azurerm_data_factory_linked_service_azure_sql_database
- add support for thecredential_name
property (#27629)azurerm_key_vault_key
-expiration_date
only recreates the resource when it is removed from the config file (#27813)azurerm_kubernetes_cluster
- fix issue wheremaintenance_window_auto_upgrade
/maintenance_window_auto_upgrade
/maintenance_window_node_os
might not be read into state (#26915)azurerm_kubernetes_cluster
- support for thebackend_pool_type
property (#27596)azurerm_kubernetes_cluster
- support for thedaemonset_eviction_for_empty_nodes_enabled
,daemonset_eviction_for_occupied_nodes_enabled
, andignore_daemonsets_utilization_enabled
properties (#27588)azurerm_load_test
-description
can now be updated (#27800)azurerm_oracle_cloud_vm_cluster
- export theocid
property (#27785)azurerm_orchestrated_virtual_machine_scale_set
- add support forsku_profile
block (#27599)azurerm_web_application_firewall_policy
- add support forpolicy_settings.0.file_upload_enforcement
(#27774)BUG FIXES:
azurerm_automation_hybrid_runbook_worker_group
- correctly mark resource as gone if it's absent when reading it (#27797)azurerm_automation_hybrid_runbook_worker
- correctly mark resource as gone if it's absent when reading it (#27797)azurerm_automation_python3_package
- correctly mark resource as gone if it's absent when reading it (#27797)azurerm_data_protection_backup_vault
- prevent panic when checking value ofcross_region_restore_enabled
(#27762)azurerm_role_management_policy
- fix panic when unmarshalling the policy into a specific type (#27731)azurerm_security_center_subscription_pricing
- correctly type assert theadditional_extension_properties
property when building the payload (#27721)azurerm_synapse_workspace_aad_admin
- will no correctly delete when usingazurerm_synapse_workspace_aad_admin
withazurerm_synapse_workspace
(#27606)azurerm_windows_function_app_slot
- fixed panic in state migration (#27700)v4.7.0
Compare Source
FEATURES:
azurerm_oracle_adbs_character_sets
(#27698)azurerm_oracle_adbs_national_character_sets
(#27698)azurerm_oracle_autonomous_database
(#27696)azurerm_oracle_db_nodes
(#27698)azurerm_oracle_db_system_shapes
(#27698)azurerm_oracle_gi_versions
(#27698)azurerm_dev_center_project_pool
(#27706)azurerm_oracle_autonomous_database
(#27696)azurerm_video_indexer_account
(#27632)ENHANCEMENTS:
go-azure-sdk
tov0.20241021.1074254
(#27713)newrelic
- upgrade api version to2024-03-01
(#27135)cosmosdb
- upgrade api version to2024-08-15
(#27659)azurerm_application_gateway
- support for the newBasic
SKU value (#27440)azurerm_consumption_budget_management_group
- the propertynotification.threshold_type
can now be updated (#27511)azurerm_consumption_budget_resource_group
- the propertynotification.threshold_type
can now be updated (#27511)azurerm_container_app
- add support for thetemplate.container.readiness_probe.initial_delay
andtemplate.container.startup_probe.initial_delay
properties (#27551)azurerm_mssql_managed_instance
- thestorage_account_type
property can now be updated (#27737)BUG FIXES:
azurerm_automation_software_update_configuration
- correct validation to not allow5
and allow-1
(#25574)azurerm_cosmosdb_sql_container
- fix recreation logic forpartition_key_version
(#27692)azurerm_mssql_database
- updating short term retention policy now works as expected (#27714)azurerm_network_watcher_flow_log
- fix issue wheretags
were not being updated (#27389)azurerm_postgresql_flexible_server_virtual_endpoint
- retrieve and parsereplica_server_id
for cross-region scenarios as well as remove custom poller for the delete operation (#27509)v4.6.0
Compare Source
FEATURES:
azurerm_dev_center_attached_network
(#27638)azurerm_oracle_cloud_vm_cluster
(#27678)azurerm_oracle_exadata_infrastructure
(#27678)azurerm_oracle_cloud_vm_cluster
(#27678)azurerm_oracle_db_servers
(#27678)azurerm_oracle_exadata_infrastructure
(#27678)ENHANCEMENTS:
redisenterprise
- upgrade api version to2024-06-01-preview
(#27597)azurerm_app_configuration
- support for premium sku (#27674)azurerm_container_app
- support for themax_inactive_revisions
property (#27598)azurerm_kubernetes_cluster
- remove lock on subnets (#27583)azurerm_nginx_deployment
- allow updates forsku
(#27604)azurerm_fluid_relay_server
- support for thecustomer_managed_key
property (#27581)azurerm_linux_virtual_machine
- support theUBUNTU_PRO
value for thelicense_type
property (#27534)BUGS:
azurerm_api_management_api_diagnostic
- do not setOperationNameFormat
when theidentifier
property isazuremonitor
(#27456)azurerm_api_management
- prevent a panic (#27649)azurerm_mssql_database
- makeshort_term_retention_policy.backup_interval_in_hours
computed (#27656)v4.5.0
Compare Source
FEATURES:
azurerm_stack_hci_virtual_hard_disk
(#27474)ENHANCEMENTS:
azurerm_bastion_host
- support for thePremium
SKU andsession_recording_enabled
property (#27278)azurerm_log_analytics_cluster
- thesize_gb
property now supports all of 100, 200, 300, 400, 500, 1000, 2000, 5000, 10000, 25000, and 50000 (#27616)azurerm_mssql_elasticpool
- allowPRMS
for thefamily
property (#27615)BUG FIXES:
azurerm_mssql_database
- now creates successfully when elastic pool is hyperscale (#27505)azurerm_postgresql_flexible_server_configuration
- now locks to prevent conflicts when deploying multiple (#27355)v4.4.0
Compare Source
ENHANCEMENTS:
github.com/hashicorp/go-azure-sdk
tov0.20240923.1151247
(#27491)azurerm_site_recovery_replicated_vm
- support for thetarget_virtual_machine_size
property (#27480)BUG FIXES:
azurerm_app_service_certificate
-key_vault_secret_id
can now be versionless (#27537)azurerm_linux_virtual_machine_scale_set
- prevent crash whenauto_upgrade_minor_version_enabled
is nil (#27353)azurerm_role_assignment
- correctly parse ID when it's a root or provider scope (#27237)azurerm_storage_blob
-source_content
is now ForceNew (#27508)azurerm_virtual_network_gateway_connection
- revertshared_key
to Optional and Computed (#27560)v4.3.0
Compare Source
FEATURES:
azurerm_advisor_suppression
(#26177)azurerm_data_protection_backup_policy_mysql_flexible_server
(#26955)azurerm_key_vault_managed_hardware_security_module_key_rotation_policy
(#27306)azurerm_stack_hci_deployment_setting
(#25646)azurerm_stack_hci_storage_path
(#26509)azurerm_vpn_server_configuration
(#27054)ENHANCEMENTS:
managementgroups
- migrate tohashicorp/go-azure-sdk
(#26430)nginx
- upgrade api version to2024-06-01-preview
(#27345)azurerm_linux[windows]_web[function]_app[app_slot]
- upgrade api version from2023-01-01
to2023-12-01
(#27196)azurerm_cosmosdb_account
- support for the capabilityEnableNoSQLVectorSearch
(#27357)azurerm_container_app_custom_domain - fix parsing the certificate ID error #25972azurerm_container_app_custom_domain
- support other certificate types (#25972)azurerm_linux_virtual_machine_scale_set
- thezones
property can now be updated without creating a new resource (#27288)azurerm_orchestrated_virtual_machine_scale_set
- thezones
property can now be updated without creating a new resource (#27288)azurerm_role_management_policy
- support for resource scope (#27205)azurerm_spring_cloud_gateway
- changing theenvironment_variables
andsensitive_environment_variables
properties no longer creates a new resource (#27404)azurerm_static_web_app
- support for thepublic_network_access_enabled
property ([#&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 these updates again.
This PR was generated by Mend Renovate. View the repository job log.