ヘルムで非常にシンプルなチャートを作成しています。これは、Values.yamlファイルのパラメーターがtrueの場合にのみデプロイする必要がある1つのオブジェクト( "/templates/pod.yaml")を使用してチャートをデプロイすることで構成されます。私のケースの例を提供するために、これは私が持っているものです:
/ templates/pod.yaml
{{- if eq .Values.shoudBeDeployed true }}
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
name: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
{{- end}}
Values.yaml
shoudBeDeployed: true
したがって、true
値を指定してshoudBeDeployedを使用すると、helmはそれを正しくインストールします。
私の問題は、shoudBeDeployedがfalse
の場合、(予想どおり)helmは何もデプロイしないが、helmは次のメッセージを表示することです。
Error: release CHART_NAME failed: no objects visited
そしてhelm ls
CHART_NAMEはSTATUS FAILED
。
私の質問は、helmデプロイの失敗としてそれを回避する方法があるかどうかです。ですから、コマンドhelm ls
ShoudBeDeployed変数のロジックをチャートの外に移動し、その値に応じてチャートをデプロイできるかどうかを知っていますが、helmを使用するだけのソリューションがあるかどうか知りたいです。
@pcampanaデプロイするものがない場合、helmのデプロイメントを停止する方法はないと思います。しかし、これが失敗した場合にヘルムチャートを削除するために使用できるトリックです。
helm install --name temp demo --atomic
ここで、demoはヘルムチャートディレクトリで、tempはリリース名です。これが機能するには、リリース名が必須です。
1つのシナリオは、エラーが発生した場合です
エラー:一時の解放に失敗しました:オブジェクトにアクセスしていません
上記のコマンドを使用して、ヘルムチャートを展開できます。
これはあなたに役立つかもしれません。