Closed1
helmのsubchartで任意の値(values.yaml)を上書きしたい
困ったこと
HelmはK8sのリソースを1つずつまとめ上げなくてもコマンド1つで全体をいい感じにまとめてくれるツールなのですが、時々大きなHelm Chartを使っていると「Subchart」と言うものが出現してきます。
例えば、prometheus-community/helm-charts:
dependencies:
- name: kube-state-metrics
version: "4.20.*"
repository: https://prometheus-community.github.io/helm-charts
condition: kubeStateMetrics.enabled
これは親Helm Chart(この場合はprometheus-community/kube-prometheus-stack
)をインストールする際にdependencies
で定義された通称subchartもインストールされます。
更にこのkube-state-metricsのデフォルトの挙動が変化しており、全てのLabels/Annotationsがメトリクスに反映されない仕様(2022年10月現在)です。
v2.0.0 系以降から kube_<オブジェクト名>_labels においてデフォルトでラベル名の出力がされないようになりました。
kube-state-metricsのHelm Chart上には、該当の設定項目があるのですが、親Chart上にはありません。
この場合、どのような方法で親ChartからSubchartのvalues.yamlを変更すれば良いかにつまづきました。
解決策
結論、親チャートのvalues.yamlで以下のように定義することが可能です。
kube-state-metrics:
metricLabelsAllowlist:
- namespaces=[k8s-label-1,k8s-label-n]
これはHelmのコマンドがkube-state-metrics
のSubchart上のvalues.yamlを直接上書きする仕様になっている為です。以下はStackoverflowでの説明です。
このスクラップは2022/10/14にクローズされました