我在管道中使用了一个 bash 脚本来升级 Helm 图表以使用最新版本。
helm upgrade \
"${HELM_ENV_RELEASE}" \
"chart-museum/${HELM_CHART}" \
--set-string pod.name="${POD_NAME}" \
--values "${VALUES_FILE}" \
--install \
--force \
--namespace "${K8S_NAMESPACE}" \
--timeout 180s \
--wait;
现在有时,我想使用旧版本。我正在考虑添加一个条件并添加一个变量 HELM_VERSION 并将其与选项
--version
一起使用,如下所示:
if ${HELM_VERSION}!='' // if the helm version is specified and is not empty
helm upgrade \
...
--version "${HELM_VERSION}"
else // if not, then the helm chart should use the latest version
helm upgrade \
...
fi
这是正确的做法吗?如果没有指定,也许有一个我可以使用的默认变量,比如 Docker 中的最新变量?
helm install --version
选项采用语义版本约束,不一定是固定的版本号。像 > 0
这样的约束将匹配任何(非开发)版本,并且可以用作默认版本。
您可以将其与 Bourne shell 默认值语法结合使用
helm upgrade \
--version "${HELM_VERSION:->0}" \
...
(在
"
双引号"
内,防止值包含空格和其他非字母数字字符;在${
大括号}
内显式指示参数扩展;变量HELM_VERSION
;或:-
如果未设置或为空,则为默认值 >0
。)