Add helper to retrieve all volumes configuration

This commit is contained in:
Waqar Ahmed
2021-01-29 15:37:44 +05:00
parent 4a895d6b63
commit 2865d86d42
2 changed files with 40 additions and 14 deletions

View File

@@ -15,19 +15,11 @@ Retrieve host path from ix volumes based on a key
*/}}
{{- define "common.configuredHostPath" -}}
{{- $values := . -}}
{{- if and (hasKey $values "hostPathEnabled") (hasKey $values "pathField") -}}
{{- end -}}
{{- if $values.hostPathEnabled -}}
{{- if hasKey $values "pathField" -}}
{{- include "common.validateKeys" (dict "values" $values "checkKeys" (list "pathField")) -}}
{{- $values.pathField -}}
{{- else -}}
{{- fail "Path must be specified when host path is enabled" -}}
{{- end -}}
{{- else if and (hasKey $values "datasetName") (hasKey $values "ixVolumes") -}}
{{- $volDict := dict "datasetName" $values.datasetName "ixVolumes" $values.ixVolumes -}}
{{- include "common.retrieveHostPathFromiXVolume" $volDict -}}
{{- else -}}
{{- fail "Dataset name and ix volumes must be specified" -}}
{{- include "common.validateKeys" (dict "values" $values "checkKeys" (list "datasetName" "ixVolumes")) -}}
{{- include "common.retrieveHostPathFromiXVolume" (dict "datasetName" $values.datasetName "ixVolumes" $values.ixVolumes) -}}
{{- end -}}
{{- end -}}

View File

@@ -1,9 +1,19 @@
{{/*
Retrieve volume configuration
This expects a dictionary in the following format:
{
"name": string,
"emptyDirVolumes": boolean,
"ixVolumes": list,
"hostPathEnabled": boolean,
"pathField": string,
"datasetName": string,
}
*/}}
{{- define "common.volumeConfig" -}}
{{- $values := . -}}
{{- if hasKey $values "name" }}
{{- include "common.validateKeys" (dict "values" $values "checkKeys" (list "name")) -}}
- name: {{ $values.name }}
{{- if $values.emptyDirVolumes -}}
emptyDir: {}
@@ -11,7 +21,31 @@ Retrieve volume configuration
hostPath:
path: {{ template "common.configuredHostPath" $values }}
{{- end -}}
{{- else -}}
{{- fail "Name must be specified for Volume Configuration" -}}
{{- end -}}
{{/*
Retrieve configuration for volumes
This expects a dictionary to be provided in the following format:
{
"ixVolumes": list,
"volumes": [
{
"name": string,
"emptyDirVolumes": boolean,
"hostPathEnabled": boolean,
"pathField": string,
"datasetName": string,
}
] ( list of dicts )
}
*/}}
{{- define "common.volumesConfiguration" -}}
{{- $values := . -}}
{{- include "common.validateKeys" (dict "values" $values "checkKeys" (list "ixVolumes" "volumes")) -}}
{{- range $vol := $values.volumes -}}
{{- $_ := set $vol "ixVolumes" $values.ixVolumes -}}
{{- include "common.volumeConfig" $vol -}}
{{- end -}}
{{- end -}}