消费值的文档(http://kubernetes.io/docs/user-guide/configmap/)上的示例基于ConfigMap,其中每个数据条目都是一对/值。例如:
apiVersion: v1
kind: ConfigMap
metadata:
name: special-config
namespace: default
data:
special.how: very
special.type: charm
但是,当我们从属性文件创建ConfigMap时,每个数据条目值本身都是键/对值的列表。例如:
$ kubectl get configmaps game-config -o yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: game-config
[...]
data:
game.properties: |-
enemies=aliens
lives=3
enemies.cheat=true
enemies.cheat.level=noGoodRotten
secret.code.passphrase=UUDDLRLRBABAS
secret.code.allowed=true
secret.code.lives=30
[...]
在这种情况下:
答案 0 :(得分:4)
您不能使用单个条目,因为它只是一大块文本。我看到了两个选项:
不要从文件创建配置图。而是手动在ConfigMap中创建每个条目。您必须单独使用每个密钥,至少在解决this issue之前。
不要将ConfigMap用作环境变量。而是将该密钥作为卷安装,并让您的应用程序读取密钥/值。
看起来第二种选择对你来说很有效。它允许您继续从文件生成ConfigMap,并且还允许您使用所有声明的键/值,而无需不断更改Kubernetes清单。
将ConfigMap作为卷安装的另一个好处是,它允许您对配置执行就地更新(假设您的应用程序可以容忍)。如果将ConfigMap键作为环境变量挂载,则更新它们的唯一方法是重新启动应用程序。