After importing resource applying TF with lifecycle -> ignore_changes -> data_json
it should not crash and apply the diff (like changing metadata etc.)
Actual Behavior
Despite of default data_json is set AND lifecycle -> ignore_changes -> data_json is set too,
it crash.
Relevant Error/Panic Output Snippet
vault_kv_secret_v2.common["sielaq"]: Modifying... [id=example/data/common/sielaq]
╷
│ Error: data_json "" syntax error: unexpected end of JSON input
│
│ with vault_kv_secret_v2.common["sielaq"],
│ on kv.tf line 1, in resource "vault_kv_secret_v2" "common":
│ 1: resource "vault_kv_secret_v2" "common" {
│
Terraform Configuration Files
example resource
resource "vault_kv_secret_v2" "common" {
for_each = toset(["sielaq"])
mount = "example"
name = "common/${each.key}"
delete_all_versions = true
data_json = jsonencode(
{
first = "terraform secret - replace me"
}
)
custom_metadata {
data = {
tag = "created by terraform"
}
}
lifecycle {
ignore_changes = [
data_json
]
}
}
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
~ update in-place
Terraform will perform the following actions:
vault_kv_secret_v2.common["sielaq"] will be updated in-place
~ resource "vault_kv_secret_v2" "common" {
id = "example/data/common/sielaq"
name = "common/sielaq"
vault_kv_secret_v2.common["sielaq"]: Modifying... [id=example/data/common/sielaq]
╷
│ Error: data_json "" syntax error: unexpected end of JSON input
│
│ with vault_kv_secret_v2.common["sielaq"],
│ on kv.tf line 1, in resource "vault_kv_secret_v2" "common":
│ 1: resource "vault_kv_secret_v2" "common" {
│
╵
### Debug Output
_No response_
### Panic Output
_No response_
### Important Factoids
_No response_
### References
_No response_
### Would you like to implement a fix?
No
Terraform Core Version
1.7.5
Terraform Vault Provider Version
4.1.0
Vault Server Version
1.15.2
Affected Resource(s)
vault_kv_secret_v2
Expected Behavior
After importing resource applying TF with
lifecycle
->ignore_changes
->data_json
it should not crash and apply the diff (like changing metadata etc.)Actual Behavior
Despite of default
data_json
is set ANDlifecycle
->ignore_changes
->data_json
is set too, it crash.Relevant Error/Panic Output Snippet
Terraform Configuration Files
resource
Steps to Reproduce
terraform import 'vault_kv_secret_v2.common["sielaq"]' 'example/data/common/sielaq'
terraform apply
Terraform will perform the following actions:
vault_kv_secret_v2.common["sielaq"] will be updated in-place
~ resource "vault_kv_secret_v2" "common" { id = "example/data/common/sielaq" name = "common/sielaq"
(4 unchanged attributes hidden)
Plan: 0 to add, 1 to change, 0 to destroy.
vault_kv_secret_v2.common["sielaq"]: Modifying... [id=example/data/common/sielaq] ╷ │ Error: data_json "" syntax error: unexpected end of JSON input │ │ with vault_kv_secret_v2.common["sielaq"], │ on kv.tf line 1, in resource "vault_kv_secret_v2" "common": │ 1: resource "vault_kv_secret_v2" "common" { │ ╵