use*_*197 5 kubernetes terraform configmap terraform-provider-kubernetes
我正在使用 '--from-env-file' 选项创建一个 kubernetes configMap 将文件内容存储为环境变量。
kubectl create configmap env --from-env-file=env.properties -n namespace
Run Code Online (Sandbox Code Playgroud)
当我如下创建 terraform 资源时,创建的 configMap 包含一个文件,而不是环境变量。
resource "kubernetes_config_map" "env" {
metadata {
name = "env-config"
namespace = var.namespace
}
data = {
"env.properties" = "${file("${path.module}/env.properties")}"
}
}
Run Code Online (Sandbox Code Playgroud)
如何使用 terraform-kubernetes-provider 资源创建以文件内容作为环境变量的 configMap ?
如果env.properties看起来像这样:
$ cat env.properties
enemies=aliens
lives=3
allowed="true"
Run Code Online (Sandbox Code Playgroud)
那么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"
Run Code Online (Sandbox Code Playgroud)
但是你对 Terraform 所做的事情会导致类似这样的结果:
apiVersion: v1
kind: ConfigMap
metadata:
name: env
namespace: namespace
data:
env.properties: |
enemies=aliens
lives=3
allowed="true"
Run Code Online (Sandbox Code Playgroud)
根据Terraform 文档,您正在寻找的内容(即对--from-env-fileTerraform 提供程序内的行为的一些本机支持)似乎是不可能的。
您以 Terraform 方式执行此操作的格式ConfigMap仍然有用,您可能只需要更改将数据从ConfigMapPod/部署中提取的方式即可。如果您可以分享更多详细信息,甚至是使用配置映射的 Pod/部署的简化/清理示例,则可以描述如何更改这些细节以利用不同样式的ConfigMap. 在这里查看更多内容。
| 归档时间: |
|
| 查看次数: |
7652 次 |
| 最近记录: |