Files
dsk-devops-toolchains/helm/openebs/charts/mayastor/templates/_helpers.tpl
2024-01-03 17:29:11 +09:00

210 lines
6.7 KiB
Smarty

{{/* vim: set filetype=mustache: */}}
{{/*
Renders a value that contains template.
Usage:
{{ include "render" ( dict "value" .Values.path.to.the.Value "context" $) }}
*/}}
{{- define "render" -}}
{{- if typeIs "string" .value }}
{{- tpl .value .context }}
{{- else }}
{{- tpl (.value | toYaml) .context }}
{{- end }}
{{- end -}}
{{/*
Renders the CORE server init container, if enabled
Usage:
{{ include "base_init_core_containers" . }}
*/}}
{{- define "base_init_core_containers" -}}
{{- if .Values.base.initCoreContainers.enabled }}
{{- include "render" (dict "value" .Values.base.initCoreContainers.containers "context" $) | nindent 8 }}
{{- end }}
{{- end -}}
{{/*
Renders the HA NODE AGENT init container, if enabled
Usage:
{{ include "base_init_ha_node_containers" . }}
*/}}
{{- define "base_init_ha_node_containers" -}}
{{- if .Values.base.initHaNodeContainers.enabled }}
{{- include "render" (dict "value" .Values.base.initHaNodeContainers.containers "context" $) | nindent 8 }}
{{- end }}
{{- end -}}
{{/*
Renders the base init containers for all deployments, if any
Usage:
{{ include "base_init_containers" . }}
*/}}
{{- define "base_init_containers" -}}
{{- if .Values.base.initContainers.enabled }}
{{- include "render" (dict "value" .Values.base.initContainers.containers "context" $) | nindent 8 }}
{{- end }}
{{- include "jaeger_agent_init_container" . }}
{{- end -}}
{{/*
Renders the jaeger agent init container, if enabled
Usage:
{{ include "jaeger_agent_init_container" . }}
*/}}
{{- define "jaeger_agent_init_container" -}}
{{- if .Values.base.jaeger.enabled }}
{{- if .Values.base.jaeger.initContainer }}
{{- include "render" (dict "value" .Values.base.jaeger.agent.initContainer "context" $) | nindent 8 }}
{{- end }}
{{- end }}
{{- end -}}
{{/*
Renders the base image pull secrets for all deployments, if any
Usage:
{{ include "base_pull_secrets" . }}
*/}}
{{- define "base_pull_secrets" -}}
{{- if .Values.base.imagePullSecrets.enabled }}
{{- include "render" (dict "value" .Values.base.imagePullSecrets.secrets "context" $) | nindent 8 }}
{{- end }}
{{- end -}}
{{/*
Renders the REST server init container, if enabled
Usage:
{{- include "rest_agent_init_container" . }}
*/}}
{{- define "rest_agent_init_container" -}}
{{- if .Values.base.initRestContainer.enabled }}
{{- include "render" (dict "value" .Values.base.initRestContainer.initContainer "context" $) | nindent 8 }}
{{- end }}
{{- end -}}
{{/*
Renders the jaeger scheduling rules, if any
Usage:
{{ include "jaeger_scheduling" . }}
*/}}
{{- define "jaeger_scheduling" -}}
{{- if index .Values "jaeger-operator" "affinity" }}
affinity:
{{- include "render" (dict "value" (index .Values "jaeger-operator" "affinity") "context" $) | nindent 4 }}
{{- end }}
{{- if index .Values "jaeger-operator" "tolerations" }}
tolerations:
{{- include "render" (dict "value" (index .Values "jaeger-operator" "tolerations") "context" $) | nindent 4 }}
{{- end }}
{{- end -}}
{{/* Generate Core list specification (-l param of io-engine) */}}
{{- define "cpuFlag" -}}
{{- include "coreListUniq" . -}}
{{- end -}}
{{/* Get the number of cores from the coreList */}}
{{- define "coreCount" -}}
{{- include "coreListUniq" . | split "," | len -}}
{{- end -}}
{{/* Get a list of cores as a comma-separated list */}}
{{- define "coreListUniq" -}}
{{- if .Values.io_engine.coreList -}}
{{- $cores_pre := .Values.io_engine.coreList -}}
{{- if not (kindIs "slice" .Values.io_engine.coreList) -}}
{{- $cores_pre = list $cores_pre -}}
{{- end -}}
{{- $cores := list -}}
{{- range $index, $value := $cores_pre | uniq -}}
{{- $value = $value | toString | replace " " "" }}
{{- if eq ($value | int | toString) $value -}}
{{- $cores = append $cores $value -}}
{{- end -}}
{{- end -}}
{{- $first := first $cores | required (print "At least one core must be specified in io_engine.coreList") -}}
{{- $cores | join "," -}}
{{- else -}}
{{- if gt 1 (.Values.io_engine.cpuCount | int) -}}
{{- fail ".Values.io_engine.cpuCount must be >= 1" -}}
{{- end -}}
{{- untilStep 1 (add 1 .Values.io_engine.cpuCount | int) 1 | join "," -}}
{{- end -}}
{{- end }}
{{/*
Adds the project domain to labels
Usage:
{{ include "label_prefix" . }}/release: {{ .Release.Name }}
*/}}
{{- define "label_prefix" -}}
{{ $product := .Files.Get "product.yaml" | fromYaml }}
{{- print $product.domain -}}
{{- end -}}
<<<<<<< HEAD
{{/*
Creates the tolerations based on the global and component wise tolerations, with early eviction
Usage:
{{ include "tolerations_with_early_eviction" (dict "template" . "localTolerations" .Values.path.to.local.tolerations) }}
*/}}
{{- define "tolerations_with_early_eviction" -}}
{{- toYaml .template.Values.earlyEvictionTolerations | nindent 8 }}
{{- if .localTolerations }}
{{- toYaml .localTolerations | nindent 8 }}
{{- else if .template.Values.tolerations }}
{{- toYaml .template.Values.tolerations | nindent 8 }}
{{- end }}
{{- end }}
{{/*
Creates the tolerations based on the global and component wise tolerations
Usage:
{{ include "tolerations" (dict "template" . "localTolerations" .Values.path.to.local.tolerations) }}
*/}}
{{- define "tolerations" -}}
{{- if .localTolerations }}
{{- toYaml .localTolerations | nindent 8 }}
{{- else if .template.Values.tolerations }}
{{- toYaml .template.Values.tolerations | nindent 8 }}
{{- end }}
{{- end }}
{{/*
Generates the priority class name, with the given `template` and the `localPriorityClass`
Usage:
{{ include "priority_class" (dict "template" . "localPriorityClass" .Values.path.to.local.priorityClassName) }}
*/}}
{{- define "priority_class" -}}
{{- if typeIs "string" .localPriorityClass }}
{{- if .localPriorityClass -}}
{{ printf "%s" .localPriorityClass -}}
{{- else if .template.Values.priorityClassName -}}
{{ printf "%s" .template.Values.priorityClassName -}}
{{- else -}}
{{ printf "" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Generates the priority class name, with the given `template` and the `localPriorityClass`, sets to mayastor default priority class
if both are empty
Usage:
{{ include "priority_class_with_default" (dict "template" . "localPriorityClass" .Values.path.to.local.priorityClassName) }}
*/}}
{{- define "priority_class_with_default" -}}
{{- if typeIs "string" .localPriorityClass }}
{{- if .localPriorityClass -}}
{{ printf "%s" .localPriorityClass -}}
{{- else if .template.Values.priorityClassName -}}
{{ printf "%s" .template.Values.priorityClassName -}}
{{- else -}}
{{ printf "%s-cluster-critical" .template.Release.Name -}}
{{- end -}}
{{- end -}}
{{- end -}}