{{- if .Values.storageClass.create -}}
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: {{ .Values.storageClass.name }}
{{- if .Values.storageClass.annotations }}
  annotations:
{{ toYaml .Values.storageClass.annotations | indent 4 }}
{{- end }}
  labels:
    app: {{ include "ceph-csi-cephfs.name" . }}
    chart: {{ include "ceph-csi-cephfs.chart" . }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
    {{- with .Values.commonLabels }}{{ toYaml . | trim | nindent 4 }}{{- end }}
provisioner: {{ .Values.driverName }}
parameters:
  clusterID: {{ .Values.storageClass.clusterID }}
  fsName: {{ .Values.storageClass.fsName }}
{{- if .Values.storageClass.pool }}
  pool: {{ .Values.storageClass.pool }}
{{- end }}
{{- if .Values.storageClass.fuseMountOptions }}
  fuseMountOptions: "{{ .Values.storageClass.fuseMountOptions }}"
{{- end }}
{{- if .Values.storageClass.kernelMountOptions }}
  kernelMountOptions: "{{ .Values.storageClass.kernelMountOptions }}"
{{- end }}
{{- if .Values.storageClass.mounter }}
  mounter: "{{ .Values.storageClass.mounter }}"
{{- end }}
{{- if .Values.storageClass.volumeNamePrefix }}
  volumeNamePrefix: "{{ .Values.storageClass.volumeNamePrefix }}"
{{- end }}
  csi.storage.k8s.io/provisioner-secret-name: {{ .Values.storageClass.provisionerSecret }}
{{- if .Values.storageClass.provisionerSecretNamespace }}
  csi.storage.k8s.io/provisioner-secret-namespace: {{ .Values.storageClass.provisionerSecretNamespace }}
{{ else }}
  csi.storage.k8s.io/provisioner-secret-namespace: {{ .Release.Namespace }}
{{- end }}
  csi.storage.k8s.io/controller-expand-secret-name: {{ .Values.storageClass.controllerExpandSecret }}
{{- if .Values.storageClass.controllerExpandSecretNamespace }}
  csi.storage.k8s.io/controller-expand-secret-namespace: {{ .Values.storageClass.controllerExpandSecretNamespace }}
{{ else }}
  csi.storage.k8s.io/controller-expand-secret-namespace: {{ .Release.Namespace }}
{{- end }}
  csi.storage.k8s.io/node-stage-secret-name: {{ .Values.storageClass.nodeStageSecret }}
{{- if .Values.storageClass.nodeStageSecretNamespace }}
  csi.storage.k8s.io/node-stage-secret-namespace: {{ .Values.storageClass.nodeStageSecretNamespace }}
{{ else }}
  csi.storage.k8s.io/node-stage-secret-namespace: {{ .Release.Namespace }}
{{- end }}
reclaimPolicy: {{ .Values.storageClass.reclaimPolicy }}
allowVolumeExpansion: {{ .Values.storageClass.allowVolumeExpansion }}
{{- if .Values.storageClass.mountOptions }}
mountOptions:
  {{- range .Values.storageClass.mountOptions }}
  - {{ . }}
  {{- end }}
{{- end }}
{{- end -}}