使用关系覆盖头盔图中的values.yaml

时间:2020-02-17 08:27:27

标签: kubernetes kubernetes-helm

头盔图表结构

web-service
  |_ _ _ templates
  |_ _ _ Chart.yaml
  |_ _ _ values.yaml

我有头盔图设置,其中我的应用程序头盔图打包为.tgz 并推送至连结回购,请考虑https://localhost:50714/#browse/browse: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 

和应用程序得到部署。因此,使用默认值部署了该应用程序。 我需要使它可配置,以便我的默认values.yaml被另一个文件覆盖,可以说 values-override.yaml

web-service
  |_ _ _ templates
  |_ _ _ Chart.yaml
  |_ _ _ values.yaml
  |_ _ _ values-override.yaml

我使用头盔提供了-f命令来传递额外文件的功能,但是它提供了values-override.yaml未找到的文件

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

需要一些有关如何通过传递的输入,这些反馈以文件格式显示。由于覆盖值可以是动态的。在一个环境中,它可以是1个变量,在另一个环境中,则有10个需要重写的变量

2 个答案:

答案 0 :(得分:0)

您没有在图表中添加values-overwrite.yaml。它是您在本地运行命令的文件。通常由模板任务运行器引擎(例如Ansible或类似应用程序)动态创建。

答案 1 :(得分:0)

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

  • import * as functions from 'firebase-functions'; import * as admin from 'firebase-admin'; import { getLocations, getLocationsByType } from '../service/locationQuery/locationQuery'; //I tried both way, but same error came // admin.initializeApp(functions.config().firebase); admin.initializeApp(); exports.findUsers = functions.https.onCall(async (data: any, context: any) => { (或--values):指定带有替代的YAML文件。可以多次指定,最右边的文件将优先
  • -f:在命令行上指定替代。

您必须记住,需要从--set文件所在的目录运行helm install

如果您仍然看到YAML,则表明Error: open values-override.yaml: no such file or directory可能已作为docker容器安装。如果您使用Helm安装Kubespray,则会发生这种情况,在这种情况下,可以通过以下方法检查将哪个文件夹安装到docker: Helm 您可能会看到类似这样的内容:

$ 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