I just created a new Helm chart but when I run helm install --dry-run --debug
I get:
Error: YAML parse error on multi-camera-tracking/templates/multi-camera-tracking.yaml: error converting YAML to JSON: yaml: line 30: did not find expected key
And this is my Yaml file:
---
# apiVersion: apps/v1beta1
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: multi-camera-tracking
annotations:
Process: multi-camera-tracking
labels:
io.kompose.service: multi-camera-tracking
spec:
serviceName: multi-camera-tracking
replicas: 1
selector:
matchLabels:
io.kompose.service: multi-camera-tracking
podManagementPolicy: "Parallel"
template:
metadata:
labels:
io.kompose.service: multi-camera-tracking
spec:
containers:
- name: multi-camera-tracking
env:
- name: MCT_PUB_PORT
value: {{ .Values.MCT_PUB_PORT | quote }}
- name: SCT_IP_ADDR_CSV
value: {{ .Values.SCT_IP_ADDR_CSV | quote }}
- name: SCT_PUB_PORT_CSV
value: {{ .Values.SCT_PUB_PORT1 | quote }}, {{ .Values.SCT_PUB_PORT2 | quote }}
image: {{ .Values.image_multi_camera_tracking }}
#name: multi-camera-tracking
ports:
- containerPort: {{ .Values.MCT_PUB_PORT }}
resources:
requests:
cpu: 0.1
memory: 250Mi
limits:
cpu: 4
memory: 10Gi
readinessProbe:
exec:
command:
- ls
- /tmp
initialDelaySeconds: 5
periodSeconds: 60
restartPolicy: Always
#imagePullSecrets:
#- name: wwssecret
---
apiVersion: v1
kind: Service
metadata:
annotations:
Process: multi-camera-tracking
creationTimestamp: null
labels:
io.kompose.service: multi-camera-tracking
name: multi-camera-tracking
spec:
ports:
- name: "MCT_PUB_PORT"
port: {{ .Values.MCT_PUB_PORT }}
targetPort: {{ .Values.MCT_PUB_PORT }}
selector:
io.kompose.service: multi-camera-tracking
status:
loadBalancer: {}
The strange thing is I have created multiple other helm charted and they all are very similar to this but this one doesn't work and produces error.
I found the reason why it is not working. First of all, it is allowed to have comma-separated values but the problematic part was the quotations.
This is the wrong syntax:
value: {{ .Values.SCT_PUB_PORT1 | quote }}, {{ .Values.SCT_PUB_PORT2 | quote }}
And this is the correct one:
value: {{ .Values.SCT_PUB_PORT1 }}, {{ .Values.SCT_PUB_PORT2 }}
In my case, I had written
name: { { template "cp-kafka.fullname" . } }-jaas-configmap
due to that giving error.
Right would be
name: {{ template "cp-kafka.fullname" . }}-jaas-configmap
The difference is space between curly brackets.
I think the template
command with --debug
is the expected debug route for this kind of issue, e.g:
helm template ./yourchart/ -f your-overrides.yaml -n your-ns --debug
Here helm will do its best to try and produce the YAML, and allow you to inspect and see whether you can see errors more clearly.
I suspect it's the value following the key in line 30 that's the issue; it contains a ,
and this makes it an invalid value.
{{ .Values.SCT_PUB_PORT1 | quote }}, {{ .Values.SCT_PUB_PORT2 | quote }}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With