アプリケーションをデプロイするためのヘルムチャートがあります。アプリケーションのプロパティに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.json
worksを使用して構成ファイルを提供できます。
チャートがリポジトリから直接デプロイされた場合、ファイルのオーバーライドを実現できますか?
値ファイルにカスタム構成を追加し、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
これが完璧な解決策であるかどうかはわかりませんが、結局このルートをとることになりました。