2025-08-24 00:09:37 +03:00

76 lines
2.6 KiB
Smarty

{{/* Returns iscsi Volume */}}
{{/* Call this template:
{{ include "tc.v1.common.lib.pod.volume.iscsi" (dict "rootCtx" $ "objectData" $objectData) }}
rootCtx: The root context of the chart.
objectData: The object data to be used to render the volume.
*/}}
{{- define "tc.v1.common.lib.pod.volume.iscsi" -}}
{{- $rootCtx := .rootCtx -}}
{{- $objectData := .objectData -}}
{{- if not $objectData.iscsi -}}
{{- fail "Persistence - Expected non-empty [iscsi] object on [iscsi] type" -}}
{{- end -}}
{{- with $objectData.iscsi.fsType -}}
{{- $validFSTypes := (list "ext4" "xfs" "ntfs") -}}
{{- $fsType := tpl . $rootCtx -}}
{{- if not (mustHas $fsType $validFSTypes) -}}
{{- fail (printf "Persistence - Expected [fsType] on [iscsi] type to be one of [%s], but got [%s]" (join ", " $validFSTypes) $fsType) -}}
{{- end -}}
{{- end -}}
{{- if not $objectData.iscsi.targetPortal -}}
{{- fail "Persistence - Expected non-empty [targetPortal] on [iscsi] type" -}}
{{- end -}}
{{- if not $objectData.iscsi.iqn -}}
{{- fail "Persistence - Expected non-empty [iqn] on [iscsi] type" -}}
{{- end -}}
{{- if (kindIs "invalid" $objectData.iscsi.lun) -}}
{{- fail "Persistence - Expected non-empty [lun] on [iscsi] type" -}}
{{- end -}}
{{- $lun := $objectData.iscsi.lun -}}
{{- if (kindIs "string" $lun) -}}
{{- $lun = tpl $lun $rootCtx | float64 -}}
{{- end -}}
{{- $authSession := false -}}
{{- $authDiscovery := false -}}
{{- if $objectData.iscsi.authSession -}}
{{- $authSession = true -}}
{{- end -}}
{{- if $objectData.iscsi.authDiscovery -}}
{{- $authDiscovery = true -}}
{{- end }}
- name: {{ $objectData.shortName }}
iscsi:
targetPortal: {{ tpl $objectData.iscsi.targetPortal $rootCtx }}
{{- with $objectData.iscsi.portals }}
portals:
{{- range $portal := . }}
- {{ tpl $portal $rootCtx | quote }}
{{- end -}}
{{- end }}
iqn: {{ tpl $objectData.iscsi.iqn $rootCtx }}
lun: {{ include "tc.v1.common.helper.makeIntOrNoop" $lun }}
{{- with $objectData.iscsi.iscsiInterface }}
iscsiInterface: {{ tpl . $rootCtx }}
{{- end -}}
{{- with $objectData.iscsi.initiatorName }}
initiatorName: {{ tpl . $rootCtx }}
{{- end -}}
{{- with $objectData.iscsi.fsType }}
fsType: {{ tpl . $rootCtx }}
{{- end }}
chapAuthSession: {{ $authSession }}
chapAuthDiscovery: {{ $authDiscovery }}
{{- if or $authSession $authDiscovery -}}
{{- $secretName := (printf "%s-%s" (include "tc.v1.common.lib.chart.names.fullname" $rootCtx) $objectData.shortName) }}
secretRef:
name: {{ $secretName }}
{{- end -}}
{{- end -}}