使用从属性文件创build的ConfigMap的条目

用于消费值的文档( 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 

但是,当我们从属性文件创buildConfigMap时,每个数据input值本身就是一个键/值对的列表。 例:

 $ 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 [...] 

在这种情况下:

  1. 我们如何使用单个条目(例如:enemies.cheat)作为环境variables?
  2. 我们如何将所有条目(例如:所有game.properties条目)作为一组环境variables来使用,假设我们只是将每个键用作环境variables名?

你不能消费一个单一的条目,因为它只是一个文本的大块。 你有两个select,我看到:

  1. 不要从文件创buildconfiguration映射。 而是手动在ConfigMap中创build每个条目。 但是,您必须分别使用每个密钥,至less在解决此问题之前。

  2. 不要使用ConfigMap作为环境variables。 请将该密钥安装为卷,并让应用程序读取密钥/值。

看起来第二个选项对你来说很好。 它可以让你继续从一个文件中生成你的ConfigMap,并且允许你使用所有声明的键值,而不必经常改变你的Kubernetes清单。

把你的ConfigMap作为一个卷的另一个好处是,它可以让你对你的configuration执行就地更新(假设你的应用程序容忍这个)。 如果您将ConfigMap键安装为环境variables,则更新它们的唯一方法是重新启动应用程序。