54 lines
1.9 KiB
Smarty
54 lines
1.9 KiB
Smarty
{{/* Returns device (hostPath) Volume */}}
|
|
{{/* Call this template:
|
|
{{ include "tc.v1.common.lib.pod.volume.device" (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.device" -}}
|
|
{{- $rootCtx := .rootCtx -}}
|
|
{{- $objectData := .objectData -}}
|
|
|
|
{{- $hostPathType := "" -}}
|
|
{{- if $objectData.hostPathType -}}
|
|
{{- $hostPathType = tpl $objectData.hostPathType $rootCtx -}}
|
|
{{- end -}}
|
|
|
|
{{- if not $objectData.hostPath -}}
|
|
{{- fail "Persistence - Expected non-empty [hostPath] on [device] type" -}}
|
|
{{- end -}}
|
|
{{- $hostPath := tpl $objectData.hostPath $rootCtx -}}
|
|
|
|
{{- if not (hasPrefix "/" $hostPath) -}}
|
|
{{- fail "Persistence - Expected [hostPath] to start with a forward slash [/] on [device] type" -}}
|
|
{{- end -}}
|
|
|
|
{{- $charDevices := (list "tty") -}}
|
|
{{- if not $hostPathType -}}
|
|
{{- range $char := $charDevices -}}
|
|
{{- if hasPrefix (printf "/dev/%v" $char) $hostPath -}}
|
|
{{- $hostPathType = "CharDevice" -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- $blockDevices := (list "sd" "hd" "nvme") -}}
|
|
{{- if not $hostPathType -}}
|
|
{{- range $block := $blockDevices -}}
|
|
{{- if hasPrefix (printf "/dev/%v" $block) $hostPath -}}
|
|
{{- $hostPathType = "BlockDevice" -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- $types := (list "DirectoryOrCreate" "Directory" "FileOrCreate" "File" "Socket" "CharDevice" "BlockDevice") -}}
|
|
{{- if and $hostPathType (not (mustHas $hostPathType $types)) -}}
|
|
{{- fail (printf "Persistence - Expected [hostPathType] to be one of [%s], but got [%s]" (join ", " $types) $hostPathType) -}}
|
|
{{- end }}
|
|
- name: {{ $objectData.shortName }}
|
|
hostPath:
|
|
path: {{ $hostPath }}
|
|
{{- with $hostPathType }}
|
|
type: {{ $hostPathType }}
|
|
{{- end -}}
|
|
{{- end -}}
|