Reputation: 1040
I'm deploying web apps in Azure and I'd like to ignore changes to scm_type attribute within site_config block.
During deployment the scm_type attribute set to None and later we are changing it to something different in Azure Portal.
My current TF code looks like this:
resource "azurerm_app_service" "web_app" {
count = length(var.app_names)
name = var.app_names[count.index]
location = data.azurerm_resource_group.app_resource_group.location
resource_group_name = data.azurerm_resource_group.app_resource_group.name
app_service_plan_id = azurerm_app_service_plan.app_plan.id
tags = var.tags
app_settings = var.app_settings[count.index]
site_config {
always_on = true
websockets_enabled = var.websockets_enabled[count.index]
use_32_bit_worker_process = var.use_32_bit_worker_process
scm_type = "None"
}
lifecycle {
ignore_changes = [
site_config.0.scm_type
]
}
}
I expect terraform plan to ignore changes in scm_type during infrastructure updates, but it's trying to revert it back to None. Line from terraform plan output:
~ scm_type = "BitbucketGit" -> "None"
Upvotes: 56
Views: 67944
Reputation: 40919
It seems that syntax changed. M_dk confirmed that site_config["scm_type"]
doesn't work in terraform 1.1.5
. And it is the same in version 1.3.9
. What is even worse it doesn't throw error.
It ignores whole site_config
, what effectively blocks changing the site.
For version 1.1.5
and above proper syntax is:
lifecycle {
ignore_changes = [
site_config[0].scm_type
]
}
Upvotes: 5
Reputation: 31
lifecycle {
ignore_changes = [
site_config["scm_type"]
]
}
here site_config["scm_type"]
without comma(,) also it will work
Here are the docs that have the syntax.
https://spacelift.io/blog/terraform-resource-lifecycle
Upvotes: 2
Reputation: 3347
I think you need to fix your syntax in the ignore changes. It should look like this, or at least from what I have been able to get to work.
lifecycle {
ignore_changes = [
site_config["scm_type"],
]
}
Here are the docs that have the syntax.
https://www.terraform.io/docs/language/meta-arguments/lifecycle.html#ignore_changes
Upvotes: 54
Reputation: 1040
It was a terraform bug: https://github.com/hashicorp/terraform/issues/21433 My syntax is correct, in version 0.12.4 it's working again.
Upvotes: 18