使用 ignoreChanges
配置忽略 kubernetes 部署的特定注释的更改的正确方法是什么?
我的一个 kubernetes 部署具有以下注释,由 CRD 根据某些外部状态更改自动注入(inject):
metadata:
annotations:
secrets.doppler.com/secretsupdate.api: W/"8673f9c59166f300cacd436f95f83d3379f84643d8259297c18facf0076b50e7"
我希望 terraform 在看到此注释发生更改时不会触发重新部署。
我怀疑下面的内容是正确的,但我不确定使用 terraform cdk 时正确的语法是什么:
new k8s.Deployment(this, name, {
lifecycle: {
ignoreChanges: ["metadata.annotations.\"secrets.doppler.com/secretsupdate.api\""],
},
// ...
})
我尝试使用上面的语法,但它不起作用。
│ Error: Invalid expression
│
│ on cdk.tf.json line 2492, in resource.kubernetes_deployment.api_BA7F1523.lifecycle.ignore_changes:
│ 2492: "metadata.annotations.\"secrets.doppler.com/secretsupdate.api\""
│
│ A single static variable reference is required: only attribute access and
│ indexing with constant keys. No calculations, function calls, template
│ expressions, etc are allowed here.
忽略这样的注释的正确语法是什么?
最佳答案
与往常一样,我在发布后立即就明白了。
metadata[0].annotations[\"secrets.doppler.com/secretsupdate.api\"]
关于terraform - 如何使用 Terraform CDK 忽略特定注释的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75109863/