Is this a request for help?:
Is this a BUG REPORT or FEATURE REQUEST? (choose one):
BUG REPORT
Version of Helm and Kubernetes:
K8s 1.9.something (not really relevant)
$ helm version
Client: &version.Version{SemVer:"v2.9.0", GitCommit:"f6025bb9ee7daf9fee0026541c90a6f557a3e0bc", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.9.0", GitCommit:"f6025bb9ee7daf9fee0026541c90a6f557a3e0bc", GitTreeState:"clean"}
Which chart:
stable/nginx-ingress
What happened:
You cannot use --set tcp='8080: "default/example-tcp-svc:9000"'
If you provide a single object it fails in templates/controller-service.yaml:
executing "nginx-ingress/templates/controller-service.yaml" at <.Values.tcp>: range can't iterate over 8080: "default/example-tcp-svc:9000"
If you provide a list the output of templates/tcp-configmap.yaml fails at runtime with:
UPGRADE FAILED: failed to create resource: ConfigMap in version "v1" cannot be handled as a ConfigMap: v1.ConfigMap: Data: ReadMapCB: expect { or n, parsing 27 ...","data":[... at {"apiVersion":"v1","data":["8080: \"default/example-tcp-svc:9000\""]
What you expected to happen:
A valid template would be created.
How to reproduce it (as minimally and precisely as possible):
helm install nginx-ingress stable/nginx-ingress --set tcp='8080: "default/example-tcp-svc:9000"'
Anything else we need to know:
The way that the two templates are treating the tcp values are incompatible. I think the solution is for templates/tcp-configmap.yaml to add a range loop.
This synthax should work, no?
--set tcp.8080="default/example-tcp-svc:9000"
you're right. It would be helpful if it were more obvious that this is the correct syntax!
Thanks this is really helpful. Tested and it works.
This synthax should work, no?
--set tcp.8080="default/example-tcp-svc:9000"
Could you pls update the readme file with this?
Most helpful comment
This synthax should work, no?
--set tcp.8080="default/example-tcp-svc:9000"