gpt4 book ai didi

docker - 使用 ansible 的 helm 扩展覆盖 values.yml

转载 作者:行者123 更新时间:2023-12-01 13:16:01 28 4
gpt4 key购买 nike

我想创建一个剧本来安装由 IBM 的 ZIP 存档提供的外部 Helm chart 。我们需要通过自定义值(例如主机到 docker 注册表)覆盖 values.yml 中的某些值。

来自 IBM values.yml 的示例

image:
pullPolicy: IfNotPresent
repository: artifactory.swg.usma.ibm.com:6562

由于 IBM 设置了非公开存储库,因此我将图像(从 IBM 版本下载)上传到我的自定义注册表 registry.example.com并想在我的剧本中设置它:
- name: CNX Bootstrap
helm:
# Port forwarding from tiller to localhost
host: localhost
state: present
name: bootstrap-test
namespace: "{{namespace}}"
chart:
name: bootstrap
source:
type: directory
location: /install/component-pack/IC-ComponentPack-6.0.0.7/microservices_connections/hybridcloud/helmbuilds/bootstrap
values:
image.repository: "registry.example.com"

这不起作用,pod 日志说:

Failed to pull image "artifactory.swg.usma.ibm.com:6562/bootstrap:20190204-022029": rpc error: code = Unknown desc = Get https://artifactory.swg.usma.ibm.com:6562/v1/_ping: Service Unavailable



所以它仍然使用错误的注册表和我的自定义 values似乎被忽略了。使用 helm cli,我可以使用 --set 覆盖像这样切换:
helm install --name=bootstrap /install/component-pack/IC-ComponentPack-6.0.0.7/microservices_connections/hybridcloud/helmbuilds/bootstrap-0.1.0-20190204-022029.tgz --set image.repository=registry.example.com

如何覆盖图表的值,如 --set开关在 Ansible 中吗?

module documentation不提供任何信息。我只有 found out那个 pyhelm用来。但是我找不到覆盖默认值的方法。

最佳答案

当 PyHelm 获取从 Ansible 图表定义传递的值时,它会作为字典传递,然后将其转换为 yaml。 Tiller(Helm 的服务器端组件)期望 yaml 传递的值保持嵌套。因此,您需要将它们作为嵌套字典存储在 Ansible 定义中。

在你的情况下,它看起来像:

- name: CNX Bootstrap
helm:
# Port forwarding from tiller to localhost
host: localhost
state: present
name: bootstrap-test
namespace: "{{namespace}}"
chart:
name: bootstrap
source:
type: directory
location: /install/component-pack/IC-ComponentPack-6.0.0.7/microservices_connections/hybridcloud/helmbuilds/bootstrap
values:
image:
repository: "registry.example.com"

关于docker - 使用 ansible 的 helm 扩展覆盖 values.yml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54946434/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com