Docker 使用ansible的舵扩展覆盖values.yml
我想创建一个剧本,用于安装IBM ZIP archive提供的外部掌舵图。我们需要用自定义值(例如主机到docker注册表)覆盖values.yml中的一些值 来自IBMs values.yml的示例Docker 使用ansible的舵扩展覆盖values.yml,docker,ansible,ibm-connections,kubernetes-helm,Docker,Ansible,Ibm Connections,Kubernetes Helm,我想创建一个剧本,用于安装IBM ZIP archive提供的外部掌舵图。我们需要用自定义值(例如主机到docker注册表)覆盖values.yml中的一些值 来自IBMs values.yml的示例 image: pullPolicy: IfNotPresent repository: artifactory.swg.usma.ibm.com:6562 由于IBM设置了非公开回购,因此我将图像(从IBMs发行版下载)上载到我的自定义注册表registry.example.com,并希
image:
pullPolicy: IfNotPresent
repository: artifactory.swg.usma.ibm.com:6562
由于IBM设置了非公开回购,因此我将图像(从IBMs发行版下载)上载到我的自定义注册表registry.example.com
,并希望在我的playbook中进行设置:
- 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"
这不起作用,吊舱日志说:
未能提取映像“artifactory.swg.usma.ibm.com:6562/bootstrap:20190204-022029”:rpc错误:代码=未知描述=获取:服务不可用
因此,它仍然使用错误的注册表,我的自定义值似乎被忽略。使用helm
cli,我可以使用--如下设置开关进行覆盖:
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
如何像Ansible中的--set
开关那样覆盖图表的值?
没有提供任何信息。我只使用了这些信息。但我找不到覆盖默认值的方法。当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"