web-dev-qa-db-ja.com

ヘルムの設定マップファイルを上書きする

アプリケーションをデプロイするためのヘルムチャートがあります。アプリケーションのプロパティにconfiguration.jsonファイルを使用し、それらを構成マップにロードします。ただし、ユーザーは通常、独自の構成ファイルを使用します。

デフォルトのconfiguration.jsonファイルは、データダイレクトの下でヘルムチャート内にパッケージ化されています。このファイルは次のように読み取られます

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
{{ (.Files.Glob .Values.appConfigFile).AsConfig | indent 4}}

そして価値観で

appConfigFile: data/configuration.json

ユーザーがチャートをリポジトリから直接インストールする場合、この構成ファイルをどのようにオーバーライドできますか? --set appConfigFile=/path/to/custom.jsonを実行しても構成マップにデータが入力されません。

チャートがディレクトリに解凍されている場合は、カスタム構成ファイルをチャートディレクトリに追加し、--set appConfigFile=customData/custom.jsonworksを使用して構成ファイルを提供できます。

チャートがリポジトリから直接デプロイされた場合、ファイルのオーバーライドを実現できますか?

7
Dheeraj Joshi

値ファイルにカスタム構成を追加し、helm installフラグを使用して-fを実行することが解決策です。

customValues.yaml

overrideConfig: true
customConfig:{
//Add your custom json here as variable value
}

構成マップyaml

#If custom values file passed then overrideConfig variable will be set. 
#So load configmap from customConfig variable
{{ if .Values.overrideConfig}}
    app-config.json : |-
      {{ toJson .Values.customConfig }}
{{ else }}
# Else load from the default configuration available in charts.
{{ (.Files.Glob .Values.appConfigFile).AsConfig indent 4 }}
{{ end }}

カスタム構成が必要な場合

helm install -f customValues.yaml repo/chartName

これが完璧な解決策であるかどうかはわかりませんが、結局このルートをとることになりました。

6
Dheeraj Joshi