簡體   English   中英

values.yaml 中的 helm configmap

[英]helm configmap in values.yaml

我正在嘗試執行以下操作,因此主機中的 MYVALUE 需要更改以包含發布名稱,無法確定如何執行此操作,因為您不能直接在其中使用 {{ .Release.Name }} 之類的環境變量到 values.yaml 文件。

我確實做了一個 fullnameOverride 並將 fullnameOverride: myrelease-mysql 放在 mysql pod 中,然后 jasper 有 host: myrelease-mysql 工作,所以想知道是否有一種聰明的方法將發布名稱放入 values.yaml 文件。

我假設我需要使用 configMap,因為可以在那里使用 .Release.Name,然后將該配置鍵嵌入到 values.yaml 中。

值.yaml

jasperreports:
  mariadb:
    enabled: false
  externalDatabase:
    host: MYVALUE   // Also tried $MVALUE
    user: sqluser
    database: jasper
  jasperreportsUsername: jasper
  env:
      - name: MYVALUE
        valueFrom:
          configMapKeyRef:
              name: mysql-jasper
              key: mysql_releasename

配置映射

kind: ConfigMap
metadata:
  name: mysql-jasper
data:
  mysql_releasename: {{ .Release.Name }}-"mysql"

謝謝

helm 似乎不支持values.yaml文件中的任何模板渲染功能 - helm GitHub 上有多個主題:

目前此功能尚未實現,因此您需要找到解決方法 - David Maze 的建議似乎是一個很好的方向,但如果您想遵循您的方法,您可以使用以下解決方法,在helm install命令中使用--set標志或使用sed命令和管道來helm install命令。

帶有--set標志的第一個解決方案。

我的values.yaml文件與您的略有不同:

mariadb:
  enabled: false
externalDatabase:
  user: sqluser
  database: jasper
jasperreportsUsername: jasper

那是因為當我使用您的values.yaml我無法將這些值應用到bitnami/jasperreports圖表, helm install命令使用的是此處的默認值。

我正在設置一個 shell 變量RELEASE_NAME ,我將使用它來設置圖表名稱和externalDatabase.host值。

RELEASE_NAME=my-test-release
helm install $RELEASE_NAME bitnami/jasperreports -f values.yaml --set externalDatabase.host=$RELEASE_NAME-mysql

上面的helm install命令將通過設置values.yaml文件中的值 + 設置externalDatabase.host值來覆蓋默認值。

在應用之前,您可以使用helm template命令檢查此解決方案是否按預期工作:

RELEASE_NAME=my-test-release
helm template $RELEASE_NAME bitnami/jasperreports -f values.yaml --set externalDatabase.host=$RELEASE_NAME-mysql
...
- name: MARIADB_HOST
  value: "my-test-release-mariadb"
...

另一種方法是設置一個 bash 變量RELEASE_NAME ,它將在sed命令中使用以輸出修改后的values.yaml文件(我不是在編輯values.yaml文件本身)。 此輸出將通過管道helm installhelm install命令(我還使用了RELEASE_NAME變量)。

values.yaml

mariadb:
  enabled: false
externalDatabase:
  host: MYHOST
  user: sqluser
  database: jasper
jasperreportsUsername: jasper
RELEASE_NAME=my-test-release
sed "s/MYHOST/$RELEASE_NAME-mysql/g" values.yaml | helm install $RELEASE_NAME bitnami/jasperreports -f -

這種方法將設置與第一種方法相同的圖表配置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM