I want to use Helm chart of RabbitMQ to set up a cluster but when I try to pass the configuration files that we have at the moment to the values.yaml it doesn't work.
The command that I use:
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}}
And what I get for 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
I have to mention that:
indent 4
)You can't use Helm templating in the values.yaml
file. (Unless the chart author has specifically called the tpl
function when the value is used; for this variable it doesn't, and that's usually called out in the chart documentation.)
Your two options are to directly embed the file content in the values.yaml
file you're passing in, or to use the Helm --set-file
option (link to v2 docs).
helm install --dry-run --debug \
stable/rabbitmq \
--name testrmq \
--namespace rmq \
-f rabbit-values.yaml \
--set-file rabbitmq.advancedConfig=rabbitmq.config
There isn't a way to put a file pointer inside your local values YAML file though.