I’m trying to install Traefik using helm_release
. However, to make TLS stuff work, i have to pass a bunch of command line parameters. Should i use helm
to install this chart, my values.yaml
would contain this:
additionalArguments:
- --api.insecure=true\n- --accesslog=true
- --certificatesresolvers.myresolver.acme.tlschallenge=true
- --certificatesresolvers.myresolver.acme.email=my@address.here
- --certificatesresolvers.myresolver.acme.storage=acme.json
- --certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory
However, i can’t make this work with Terraform and helm_release
. Here’s what i tried, and the error messages i got. In all cases i use this “template”:
set {
name = "additionalArguments"
value = xxx
}
With jsonencode
:
jsonencode([
"--api.insecure=true",
"--accesslog=true",
"--certificatesresolvers.myresolver.acme.tlschallenge=true",
"--certificatesresolvers.myresolver.acme.email=my@address.here",
"--certificatesresolvers.myresolver.acme.storage=acme.json",
"--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
])
│ Error: template: traefik/templates/daemonset.yaml:3:14: executing "traefik/templates/daemonset.yaml" at <.>: range can't iterate over ["--api.insecure=true"
With a stringified list (it might have been a bad idea anyway):
"--api.insecure=true,--accesslog=true,--certificatesresolvers.myresolver.acme.tlschallenge=true,--certificatesresolvers.myresolver.acme.email=my@address.here,--certificatesresolvers.myresolver.acme.storage=acme.json,--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
│ Error: template: traefik/templates/daemonset.yaml:3:14: executing "traefik/templates/daemonset.yaml" at <.>: range can't iterate over --api.insecure=true
Same, without commas:
│ Error: template: traefik/templates/daemonset.yaml:3:14: executing "traefik/templates/daemonset.yaml" at <.>: range can't iterate over --api.insecure=true --accesslog=true --certificatesresolvers.myresolver.acme.tlschallenge=true --certificatesresolvers.myresolver.acme.email=my@address.here --certificatesresolvers.myresolver.acme.storage=acme.json --certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory
│ Error: template: traefik/templates/daemonset.yaml:3:14: executing "traefik/templates/daemonset.yaml" at <.>: range can't iterate over --api.insecure=true --accesslog=true --certificatesresolvers.myresolver.acme.tlschallenge=true --certificatesresolvers.myresolver.acme.email=my@address.here --certificatesresolvers.myresolver.acme.storage=acme.json --certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory
With an actual JSON string (i know it seems the same as the first example, but who knows…):
"[\"--api.insecure=true\",\"--accesslog=true\",\"--certificatesresolvers.myresolver.acme.tlschallenge=true\",\"--certificatesresolvers.myresolver.acme.email=my@address.here\",\"--certificatesresolvers.myresolver.acme.storage=acme.json\",\"--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory\"]"
│ Error: template: traefik/templates/daemonset.yaml:3:14: executing "traefik/templates/daemonset.yaml" at <.>: range can't iterate over ["--api.insecure=true"
An actual array (i should have known this won’t work):
["--api.insecure=true","--accesslog=true","--certificatesresolvers.myresolver.acme.tlschallenge=true","--certificatesresolvers.myresolver.acme.email=my@address.here","--certificatesresolvers.myresolver.acme.storage=acme.json","--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"]
│ Inappropriate value for attribute "value": string required.
So the question is, how should i do it?