terraform - 如何使用 Terraform CDK 忽略特定注释的更改

标签 terraform terraform-cdk

使用 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/

相关文章:

azure - 如何授予应用程序访问其自己的 api 的权限

python-3.x - CDKTF ec2 具有特定私有(private) IP 地址的娱乐

amazon-web-services - OIDC 提供商 URL 在 0.16.3 中无法解析

azure - Terraform - 在 for_each 循环中递增变量

amazon-web-services - Terraform - 如何为 AWS Lambda 创建 IAM 角色并部署两者?

Terraform - 未在根模块中声明托管资源

azure - 使用 terraform 在 Azure 中创建网络接口(interface)时,使用现有的子网详细信息而不是再次创建

amazon-web-services - 如何使用 python 从 cdktf 数据源打印字符串值

amazon-web-services - 如何使用 cdktf 在运行时获取所有可用区?