A lot of work on the workload library
This commit is contained in:
117
charts/workload/templates/deployment/_containers.tpl
Normal file
117
charts/workload/templates/deployment/_containers.tpl
Normal file
@ -0,0 +1,117 @@
|
||||
{{- define "helper.deployment.containers" -}} {{- /* (define) */ -}}
|
||||
{{- if not .Values.workload.containers -}} {{- /* (1) */ -}}
|
||||
{{ fail ".Values.workload.containers can not be empty (heler.deployment.containers)" }}
|
||||
{{- end -}} {{- /* /(1) */ -}}
|
||||
containers:
|
||||
{{- range $k,$v := .Values.workload.containers }} {{- /* (1) */}}
|
||||
- name: {{ $k }}
|
||||
{{- include "helper.workload.containerSecurityContext" . | nindent 4 -}}
|
||||
{{- include "helper.workload.image" (dict "Chart" $.Chart "Image" .image) | indent 4 -}}
|
||||
{{- include "helper.container.command" $v | nindent 4 -}}
|
||||
{{- include "helper.container.args" $v | nindent 4 -}}
|
||||
{{- include "helper.container.ports" (dict "Context" $ "Container" $v) | nindent 4 -}}
|
||||
{{- include "helper.container.volumeMounts" $v | nindent 4 -}}
|
||||
{{- include "helper.container.envFrom" (dict "Context" $ "Container" $v) | nindent 4 -}}
|
||||
{{- end }} {{- /* /(1) */}}
|
||||
{{- end -}} {{- /* /(define) */ -}}
|
||||
|
||||
{{- define "helper.deployment.initContainers" -}} {{- /* (define) */ -}}
|
||||
{{- if .Values.workload.initContainers -}} {{- /* (1) */ -}}
|
||||
initContainers:
|
||||
{{- range $k,$v := .Values.workload.initContainers }} {{- /* (2) */}}
|
||||
- name: {{ $k }}
|
||||
{{- include "helper.workload.containerSecurityContext" . | nindent 4 -}}
|
||||
{{- include "helper.workload.image" (dict "Chart" $.Chart "Image" .image) | indent 4 -}}
|
||||
{{- include "helper.container.command" $v | nindent 4 -}}
|
||||
{{- include "helper.container.args" $v | nindent 4 -}}
|
||||
{{- include "helper.container.ports" (dict "Context" $ "Container" $v) | nindent 4 -}}
|
||||
{{- include "helper.container.volumeMounts" $v | nindent 4 -}}
|
||||
{{- include "helper.container.envFrom" (dict "Context" $ "Container" $v) | nindent 4 -}}
|
||||
{{- end }} {{- /* /(1) */}}
|
||||
{{- end -}} {{- /* /(2) */ -}}
|
||||
|
||||
{{- end -}} {{- /* /(define) */ -}}
|
||||
|
||||
{{- define "helper.deployment.container" -}} {{- /* (define) */ -}}
|
||||
{{- end -}} {{- /* /(define) */ -}}
|
||||
|
||||
{{- define "helper.container.command" -}} {{- /* (define) */ -}}
|
||||
{{- with .command }} {{- /* (1) */ -}}
|
||||
command:
|
||||
{{ . | toYaml | indent 2 }}
|
||||
{{- end -}} {{- /* /(1) */ -}}
|
||||
{{- end -}} {{- /* /(define) */ -}}
|
||||
|
||||
{{- define "helper.container.args" -}} {{- /* (define) */ -}}
|
||||
{{- with .args }} {{- /* (1) */ -}}
|
||||
args:
|
||||
{{ . | toYaml | indent 2 }}
|
||||
{{- end -}} {{- /* /(1) */ -}}
|
||||
{{- end -}} {{- /* /(define) */ -}}
|
||||
|
||||
{{- define "helper.container.ports" -}} {{- /* (define) */ -}}
|
||||
{{- if .Container.ports -}} {{- /* (1) */ -}}
|
||||
ports:
|
||||
{{- range $p := .Container.ports -}} {{- /* (2) */ -}}
|
||||
{{- if kindIs "string" $p }} {{- /* (3) */}}
|
||||
- containerPort: {{ index (index $.Context.Values.service.ports $p) "targetPort" }}
|
||||
protocol: {{ index (index $.Context.Values.service.ports $p) "protocol" }}
|
||||
{{- else }}
|
||||
{{ print "-" | indent 2 | -}}
|
||||
{{ $p | toYaml | nindent 4 -}}
|
||||
{{- end -}} {{- /* /(3) */ -}}
|
||||
{{- end -}} {{- /* /(2) */ -}}
|
||||
{{- end -}} {{- /* /(1) */ -}}
|
||||
{{- end -}} {{- /* /(define) */ -}}
|
||||
|
||||
{{- define "helper.container.volumeMounts" -}} {{- /* (define) */ -}}
|
||||
{{- if .mounts -}} {{- /* (1) */ -}}
|
||||
volumeMounts:
|
||||
{{- range $mountKind, $mountData := .mounts }} {{- /* (2) */}}
|
||||
{{- if eq $mountKind "storage" }} {{- /* (3) */}}
|
||||
{{- range $mountName, $mountEntry := $mountData }} {{- /* (4) */}}
|
||||
- name: {{ printf "%s-storage" $mountName }}
|
||||
mountPath: {{ $mountEntry.path }}
|
||||
{{- end }} {{- /* /(4) */}}
|
||||
{{- end }} {{- /* /(3) */}}
|
||||
{{- if eq $mountKind "files" }} {{- /* (3) */}}
|
||||
{{- range $mountName, $mountEntry := $mountData }} {{- /* (4) */}}
|
||||
- name: {{ printf "%s-file" $mountName }}
|
||||
mountPath: {{ $mountEntry.path }}
|
||||
{{- end }} {{- /* /(4) */}}
|
||||
{{- end }} {{- /* /(3) */}}
|
||||
{{- if eq $mountKind "extraVolumes" }} {{- /* (3) */}}
|
||||
{{- range $mountName, $mountEntry := $mountData }} {{- /* (4) */}}
|
||||
- name: {{ printf "%s-extra" $mountName }}
|
||||
mountPath: {{ $mountEntry.path }}
|
||||
{{- end }} {{- /* /(4) */}}
|
||||
{{- end }} {{- /* /(3) */}}
|
||||
{{- end }} {{- /* /(2) */}}
|
||||
{{- end }} {{- /* /(1) */}}
|
||||
{{- end -}} {{- /* /(define) */ -}}
|
||||
|
||||
{{- define "helper.container.envFrom" -}} {{- /* (define) */ -}}
|
||||
{{/* If env should be set from a Configmap/Secret */}}
|
||||
{{- if .Container.envFrom }} {{- /* (1) */}}
|
||||
envFrom:
|
||||
{{- range $k := .Container.envFrom -}} {{- /* (2) */ -}}
|
||||
{{/* If envFrom entry is a string, then refer to the env created by the library */}}
|
||||
{{- if kindIs "string" $k -}} {{- /* (3) */ -}}
|
||||
{{- if (index $.Context.Values.env $k) -}} {{- /* (4) */ -}}
|
||||
{{- if (index $.Context.Values.env $k).sensitive }} {{- /* (5) */}}
|
||||
- secretRef:
|
||||
{{- else }}
|
||||
- configMapRef:
|
||||
{{- end }} {{- /* /(5) */}}
|
||||
name: {{- printf " %s-%s" (include "chart.fullname" $.Context) $k -}}
|
||||
{{- end -}} {{- /* /(4) */}}
|
||||
{{- /* Otherwise try to add references directly (if Secrets/ConfigMaps are not managed by the chart) */ -}}
|
||||
{{- else -}}
|
||||
{{- range $k, $v := $k }} {{- /* (5) */}}
|
||||
- {{ $k }}:
|
||||
{{ toYaml $v | indent 14 }}
|
||||
{{- end -}} {{- /* /(4) */ -}}
|
||||
{{- end -}} {{- /* /(3) */ -}}
|
||||
{{- end -}} {{- /* /(2) */ -}}
|
||||
{{- end -}} {{- /* /(1) */ -}}
|
||||
{{- end -}} {{- /* /(define) */ -}}
|
11
charts/workload/templates/deployment/_deployment.tpl
Normal file
11
charts/workload/templates/deployment/_deployment.tpl
Normal file
@ -0,0 +1,11 @@
|
||||
{{- define "lib.deployment" -}}
|
||||
# ---------------------------------------------------------------------
|
||||
# The deployment is build within the helm library
|
||||
# please check the lib/tempaltes/deployment/base
|
||||
# ---------------------------------------------------------------------
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
{{- include "lib.metadata" (dict "Context" . "customName" "")}}
|
||||
{{- include "deployment.spec" . }}
|
||||
{{- end -}}
|
||||
|
29
charts/workload/templates/deployment/_spec.tpl
Normal file
29
charts/workload/templates/deployment/_spec.tpl
Normal file
@ -0,0 +1,29 @@
|
||||
{{/*
|
||||
This is a builder for deployments
|
||||
*/}}
|
||||
|
||||
{{- define "deployment.spec" }} {{- /* (define) */}}
|
||||
# ---------------------------------------------------------------------
|
||||
# The spec is build within the helm library
|
||||
# please check the lib/templates/deployment/spec
|
||||
# ---------------------------------------------------------------------
|
||||
spec:
|
||||
replicas: {{ .Values.workload.replicas | default 1}}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{ include "metadata.selectorLabels" . | indent 6 }}
|
||||
{{ include "lib.deployment.template" . | indent 2 }}
|
||||
|
||||
{{- end -}}
|
||||
|
||||
{{- define "lib.deployment.template" -}} {{- /* (define) */ -}}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "metadata.labels" . | nindent 6 }}
|
||||
spec:
|
||||
{{- include "helper.workload.securityContext" . | nindent 4 -}}
|
||||
{{- include "helper.deployment.volumes" . | nindent 4 }}
|
||||
{{- include "helper.deployment.containers" . | nindent 4 }}
|
||||
{{- include "helper.deployment.initContainers" . | nindent 4 }}
|
||||
{{- end -}} {{- /* /(define) */ -}}
|
32
charts/workload/templates/deployment/_volumes.tpl
Normal file
32
charts/workload/templates/deployment/_volumes.tpl
Normal file
@ -0,0 +1,32 @@
|
||||
{{- define "helper.deployment.volumes" -}} {{- /* (define) */ -}}
|
||||
{{- if or ( or .Values.storage .Values.extraVolumes) .Values.files }} {{- /* (1)*/}}
|
||||
volumes:
|
||||
{{- /* If storage is defined, mount the pvc */ -}}
|
||||
{{- if .Values.storage }} {{- /* (2) */}}
|
||||
{{- range $k, $v := .Values.storage }} {{- /* (3) */}}
|
||||
- name: {{ $k }}-storage
|
||||
persistentVolumeClaim:
|
||||
claimName: " {{- printf "%s-%s" (include "chart.fullname" $) $k }}"
|
||||
{{- end }} {{- /* /(3) */}}
|
||||
{{- end }} {{- /* /(2) */}}
|
||||
{{- if .Values.extraVolumes}} {{- /* (2) */}}
|
||||
{{- range $k, $v := .Values.extraVolumes}} {{- /* (3) */}}
|
||||
- name: {{ $k }}-extra
|
||||
{{- $v | toYaml | nindent 4 }}
|
||||
{{- end }} {{- /* /(3) */}}
|
||||
{{- end }} {{- /* /(2) */}}
|
||||
{{- if .Values.files }} {{- /* (2) */}}
|
||||
{{- range $k, $v := .Values.files }} {{- /* (3) */}}
|
||||
- name: {{ $k }}-file
|
||||
{{- if $v.sensitive }} {{- /* (4) */}}
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: "{{ printf "%s-%s" (include "chart.fullname" $) $k }}"
|
||||
{{- else }}
|
||||
configMap:
|
||||
name: "{{- printf "%s-%s" (include "chart.fullname" $) $k }}"
|
||||
{{- end }} {{- /* /(4) */}}
|
||||
{{- end }} {{- /* /(3) */}}
|
||||
{{- end }} {{- /* /(2) */}}
|
||||
{{- end -}} {{- /* /(1)*/ -}}
|
||||
{{- end -}} {{- /* /(define) */ -}}
|
Reference in New Issue
Block a user