How can I disable the "# has been changed" output?

We recently upgraded from 0.13 to 0.15.4 and are seeing plans like this:

  # google_container_node_pool.default has been changed
  ~ resource "google_container_node_pool" "default" {
      ~ initial_node_count  = 5 -> 32
      ~ node_count          = 5 -> 29
        # (6 unchanged attributes hidden)

        # (4 unchanged blocks hidden)

Unless you have made equivalent changes to your configuration, or ignored the relevant attributes using ignore_changes, the following plan may include actions to undo or respond to these changes.


No changes. Your infrastructure matches the configuration.

How can I disable this output in my plan. For one we have initial_node_count as an ignored attribute so even if it did change I told terraform I don’t care and for node_count, well, its an autoscaling node pool I imagine this is going to show up as a diff almost every time you generate a plan.

There has got to be a way to disable this, right? Where was this in the changelog and how is this a more concise plan output?


An even worse example is this:

~ resource "google_bigquery_table" "table" {
      ~ last_modified_time  = 1621858381605 -> 1622046795730
      ~ num_bytes           = 186825 -> 189040
      ~ num_rows            = 5848 -> 5916

Like… who cares? Why is this being output? Is this going to show up everytime I change a db row?

Sorry for maybe being a little hostile but I can’t find this in the changelog or addressed in the google provider and its quite obvious that these are changess terraform knows requires no action so there has got to be a way to suppress this output.

Every time we run a plan now we are also getting these in-actionable etag change diffs printed which is just confusing people and I am spending way to much time answering questions trying to tell people don’t worry about it.

Its really really really awful for us to tell people “don’t worry about this diff” it just conditions them to not GAF when they see diffs they don’t want to investigate.

I see a relevant GitHub issue: A way to hide certain expected changes from the "refresh" report ("Objects have changed outside of Terraform") · Issue #28803 · hashicorp/terraform · GitHub.

Also… my bad it is right there in the changelog:

Hi @bschaeffer,

I see you found the GitHub issue where we’re thinking about ways to improve on this.

Just wanted to add in here, since you were asking about disabling it, that this output is the result of Terraform’s refresh phase – it’s reporting changes that Terraform has always detected but that it kept quiet about before – so if it is particularly bothering you then a coarse way to get rid of it would be to create a plan with-refresh=false to disable the refresh step, though of course that means that Terraform also won’t detect or report changes to remote objects that you do consider significant.

The Google Cloud provider is, unfortunately, a particularly hairy example here because that provider is largely generated automatically from schemas provided by Google and thus it typically includes every single attribute the remote API exposes, even if those values are not useful in a Terraform configuration. I hope that the improvement we ultimately design for this will be something better than just having you manually list out all of the individual attributes you happen to not care about, but that’ll require some more work in the guts of Terraform, whereas what we have here is just a UI-level change to show changes that Terraform was already detecting and incorporating anyway.