Closed
Description
When extraConfigmapMounts
specified, generated Kubernetes yaml will be invalid.
values.yaml
extraConfigmapMounts:
- name: certs-configmap
mountPath: /etc/code-server/ssl/
subPath: certificates.crt
configMap: certs-configmap
readOnly: true
extraSecretMounts:
- name: secret-files
mountPath: /etc/secrets
secretName: code-server-secret-files
readOnly: true
$ helm install -n default code-server ./ci/helm-chart/ -f values.yaml
Error: INSTALLATION FAILED: Deployment.apps "code-server" is invalid: spec.template.spec.containers[0].volumeMounts[1].name: Not found: "certs-configmap"
Actual
$ helm template code-server ./ci/helm-chart/ -f values.yaml
...
---
# Source: code-server/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: code-server
labels:
app.kubernetes.io/name: code-server
helm.sh/chart: code-server-1.0.5
app.kubernetes.io/instance: code-server
app.kubernetes.io/managed-by: Helm
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app.kubernetes.io/name: code-server
app.kubernetes.io/instance: code-server
template:
metadata:
labels:
app.kubernetes.io/name: code-server
app.kubernetes.io/instance: code-server
spec:
securityContext:
fsGroup: 1000
initContainers:
- name: init-chmod-data
image: busybox:latest
imagePullPolicy: IfNotPresent
command:
- sh
- -c
- |
chown -R 1000:1000 /home/coder
securityContext:
runAsUser: 0
volumeMounts:
- name: data
mountPath: /home/coder
containers:
- name: code-server
image: "codercom/code-server:3.12.0"
imagePullPolicy: Always
securityContext:
runAsUser: 1000
env:
- name: PASSWORD
valueFrom:
secretKeyRef:
name: code-server
key: password
volumeMounts:
- name: data
mountPath: /home/coder
- name: certs-configmap
mountPath: /etc/code-server/ssl/
subPath: certificates.crt
readOnly: true
- name: secret-files
mountPath: /etc/secrets
readOnly: true
ports:
- name: http
containerPort: 8080
protocol: TCP
livenessProbe:
httpGet:
path: /
port: http
readinessProbe:
httpGet:
path: /
port: http
resources:
{}
serviceAccountName: code-server
volumes:
- name: data
persistentVolumeClaim:
claimName: code-server
- name: secret-files
secret:
secretName: code-server-secret-files
defaultMode:
# ↑ configMap is missing in volumes.
---
...
Expected
...
volumes:
- name: data
persistentVolumeClaim:
claimName: code-server
- name: certs-configmap
configMap:
name: code-server-certs-configmap
defaultMode:
- name: secret-files
secret:
secretName: code-server-secret-files
defaultMode:
...