Kubernetes - configmap模板变量

问题描述 投票:0回答:3

我有一个豆荚里的(或配置地图)两大ENV瓦尔: - TARGET_URL=http://www.example.com - TARGET_PARAM=param

有没有办法为我提供由这两个瓦尔,像${TARGET_URL}/mysite/${TARGET_PARAM}衍生第三的环境变量。

谢谢!

kubernetes
3个回答
2
投票

我不认为这是可能的,现在,没有第三方工具。关于api ref它不支持在YAML多变量。但我会告诉你一个第三方工具 - 头盔

这是可能使用头盔来实现它。您的模板将是这样的:

 containers:
    - name: {{.Values.Backend.name }}
      image: "{{ .Values.Backend.image.repository }}:{{ .Values.Backend.image.tag }}"
      imagePullPolicy: "{{ .Values.Backend.image.pullPolicy }}"
      args:
        - name: TARGET_URL
          value: {{ .Value.URL}}
        - name: TARGET_PARAM
          value: {{ .Value.PARAM}}
        - name: URL
          value: {{ .Value.URL }}/mysite/{{ .Value.PARAM}}

你会添加到文件values.yaml参数TARGET_URLTARGET_PARAM

URL: http://www.example.com
PARAM: param          

1
投票

对于环境变量(一对夫妇在群规范等领域,其中argscommand)的存在将得到扩展的美容一样$(VARIABLE)名;例如参见the documentation for .env.value。这可能是这样的:

env:
  - name: TARGET_URL
    valueFrom:
      configMapKeyRef:
        key: cm
        name: TARGET_URL
  - name: TARGET_PARAM
    valueFrom:
      configMapKeyRef:
        key: cm
        name: TARGET_PARAM
  - name: TARGET_DETAIL_URL
    value: $(TARGET_URL)/mysite/$(TARGET_PARAM)

如果你依赖于安装ConfigMap放入容器如文件,那么它只能包含静态内容;这一招是行不通的。


0
投票

你可以使用一个init脚本,您可以在泊坞窗入口调用。

© www.soinside.com 2019 - 2024. All rights reserved.