If you manually destroy infrastructure, what is the best practice reflecting this change in Terraform?
If you manually destroy infrastructure, what is the best practice reflecting this change in Terraform?
When you manually destroy infrastructure, the best practice to reflect this change in Terraform is to run 'terraform refresh'. This command reads the current settings from all managed remote objects and updates the Terraform state to match. Note that while 'terraform refresh' is deprecated, it still serves the purpose of updating Terraform's state to reflect the manual changes made to the infrastructure. You should avoid manually updating the state file as it can introduce errors, and the changes won't happen automatically without running 'terraform refresh' or similar commands.
How could change reflect in terraform without doing anything? I think A is right answer. any thoughts?
Wouldn't it be A?
The should be B Wherever possible, avoid using 'terraform refresh' explicitly and instead rely on Terraform's behavior of automatically refreshing existing objects as part of creating a normal plan. If you don't want to automatically refresh, you can use the 'terraform apply -refresh-only' without the -auto-approve option terraform refresh is deprecated https://developer.hashicorp.com/terraform/cli/commands/refresh
unless, you are using old version of TF that doesn't support the refresh-only but you shouldn't typically need to use this command, because Terraform automatically performs the same refreshing actions as a part of creating a plan in both the 'terraform plan' and ' terraform apply' commands.
Read the document carefully :-) The document mentions the reason for the deprecation and recommends alternatives. "A" is not the best practice in the real world, but is the best answer available here. "B" it won't automatically happen unless run some command.
"The Terraform refresh command reads the current settings from all managed remote objects and updates the Terraform state to match." Warning: This command is deprecated because its default behaviour is unsafe if you have misconfigured credentials for any of your providers. See below for more information and recommended alternatives. This won't modify your real remote objects, but it will modify the Terraform state. "You shouldn't typically need to use this command, because Terraform automatically performs the same refreshing actions as a part of creating a plan in both the Terraform plan and Terraform apply commands. This command is here primarily for backward compatibility, but we don't recommend using it because it provides no opportunity to review the effects of the operation before updating the state." Link:https://developer.hashicorp.com/terraform/cli/commands/refresh
```The terraform refresh command reads the current settings from all managed remote objects and updates the Terraform state to match. Warning: This command is deprecated, because its default behavior is unsafe if you have misconfigured credentials for any of your providers. See below for more information and recommended alternatives.```
you can do terraform refresh which is a alias for terraform apply -refresh-only -auto-approve
A is correct, but now as a best practice the correct way should be running terraform apply with the -refresh-only flag
A is the correct answer. Terraform says Warning: This command is deprecated, because its default behavior is unsafe if you have misconfigured credentials for any of your providers. You shouldn't typically need to use this command, because Terraform automatically performs the same refreshing actions as a part of creating a plan in both the terraform plan and terraform apply commands.
The command had been deprecated already. Use -refresh-only option along with terraform plan or terraform apply for the same operation.
terraform refresh is not depricated. Answer is A
https://developer.hashicorp.com/terraform/cli/commands/refresh. A should be the answer Need to run terraform plan or apply with refresh tag
-------------------------------
there are two ways to do this manually remove the resource using "terraform rm" from the state management and the other way is to refresh the state. Since the option given in this question is not clear enough as to run "terraform rm" or not in option C, I will go with option A is the best suited. terraform refresh
in the context of question resource is deleted manually mean we can just refresh the state while terrafrom rm command or manually updating state file updated than resources will be still there so I will go with a TERRAFORM REFRESH
A is the best answer here terraform plan -refresh-only or terraform apply -refresh-only is best practice, but not mentioned here.
The wordings on B very unclear, while A is the closest possible answer. I would choose A over B for lack option and clarity on answers given
Due to changes in terraform versions, the answer was previously A, but is now B.
A. Run terraform refresh