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

使用Terraform创建含.p12文件的Kubernetes Secret遇问题求助

解决Terraform创建Kubernetes Secret存储.p12二进制文件的问题

问题原因

  1. 用file()读取.p12二进制文件时,file()会尝试将内容解析为UTF-8字符串,但二进制文件包含非可打印/非UTF-8字符,导致Terraform解析失败报错。
  2. 用filebase64()配合data字段时,filebase64()已将二进制内容转为base64编码字符串,而kubernetes_secret_v1的data字段会自动对输入值再次执行base64编码,最终造成双重编码,Secret中的.p12内容无法正常使用。

正确配置方案

使用binary_data字段存储二进制文件,该字段专门用于处理二进制数据,接收filebase64()返回的base64编码字符串,且不会再次编码:

resource "kubernetes_secret_v1" "app_keystore" {
  metadata {
    name      = "app-keystore"
    namespace = "test"
  }
  type = "Opaque"
  binary_data = {
    "test.p12" = filebase64("./secret/appkeystore/test.p12")
  }
}

验证方法

创建Secret后,可通过以下命令导出并校验文件:

kubectl get secret app-keystore -n test -o jsonpath='{.data.test\.p12}' | base64 -d > output.p12

对比output.p12与原始文件的MD5值,确认内容一致。

内容的提问来源于stack exchange,提问作者Nishant Kansal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:10:27