Kubernetes 使用nexus覆盖头盔图表中的values.yaml

Kubernetes 使用nexus覆盖头盔图表中的values.yaml,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,舵图结构 web-service |_ _ _ templates |_ _ _ Chart.yaml |_ _ _ values.yaml 我有舵图设置,其中我的应用程序的舵图是打包的.tgz 并推到Nexus RePo考虑https://localhost:50714/#browse/browse:helm 它被添加到helmrepositories.yaml中,使用 helm repo add nexus https://localhost:50714/ 一旦加入回购协议,

舵图结构

web-service
  |_ _ _ templates
  |_ _ _ Chart.yaml
  |_ _ _ values.yaml
我有舵图设置,其中我的应用程序的舵图是打包的
.tgz
并推到Nexus RePo考虑<代码>https://localhost:50714/#browse/browse:helm

它被添加到helm
repositories.yaml
中,使用

helm repo add nexus https://localhost:50714/
一旦加入回购协议,我就能看到图表

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部署的 我需要对此进行配置,以便我的default values.yaml被另一个文件覆盖 values-override.yaml

web-service
  |_ _ _ templates
  |_ _ _ Chart.yaml
  |_ _ _ values.yaml
  |_ _ _ values-override.yaml
我使用helm提供的使用
-f
命令传递额外文件的功能,但它提供了
值覆盖。yaml
未找到文件

helm install nexus/web-service -f values-override.yaml --version 1.0.0-k8s 

需要一些关于如何以文件格式传递覆盖值的输入。因为替代值可以是动态的。在一个环境中,它可以是一个变量,在另一个环境中,有10个变量需要覆盖

您不需要在图表中添加
值overwrite.yaml
。它是运行命令的本地文件。通常由模板taskrunner引擎创建,如Ansible或类似的动态任务

以下是的文档,您可以使用两种方式在安装过程中传递配置数据:

  • --values
    (或
    -f
    ):指定具有覆盖的YAML文件。这可以多次指定,最右边的文件将优先
  • --set
    :在命令行上指定覆盖
您必须记住,您需要从您的
YAML
文件所在的目录运行
helm install

如果您仍然看到
错误:open values-override.yaml:没有这样的文件或目录
,这意味着
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 \
  "$@"
这意味着您需要将
值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!

覆盖文件应位于当前目录中