【问题标题】:How to Create a Configmap dynamically from a file如何从文件动态创建 Configmap
【发布时间】:2021-01-04 02:12:42
【问题描述】:

我可以从属性文件创建配置映射并在 POD 中使用相同的配置文件。但是,我不想使用过去创建并随 helmchart 提供的 configmap。我想在 helmchart values.yaml 中提供一个文件名,从中动态创建配置映射..

欢迎任何建议/示例。

提前致谢 - 图泰

【问题讨论】:

    标签: kubernetes configmap


    【解决方案1】:

    看看kubernetes/charts issue 1310 中描述的方法是否适合你。

    我建议我们允许覆盖安装到持久卷的ConfigMap 的名称。
    这样,父图表就可以为这些ConfigMaps 创建甚至制作模板。

    例如values.yaml 可以添加以下字段:

    ## alertmanager ConfigMap entries
    ##
    alertmanagerFiles:
      # ConfigMap override where full-name is {{.Release.Name}}-{{.Values.alertmanagerFiles.configMapOverrideName}}
      configMapOverrideName: ""
    ...
    
    ## Prometheus server ConfigMap entries
    ##
    serverFiles:
      # ConfigMap override where full-name is {{.Release.Name}}-{{.Values.serverFiles.configMapOverrideName}}
      configMapOverrideName: ""
    ...
    

    您可以在 commit 2ea7764 中查看该问题的实现,作为覆盖的示例。


    这与文件方法不同,您可以创建一个新的配置映射并替换旧的:

    kubectl create configmap asetting --from-file=afile \
            -o yaml --dry-run | kubectl replace -f -
    

    以“Updating Secrets and ConfigMaps”为例。

    【讨论】:

    • 感谢 VonC 的快速响应。但由于我们正在使用 helm 交付完整的东西.. 不允许客户运行任何“kubectl create”命令。相反,他们希望提供在 helm install 期间将创建 configmap 的文件名。那么我可以在 values.yaml 中传递任何文件名,并且模板目录中的 configmap 将从 values.yaml 中提供的文件名中获取数据部分吗?
    • @TutaiDalal 所以第二种方法不太合适。但第一个可能仍然有效。我不太了解 Helm,不知道您是否可以添加 .Values.xxx.configMapOverrideName,但想法仍然存在:让 values.yaml 能够直接设置值,或从其他来源设置值。
    猜你喜欢
    • 1970-01-01
    • 2020-02-06
    • 1970-01-01
    • 2019-11-23
    • 2010-10-08
    • 1970-01-01
    • 2018-12-17
    • 2020-04-24
    • 1970-01-01
    相关资源
    最近更新 更多