我正在使用'--from-env-file'选项创建kubernetes configMap,以将文件内容存储为环境变量。
kubectl create configmap env --from-env-file=env.properties -n namespace
当我按如下方式创建Terraform资源时,创建的configMap包含一个文件,而不是环境变量。
resource "kubernetes_config_map" "env" {
metadata {
name = "env-config"
namespace = var.namespace
}
data = {
"env.properties" = "${file("${path.module}/env.properties")}"
}
}
如何使用terraform-kubernetes-provider资源以文件内容作为环境变量创建configMap?
答案 0 :(得分:2)
如果env.properties
看起来像这样:
$ cat env.properties
enemies=aliens
lives=3
allowed="true"
然后kubectl create configmap env --from-env-file=env.properties -n namespace
将导致如下所示:
apiVersion: v1
kind: ConfigMap
metadata:
name: env
namespace: namespace
data:
allowed: '"true"'
enemies: aliens
lives: "3"
但是您对Terraform所做的操作会产生以下类似结果:
apiVersion: v1
kind: ConfigMap
metadata:
name: env
namespace: namespace
data:
env.properties: |
enemies=aliens
lives=3
allowed="true"
根据Terraform docs,您似乎无法找到所需的内容,即Terraform提供程序中对--from-env-file
行为的某些本机支持。
使用Terraform方式进行的ConfigMap
格式仍然有用,您可能只需要更改将数据从ConfigMap
提取到pod /部署中的方式即可。如果您可以共享更多详细信息,甚至可以共享使用配置映射的pod /部署的简化/消毒示例,则可能可以描述如何更改它们以利用{{1}的不同样式}。查看更多here。