我正在使用Helm 3创建通用的go微服务图表。我想有条件地添加postgresql子图表。与documentation和其他question中一样,我首先添加对Chart.yaml
的依赖性
dependencies: - name: postgresql version: "8.9.1" repository: "https://charts.bitnami.com/bitnami" condition: postgresql.enabled
然后在
values.yaml
中创建此标志
# # enable pgsql subchart to be deployed # postgresql: enabled: false
然后,我使用
--set postgresql.enabled=true|false
来切换是否要部署db statefulset。
根据我的CWD(当前工作目录)运行helm 3 CLI,我得到一些奇怪的行为。如果我与图表位于同一目录中并运行(请注意末尾的.
):
helm install my-chart --set postgresql.enabled=true --set postgresql.postgresqlPassword=password --set postgresql.postgresqlDatabase=test .
它正常工作,并且数据库已部署。
但是,如果我从另一个目录调用安装并提供相对路径,或者即使我正在使用Ansible运行相同的CLI行,则数据库将永远不会部署,例如:
helm install my-chart --set postgresql.enabled=true --set postgresql.postgresqlPassword=password --set postgresql.postgresqlDatabase=test ../my-chart-repo/charts/my-chart/
这可能是错误吗?我做错什么了吗?
编辑
在shell脚本中运行安装时也遇到同样的问题(未部署数据库:)>
helm_install() { CWD=$(pwd) cd "../my-helm-charts/$1" || error_exit 'Unable to find helm chart dir' helm dependency update helm dependency list if [ -n "${DEPLOYDB}" ]; then echo '####################' echo 'Enabling postgresql' echo '####################' set -x helm install "$1" \ --set postgres.enabled=true \ --set postgresql.postgresqlPassword=password \ --set postgresql.postgresqlDatabase=test . set +x else helm install "$1" fi cd "${CWD}" || error_exit 'Unable to return to origin dir' }
我正在使用Helm 3创建通用的go微服务图表。我想有条件地添加postgresql子图表。像在文档中和其他问题一样,我首先将此依赖关系添加到图表中。...
已通过头盔v3.1.2版进行检查。通过提供图表的相对路径,可以有条件地部署依赖项。这是命令,我以前检查过:-
$helm install test --set postgresql.enabled=true ../test/