Helm 升级检查值文件是否存在

问题描述 投票:0回答:2

我有一个带有 helm 升级命令的 helm 部署模板,默认情况下使用

<environment>-values.yaml
作为值文件。我们有用于 dev、prod 或 int 等常规环境的文件,但有时我们必须配置一些自定义环境,我们不想设置任何值文件,而是使用默认值
values.yaml

有什么方法可以检查yaml中文件是否存在?如果

<environment>-values.yaml
存在,则应在 helm 升级中使用它,但如果不存在,则应使用
values.yaml

现在,当 env 值文件不存在时,我们会得到

no such file or directory

kubernetes kubernetes-helm azure-aks
2个回答
0
投票

我想你唯一合理的方法是用一个脚本包装 helm 来检查文件是否存在


0
投票

您可以编写一个 shell 脚本包装器来包含该选项(仅当该选项存在时)。 (这种方法特别受到 BashFAQ/050 的启发,但

${variable+value}
语法是 POSIX shell 语法的一部分,因此不是 bash 特定的。)

#!/bin/sh

# Do environment-specific values exist?
env_values="$ENVIRONMENT-values.yaml"
if [ -f "$env_values" ]; then
  have_env_values=true
fi

# Launch Helm, passing `-f` if the file exists, and passing any
# additional arguments to this script on to Helm.
helm ${have_env_values+-f "$env_values"} "$@"
ENVIRONMENT=production ./run-helm template .

另请记住,始终使用图表的

values.yaml
,但
helm -f
文件中的设置会覆盖它。因此,对于这种情况,如果每个环境值文件不存在,那么不传递
-f
选项就足够了。

© www.soinside.com 2019 - 2024. All rights reserved.