如何将文件内容传递给Helm values.yaml

时间:2019-08-29 08:23:55

标签: kubernetes rabbitmq kubernetes-helm

我想使用RabbitMQ的Helm图表来设置集群,但是当我尝试将当前具有的配置文件传递给values.yaml时,它将无法工作。

我使用的命令:

helm install --dry-run --debug stable/rabbitmq --name testrmq --namespace rmq -f rabbit-values.yaml

rabbit-values.yaml:

rabbitmq:
  plugins: "rabbitmq_management rabbitmq_federation rabbitmq_federation_management rabbitmq_shovel rabbitmq_shovel_management rabbitmq_mqtt rabbitmq_web_stomp rabbitmq_peer_discovery_k8s"
  advancedConfiguration: |-
    {{ .Files.Get "rabbitmq.config" | quote}}

我为advancedConfiguration得到的东西:

NAME:   testrmq
REVISION: 1
RELEASED: Thu Aug 29 10:09:26 2019
CHART: rabbitmq-5.5.0
USER-SUPPLIED VALUES:
rabbitmq:
  advancedConfiguration: '{{ .Files.Get "rabbitmq.config" | quote}}'
  plugins: rabbitmq_management rabbitmq_federation rabbitmq_federation_management
    rabbitmq_shovel rabbitmq_shovel_management rabbitmq_mqtt rabbitmq_web_stomp rabbitmq_peer_discovery_k8s

我不得不提到:

  • rabbitmq.config是一个Erlang文件
  • 我尝试了其他方法,包括缩进(indent 4

1 个答案:

答案 0 :(得分:4)

您不能在values.yaml文件中使用Helm模板。 (除非图表作者在使用该值时专门调用了tpl函数;对于变量it doesn't,通常在图表文档中将其调用。)

您的两个选择是将文件内容直接嵌入到您要传递的values.yaml文件中,或使用Helm --set-file option

helm install --dry-run --debug \
  stable/rabbitmq \
  --name testrmq \
  --namespace rmq \
  -f rabbit-values.yaml \
  --set-file rabbitmq.advancedConfig=rabbitmq.config

虽然没有办法将文件指针放在本地值YAML文件中。