kubernetes - 使用 Kustomize 将 ConfigMap 一分为二
问题描述
我有以下ConfigMap
。我正在尝试将两个数据源拆分为两个单独的文件,并使用 Kustomize 在“构建时”合并它们。
但我就是不知道该怎么做?
这就是我所拥有的:
apiVersion: v1
kind: ConfigMap
metadata:
name: grafana-datasources
namespace: grafana
data:
datasources.yaml: |-
apiVersion: 1
datasources:
- name: prometheus
type: prometheus
access: proxy
url: http://prometheus:9090
isDefault: true
version: 1
- name: Azure Monitor
type: grafana-azure-monitor-datasource
access: proxy
version: 1
我想拆分成单独文件(然后合并到 ConfigMap)的部分是:
- name: prometheus
type: prometheus
access: proxy
url: http://prometheus:9090
isDefault: true
version: 1
和:
- name: Azure Monitor
type: grafana-azure-monitor-datasource
access: proxy
version: 1
解决方案
您必须为数据源创建两个单独的文件。创建目录以放置基本配置:
$ mkdir -p $DEMO_HOME/base
第一个数据源应如下所示:
$ cat <<EOF >$DEMO_HOME/base/datasource1.yaml
apiVersion: 1
datasources:
- name: prometheus
type: prometheus
access: proxy
url: http://prometheus:9090
isDefault: true
version: 1
第二个数据源应如下所示:
$ cat <<EOF >$DEMO_HOME/base/datasource2.yaml
apiVersion: 1
datasources:
- name: Azure Monitor
type: grafana-azure-monitor-datasource
access: proxy
version: 1
$ cat <<EOF >$DEMO_HOME/base/kustomization.yaml
然后在 kustomization 文件中传递有关 configmap 的信息并添加文件:
$ cat <<EOF >$DEMO_HOME/base/kustomization.yaml
configMapGenerator:
- name: my-configmap
files:
- datasource1.yaml
- datasource2.yaml
EOF
最后,您可以生成用于开发的 configMap:
$ kustomize build $DEMO_HOME/base
请看一下:kustomize-operation,kustomize。
编辑:
您还可以将 ConfigMap 拆分为两个单独的 ConfigMap,它们都将包含一个文件。第一个带有datasources1.yaml
,第二个带有datasources2.yaml
。
推荐阅读
- javascript - 如何让我的网站预加载器在消失前持续 3 秒,即使页面已加载(至少停留 3 秒)
- .net - 包括设备 SDK 的视觉工作室
- javascript - '错误类型错误:无法读取未定义的属性'concat''
- python - 在字段中使用逗号读取 csv 文件
- perl - 警告:从当前目录名称猜测 NAME [src]
- algorithm - JavaScript 中给定字符串的最大可能回文子串
- r - 如何在 R 中更改 highcharter 中的图例比例?
- xpath - XPath - 选择具有确切数量的特定子节点的元素
- amazon-dynamodb - DynamoDB 两个排序键,其中一个作为日期
- java - 如何在android中获取当前主题的文本颜色?