I want to set wildcard subdomain for my project, using k8s, nginx ingress controller, helm chart:
In ingress.yaml
file:
...
rules:
- host: {{ .Values.ingress.host }}
...
In values.yaml
file, I change host example.local
to *.example.local
:
...
ingress:
enabled: true
host: "*.example.local"
...
Then, when I install chart using helm chart:
Error: YAML parse error on example/templates/ingress.yaml: error converting YAML to JSON: yaml: line 15: did not find expected alphabetic or numeric character
How can I fix it?
Thank for your support.
3
Answers
In your
ingress.yaml
put quotes around the host key.ingress:
enabled: true
host: "*.example.local"
you may need to use "—" instead of
YAML treats strings starting with asterisk in a special way – that’s why the hostname with wildcards like
*.example.local
breaks the ingress onhelm install
.In order to be recognized as strings, the values in
ingress.yaml
file should be quoted with" "
characters:One more option here – adding
| quote
:I’ve reproduced your issue, both these options worked correctly. More information on quoting special characters for YAML is here.