Skip to content

[Helm] Incorrect indentation when passing multiple mountOptions to the storageclass #698

@ewencodes

Description

@ewencodes

What happened:
Helm template failed with custom values when creating the storageclass.

What you expected to happen:
Create the storageclass and place correct mount options.

How to reproduce it:
Add csi-driver-nfs as repository :

helm repo add csi-driver-nfs https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts

Create a values file like below :

storageClass:
  create: true
  name: nfs-csi
  parameters:
    server: ***
    share: /srv/data-disk
    mountPermissions: "0777"
  reclaimPolicy: Delete
  volumeBindingMode: Immediate
  mountOptions: 
    - hard
    - nfsvers=3

And launch the template helm command :

helm template csi-driver-nfs/csi-driver-nfs -f values.yaml

This result as this storageclass that is not valid due to lack of white space (or tabs) before - nfsvers=3 :

install.go:218: [debug] Original chart version: ""
install.go:235: [debug] CHART PATH: /..../helm/repository/csi-driver-nfs-v4.7.0.tgz

---
# Source: csi-driver-nfs/templates/storageclass.yaml

---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: nfs-csi
  labels:
    app.kubernetes.io/instance: "release-name"
    app.kubernetes.io/managed-by: "Helm"
    app.kubernetes.io/name: "csi-driver-nfs"
    app.kubernetes.io/version: "v4.7.0"
    helm.sh/chart: "csi-driver-nfs-v4.7.0"
provisioner: nfs.csi.k8s.io
parameters:
  mountPermissions: "0777"
  server: ***
  share: /srv/data-disk
reclaimPolicy: Delete
volumeBindingMode: Immediate
mountOptions:
  - hard
- nfsvers=3

---
# Source: csi-driver-nfs/templates/csi-nfs-driverinfo.yaml
---
apiVersion: storage.k8s.io/v1
kind: CSIDriver
metadata:
  name: nfs.csi.k8s.io
spec:
  attachRequired: false
  volumeLifecycleModes:
    - Persistent
  fsGroupPolicy: File

Anything else we need to know?:
This fix is to replace the {{ toYaml . }} by {{  toYaml . | nindent 2 }}.

Environment:

  • CSI Driver version: 4.7.0
  • CSI Driver chart version : 4.7.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions