You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform含插值的base64encode语法修正及值变更问题咨询

解决Terraform插值表达式弃用警告并避免值变更的正确语法

修正后的完整配置

resource "kubernetes_secret" "flux-infra-gcr-credentials" {
  metadata {
    name      = "flux-infra-gcr-credentials"
    namespace = "flux-system"
  }

  data = {
    ".dockerconfigjson" = jsonencode({
      auths = {
        "https://europe-west2-docker.pkg.dev" = {
          auth = base64encode("_json_key:" + google_secret_manager_secret_version.flux-infra-gcr-credentials-v1.secret_data)
        }
      }
    })
  }
}

关键修正点说明

  • 移除外层不必要的插值包裹:原代码中"${base64encode(...)}"的写法是Terraform 0.12之前的旧语法,0.12+支持直接将函数调用作为表达式赋值,无需用"${}"包裹。
  • 替换内部字符串插值为原生拼接:原代码里的"_json_key:${google_secret_manager_secret_version.flux-infra-gcr-credentials-v1.secret_data}"改用"_json_key:" + 资源引用的方式拼接字符串,这是Terraform 0.12+的标准写法,能保证计算结果和旧语法完全一致,不会触发terraform plan的不必要值变更。
  • 这样修改既符合tflint的规范要求,又能保留原有配置的实际效果,避免意外变更。

内容的提问来源于stack exchange,提问作者sc-leeds

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 22:08:27