kubernetes - 使用 yaml 文件在 kubernetes 上创建多个配置映射
问题描述
我有一些包含一些值的 yaml 文件。我想在 helm 部署并为每个文件创建配置映射时读取这些文件。
我在 helm 图表下添加了配置文件。(与模板文件夹同级)
然后我尝试创建位于“模板”文件夹下的“configmap-creator.yaml”。
我只是运行'helm upgrade --install ealpkar --namespace ealpkar --create-namespace'。它已成功完成,但只有一个名为“config2-configmap”的配置图。我错过了第一个( config1-configmap )
这是'configmap-creator.yaml'
{{- $files := .Files }}
{{- range $key, $value := .Files }}
{{- if hasPrefix "config/" $key }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ $key | trimPrefix "config/" | replace ".yaml" "" | replace "_" "-" }}-configmap
data:
{{ $key | trimPrefix "config/" }}: {{ $files.Get $key | quote }}
{{- end }}
{{- end }}
'config' 文件夹下的 yaml 文件示例;
config1.yaml
dummy_product: ip: 10.10.10.10 port: 22
config2.yaml
dummy_product_2: ip: 10.10.10.20 port: 22
解决方案
修复您的模板,在对象之间添加分隔符。
{{- $files := .Files }}
{{- range $key, $value := .Files }}
{{- if hasPrefix "config/" $key }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ $key | trimPrefix "config/" | replace ".yaml" "" | replace "_" "-" }}-configmap
data:
{{ $key | trimPrefix "config/" }}: {{ $files.Get $key | quote }}
{{- end }}
{{- end }}
推荐阅读
- algorithm - 置换外部存储器的实用算法
- angular - 我可以在请求中使用名称而不是 id 吗?
- amazon-web-services - 使用名称标签创建 ec2 服务器实例
- c# - 打印不带预览的 rdlc
- google-cloud-ml - cloud-ml 作业在运行数千步后取消
- php - 如何在没有绑定参数的情况下检查 MySQL 注入的变量
- android - 如何在 RecyclerView 适配器中添加 switch 语句?
- javascript - 如何使用按钮编辑或输入焦点 InputElement
- javascript - Promises:如何解决未知数量的 Promise
- php - 如何循环上传多个文件然后添加到我的 json 数组中?