首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kubernetes,parametrize env var after |- operand

kubernetes,parametrize env var after |- operand
EN

Stack Overflow用户
提问于 2020-04-03 20:26:34
回答 1查看 25关注 0票数 0

我有一个包含以下内容的yaml文件:

代码语言:javascript
复制
...
volumeMounts:
      - mountPath: /var/lib/grafana
        name: grafana-storage
      - mountPath: /etc/grafana/provisioning/datasources
        name: grafana-datasources
        readOnly: false
...

和另一个文件,其中指定了grafana-datasource卷:

代码语言:javascript
复制
apiVersion: v1
kind: ConfigMap
metadata:
    name: grafana-datasources
    namespace: ccx-data-pipeline
    labels:
        grafana_datasource: '1'
data:
    prometheus.yaml: |-
        {
            "apiVersion": 1,
            "datasources": [
                {
                    "access":"proxy",
                    "editable": true,
                    "name": "prometheus-ccx-service",
                    "orgId": 1,
                    "type": "prometheus",
                    "url": "http://prometheus-service:9090",
                    "version": 1
                }
            ]
        }

重点是

代码语言:javascript
复制
"url": "http://prometheus-service:9090" 

不能硬编码,但必须参数化(理想情况下使用环境变量)。这样做会很棒:

代码语言:javascript
复制
"url": "${ENDPOINT}"

但是它不工作,可能是由于|-语法的原因。有没有一种优雅的方法来实现这一点?

EN

回答 1

Stack Overflow用户

发布于 2020-04-03 20:56:22

这在kubernetes中是不可能直接实现的。ConfigMap将底层文件视为泛型data类型,无法将其模板化,因为它无法识别其类型(.yaml、.conf等)

您可以执行的操作:

  1. 预先对您的.yaml文件应用某种类型的模板(例如,通过Jinja2 ConfigMaps根据您的环境(暂存、生产)从不同的文件应用不同的模板)。用kustomize

动态生成

  • ConfigMaps
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61011911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档