テンプレートを使用して kubernetes デプロイメントの特定の部分を設定するヘルム チャートのデザインを作成しました。テンプレートはクラウド プロバイダーごとです。
GCE用のテンプレート、AWS用のテンプレートなど。
その後、テンプレートは Helm のチャートのデプロイ部分に含まれます。
これを行うためのかなりの方法があります。対象となるクラウド プロバイダーに従ってすべてのテンプレートに名前を付け、values.yaml 内の変数を使用してこれを指示します。
そして、たくさんの if ステートメントを使ったあまりきれいではない方法があります。
必要なメンテナンスとダウンストリームのコードがはるかに少ないため、きれいな方法を使用したいのですが、次を機能させることができません。
{{- include {{.Values.resources.cloudProvider}} .}}
このステートメントに{{.Values.resources.cloudProvider}}
は、クラウド プロバイダー名 (aws、gce など) が含まれています。
私が得るエラーは次のとおりです。
Error: parse error in "testModel/templates/deployment.yaml":
template: testModel/templates/deployment.yaml:28:
unexpected "{" in operand
私がテストした他の方法は次のとおりです。
{{- include (.Values.resources.cloudProvider) .}}
これにより、次のことが得られます。
Error: render error in "testModel/templates/deployment.yaml": template:
testModel/templates/deployment.yaml:29:23:
executing "testModel/templates/deployment.yaml"
at <.Values.resources.c...>: invalid value; expected string
テンプレートを含めるときに、テンプレート名に変数を使用する方法はありますか?