feat(common): add configmap and secret persistence objects (#1368)
* feat(common): add configmap and secret persistence objects * also port configmap layer * add values.yaml for integrated configmap
This commit is contained in:
@@ -15,4 +15,4 @@ maintainers:
|
|||||||
name: common
|
name: common
|
||||||
sources: null
|
sources: null
|
||||||
type: library
|
type: library
|
||||||
version: 8.6.5
|
version: 8.6.6
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{{/*
|
||||||
|
Renders the configMap objects required by the chart.
|
||||||
|
*/}}
|
||||||
|
{{- define "common.configmap" -}}
|
||||||
|
{{- /* Generate named configMaps as required */ -}}
|
||||||
|
{{- range $name, $configmap := .Values.configmap }}
|
||||||
|
{{- if $configmap.enabled -}}
|
||||||
|
{{- $configmapValues := $configmap -}}
|
||||||
|
|
||||||
|
{{/* set the default nameOverride to the configMap name */}}
|
||||||
|
{{- if not $configmapValues.nameOverride -}}
|
||||||
|
{{- $_ := set $configmapValues "nameOverride" $name -}}
|
||||||
|
{{ end -}}
|
||||||
|
|
||||||
|
{{- $_ := set $ "ObjectValues" (dict "configmap" $configmapValues) -}}
|
||||||
|
{{- include "common.classes.configmap" $ }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
{{/*
|
||||||
|
This template serves as a blueprint for all configMap objects that are created
|
||||||
|
within the common library.
|
||||||
|
*/}}
|
||||||
|
{{- define "common.classes.configmap" -}}
|
||||||
|
{{- $fullName := include "common.names.fullname" . -}}
|
||||||
|
{{- $configMapName := $fullName -}}
|
||||||
|
{{- $values := .Values.configmap -}}
|
||||||
|
|
||||||
|
{{- if hasKey . "ObjectValues" -}}
|
||||||
|
{{- with .ObjectValues.configmap -}}
|
||||||
|
{{- $values = . -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{ end -}}
|
||||||
|
|
||||||
|
{{- if and (hasKey $values "nameOverride") $values.nameOverride -}}
|
||||||
|
{{- $configMapName = printf "%v-%v" $configMapName $values.nameOverride -}}
|
||||||
|
{{- end }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: {{ $configMapName }}
|
||||||
|
labels:
|
||||||
|
{{- include "common.labels" . | nindent 4 }}
|
||||||
|
{{- with $values.labels }}
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with $values.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
data:
|
||||||
|
{{- with $values.data }}
|
||||||
|
{{- tpl (toYaml .) $ | nindent 2 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
@@ -34,6 +34,23 @@ Volumes included by the controller.
|
|||||||
{{- $_ := set $emptyDir "sizeLimit" . -}}
|
{{- $_ := set $emptyDir "sizeLimit" . -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
emptyDir: {{- $emptyDir | toYaml | nindent 4 }}
|
emptyDir: {{- $emptyDir | toYaml | nindent 4 }}
|
||||||
|
{{- else if or (eq $persistence.type "configMap") (eq $persistence.type "secret") }}
|
||||||
|
{{- $objectName := (required (printf "objectName not set for persistence item %s" $index) $persistence.objectName) }}
|
||||||
|
{{- $objectName = tpl $objectName $ }}
|
||||||
|
{{- if eq $persistence.type "configMap" }}
|
||||||
|
configMap:
|
||||||
|
name: {{ $objectName }}
|
||||||
|
{{- else }}
|
||||||
|
secret:
|
||||||
|
secretName: {{ $objectName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with $persistence.defaultMode }}
|
||||||
|
defaultMode: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with $persistence.items }}
|
||||||
|
items:
|
||||||
|
{{- toYaml . | nindent 6 }}
|
||||||
|
{{- end }}
|
||||||
{{- else if eq $persistence.type "hostPath" }}
|
{{- else if eq $persistence.type "hostPath" }}
|
||||||
hostPath:
|
hostPath:
|
||||||
path: {{ required "hostPath not set" $persistence.hostPath }}
|
path: {{ required "hostPath not set" $persistence.hostPath }}
|
||||||
|
|||||||
@@ -541,6 +541,21 @@ deviceList: []
|
|||||||
# @default -- []
|
# @default -- []
|
||||||
persistenceList: []
|
persistenceList: []
|
||||||
|
|
||||||
|
# -- Configure configMaps for the chart here.
|
||||||
|
# Additional configMaps can be added by adding a dictionary key similar to the 'config' object.
|
||||||
|
# @default -- See below
|
||||||
|
configmap:
|
||||||
|
config:
|
||||||
|
# -- Enables or disables the configMap
|
||||||
|
enabled: false
|
||||||
|
# -- Labels to add to the configMap
|
||||||
|
labels: {}
|
||||||
|
# -- Annotations to add to the configMap
|
||||||
|
annotations: {}
|
||||||
|
# -- configMap data content. Helm template enabled.
|
||||||
|
data: {}
|
||||||
|
# foo: bar
|
||||||
|
|
||||||
# -- Configure persistence for the chart here.
|
# -- Configure persistence for the chart here.
|
||||||
# Additional items can be added by adding a dictionary key similar to the 'config' key.
|
# Additional items can be added by adding a dictionary key similar to the 'config' key.
|
||||||
# @default -- See below
|
# @default -- See below
|
||||||
@@ -565,7 +580,7 @@ persistence:
|
|||||||
labels: {}
|
labels: {}
|
||||||
|
|
||||||
# -- Sets the persistence type
|
# -- Sets the persistence type
|
||||||
# Valid options are: simplePVC, simpleHP, pvc, emptyDir, hostPath or custom
|
# Valid options are: simplePVC, simpleHP, pvc, emptyDir, secret, configMap, hostPath or custom
|
||||||
type: pvc
|
type: pvc
|
||||||
|
|
||||||
# -- force the complete PVC name
|
# -- force the complete PVC name
|
||||||
@@ -723,6 +738,40 @@ persistence:
|
|||||||
# defaultMode: 420
|
# defaultMode: 420
|
||||||
# name: my-settings
|
# name: my-settings
|
||||||
|
|
||||||
|
# -- Example of a configmap mount
|
||||||
|
# @default -- See below
|
||||||
|
configmap-example:
|
||||||
|
enabled: false
|
||||||
|
type: configmap
|
||||||
|
# -- Specify the name of the configmap object to be mounted
|
||||||
|
objectName: myconfig-map
|
||||||
|
# -- Where to mount the volume in the main container.
|
||||||
|
# Defaults to `/<name_of_the_volume>`,
|
||||||
|
# setting to '-' creates the volume but disables the volumeMount.
|
||||||
|
mountPath: # /custom-mount
|
||||||
|
# -- Specify if the volume should be mounted read-only.
|
||||||
|
readOnly: false
|
||||||
|
|
||||||
|
# -- Example of a secret mount
|
||||||
|
# @default -- See below
|
||||||
|
secret-example:
|
||||||
|
enabled: false
|
||||||
|
type: secret
|
||||||
|
# -- Specify the name of the secret object to be mounted
|
||||||
|
objectName: mysecret
|
||||||
|
# -- Where to mount the volume in the main container.
|
||||||
|
# Defaults to `/<name_of_the_volume>`,
|
||||||
|
# setting to '-' creates the volume but disables the volumeMount.
|
||||||
|
mountPath: # /custom-mount
|
||||||
|
# -- Specify if the volume should be mounted read-only.
|
||||||
|
readOnly: false
|
||||||
|
# -- define the default mount mode for the secret
|
||||||
|
defaultMode: 777
|
||||||
|
# -- Define the secret items to be mounted
|
||||||
|
items:
|
||||||
|
- key: username
|
||||||
|
path: my-group/my-username
|
||||||
|
|
||||||
# -- Used in conjunction with `controller.type: statefulset` to create individual disks for each instance.
|
# -- Used in conjunction with `controller.type: statefulset` to create individual disks for each instance.
|
||||||
volumeClaimTemplates: []
|
volumeClaimTemplates: []
|
||||||
# data:
|
# data:
|
||||||
|
|||||||
Reference in New Issue
Block a user