5

テンプレートを使用して 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

テンプレートを含めるときに、テンプレート名に変数を使用する方法はありますか?

4

1 に答える 1