-
Notifications
You must be signed in to change notification settings - Fork 9.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Support moving from null_resource to terraform_data (#35163)
This change enables the built-in provider's `terraform_data` managed resource to work with the `moved` configuration block where the `from` address is a `null_resource` managed resource type from the official `hashicorp/null` provider. It produces no plan differences for typical configurations and specifically helps practitioners from re-running provisioners while moving resource types. In addition to the unit testing, this was manually tested with the following configurations and outputs: Initial configuration (no `triggers`): ```terraform terraform { required_providers { null = { source = "hashicorp/null" version = "3.2.2" } } } resource "null_resource" "example" { provisioner "local-exec" { command = "echo 'Hello, World!'" } } ``` Moved configuration (no `triggers`): ```terraform resource "terraform_data" "example" { provisioner "local-exec" { command = "echo 'Hello, World!'" } } moved { from = null_resource.example to = terraform_data.example } ``` Moved output (no `triggers`): ```console $ terraform apply terraform_data.example: Refreshing state... [id=892002337455008838] Terraform will perform the following actions: # null_resource.example has moved to terraform_data.example resource "terraform_data" "example" { id = "892002337455008838" } Plan: 0 to add, 0 to change, 0 to destroy. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes Apply complete! Resources: 0 added, 0 changed, 0 destroyed. ``` Initial configuration (with `triggers`): ```terraform terraform { required_providers { null = { source = "hashicorp/null" version = "3.2.2" } } } resource "null_resource" "example" { triggers = { examplekey = "examplevalue" } provisioner "local-exec" { command = "echo 'Hello, World!'" } } ``` Moved configuration (with `triggers`): ```terraform resource "terraform_data" "example" { triggers_replace = { examplekey = "examplevalue" } provisioner "local-exec" { command = "echo 'Hello, World!'" } } moved { from = null_resource.example to = terraform_data.example } ``` Moved output (with `triggers`): ```console $ terraform apply terraform_data.example: Refreshing state... [id=1651348367769440250] Terraform will perform the following actions: # null_resource.example has moved to terraform_data.example resource "terraform_data" "example" { id = "1651348367769440250" # (1 unchanged attribute hidden) } Plan: 0 to add, 0 to change, 0 to destroy. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes Apply complete! Resources: 0 added, 0 changed, 0 destroyed. ```
- Loading branch information
Showing
4 changed files
with
258 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters