将 Kubernetes ConfigMap 数据字段分离到单独的文件中

Joh*_*etz 4 kubernetes configmap

我正在研究 kubernetes ConfigMaps。在官方文档中,我在该字段中看到“类似文件的密钥” data

apiVersion: v1
kind: ConfigMap
metadata:
  name: game-demo
data:
  # file-like keys
  game.properties: |
    enemy.types=aliens,monsters
    player.maximum-lives=5    
  user-interface.properties: |
    color.good=purple
    color.bad=yellow
    allow.textmode=true    
Run Code Online (Sandbox Code Playgroud)

是否可以将这些“类似文件的密钥”分解为不同的文件并在此 ConfigMap 资源中引用它们?

我看到这种方法的几个好处:

  • 精简了 ConfigMap
  • “类似文件”配置的正确语法突出显示
  • 可以针对“类似文件”的配置运行自动格式化程序

Jon*_*nas 5

  • “类似文件”配置的正确语法突出显示
  • 可以针对“类似文件”的配置运行自动格式化程序

是的,将文件保存为计算机上和 Git 中的正确文件会更容易。

我建议你使用kubectl的kustomize功能并使用configMapGenerator来生成 ConfigMap。

示例kustomization.yaml(保存在与文件相同的目录中,例如在 中config/

configMapGenerator:
- name: game-demo
  files:
  - game.properties
  - user-interface.properties
Run Code Online (Sandbox Code Playgroud)

然后您可以应用(并生成 configMap)(如果您的配置位于config/):

kubectl -k config/
Run Code Online (Sandbox Code Playgroud)

或者您可以使用以下命令预览“生成的”configMap:

kubectl kustomize config/
Run Code Online (Sandbox Code Playgroud)