[英]Override values.yaml in helm chart using nexus
掌舵图结构
web-service
|_ _ _ templates
|_ _ _ Chart.yaml
|_ _ _ values.yaml
我有舵图设置,其中我的应用程序的舵图被打包为.tgz
并推送到 nexus 存储库,请考虑https://localhost:50714/#browse/browse:helm
使用以下命令将其添加到 helm repositories.yaml
中
helm repo add nexus https://localhost:50714/
添加 Repo 后,我可以看到图表
helm search
NAME CHART VERSION APP VERSION DESCRIPTION
nexus/web-service 1.0.0-k8s Custom microservice Helm chart
要安装我触发以下命令
helm install nexus/ioc-web-service --version 1.0.0-k8s
和应用程序得到部署。 所以应用程序是使用 default values.yaml 部署的,我需要进行配置,以便我的默认 values.yaml 被另一个文件覆盖
web-service
|_ _ _ templates
|_ _ _ Chart.yaml
|_ _ _ values.yaml
|_ _ _ values-override.yaml
我使用 helm 提供了使用-f
命令传递额外文件的功能,但它提供了未找到的values-override.yaml
文件
helm install nexus/web-service -f values-override.yaml --version 1.0.0-k8s
需要一些关于如何以文件格式获取传递覆盖值的输入。 因为覆盖值可以是动态的。 在一个环境中,它可以是 1 个变量,而在另一个环境中,有 10 个变量需要被覆盖
您没有在图表中添加values-overwrite.yaml
。 它是您在本地运行命令的文件。 通常由模板 taskrunner 引擎(如 Ansible 或类似的)动态创建。
以下是安装前自定义图表的文档,您可以在安装期间使用两种传递配置数据的方法:
--values
(或-f
):指定带有覆盖的 YAML 文件。 这可以指定多次,最右边的文件将优先--set
:在命令行上指定覆盖。
您必须记住,您需要从YAML
文件所在的目录运行helm install
。
如果您仍然看到Error: open values-override.yaml: no such file or directory
,这意味着Helm
可能安装为 docker 容器。 如果您使用Kubespray
安装Helm
会发生这种情况,在这种情况下可以通过以下方式检查哪个文件夹正在安装到 docker: $ cat /usr/local/bin/helm
您可能会看到如下内容:
cat /usr/local/bin/helm
#!/bin/bash
/usr/bin/docker run --rm \
--net=host \
--name=helm \
-v /etc/ssl:/etc/ssl:ro \
-v /root/.helm:/root/.helm:rw \
-v /usr/share/ca-certificates:/usr/share/ca-certificates:ro \
lachlanevenson/k8s-helm:2.7.0 \
"$@"
这意味着您需要将values-override.yaml
复制到/root/.helm
目录。 您还可以通过$ helm init
检查目录:
$ helm init
$HELM_HOME has been configured at /root/.helm.
Warning: Tiller is already installed in the cluster.
(Use --client-only to suppress this message, or --upgrade to upgrade Tiller to the current version.)
Happy Helming!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.