mirror of
https://github.com/bjw-s-labs/helm-charts.git
synced 2025-07-04 00:47:04 +02:00
feat(common): Release 3.5.0 (#357)
Co-authored-by: Lawrence Gil <lawrence.gil@assemblyglobal.com>
This commit is contained in:
parent
5a722abfa9
commit
90e6b9e7cf
42 changed files with 1092 additions and 164 deletions
|
@ -2,6 +2,8 @@
|
|||
Renders the configMap objects required by the chart.
|
||||
*/}}
|
||||
{{- define "bjw-s.common.render.configMaps" -}}
|
||||
{{- $rootContext := $ -}}
|
||||
|
||||
{{- /* Generate named configMaps as required */ -}}
|
||||
{{- range $key, $configMap := .Values.configMaps }}
|
||||
{{- /* Enable configMap by default, but allow override */ -}}
|
||||
|
@ -14,7 +16,7 @@ Renders the configMap objects required by the chart.
|
|||
{{- $configMapValues := (mustDeepCopy $configMap) -}}
|
||||
|
||||
{{- /* Create object from the raw configMap values */ -}}
|
||||
{{- $configMapObject := (include "bjw-s.common.lib.configMap.valuesToObject" (dict "rootContext" $ "id" $key "values" $configMapValues)) | fromYaml -}}
|
||||
{{- $configMapObject := (include "bjw-s.common.lib.valuesToObject" (dict "rootContext" $rootContext "id" $key "values" $configMapValues)) | fromYaml -}}
|
||||
|
||||
{{- /* Perform validations on the configMap before rendering */ -}}
|
||||
{{- include "bjw-s.common.lib.configMap.validate" (dict "rootContext" $ "object" $configMapObject) -}}
|
||||
|
@ -37,21 +39,25 @@ Renders configMap objects required by the chart from a folder in the repo's path
|
|||
{{- $_ := set $topLevelFolders (dir $path) "" -}}
|
||||
{{- end -}}
|
||||
{{- $top_level_folder_list := keys $topLevelFolders | sortAlpha -}}
|
||||
|
||||
{{/* Iterate over the top level folders */}}
|
||||
{{ range $path := $top_level_folder_list }}
|
||||
{{- $filesContentNoFormat := ($.Files.Glob (printf "%s/*" $path)) -}}
|
||||
{{- $filesContent := dict -}}
|
||||
{{- $binaryFilesContent := dict -}}
|
||||
{{- range $file_name, $content := $filesContentNoFormat -}}
|
||||
{{- $key := base $file_name -}}
|
||||
{{- if contains ".escape" $key -}}
|
||||
{{- $key := $key | replace ".escape" "" -}}
|
||||
{{- $filesContent = merge $filesContent (dict $key (($.Files.Get $file_name) | replace "{{" "{{ `{{` }}")) -}}
|
||||
{{- else if contains ".binary" $key -}}
|
||||
{{- $key := $key | replace ".binary" "" -}}
|
||||
{{- $binaryFilesContent = merge $binaryFilesContent (dict $key ($.Files.Get $file_name | b64enc )) -}}
|
||||
{{- else -}}
|
||||
{{- $filesContent = merge $filesContent (dict $key ($.Files.Get $file_name)) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- $configMapValues := dict "enabled" true "labels" dict "annotations" dict "data" $filesContent -}}
|
||||
|
||||
{{- $configMapValues := dict "enabled" true "labels" dict "annotations" dict "data" $filesContent "binaryData" $binaryFilesContent -}}
|
||||
{{- $existingConfigMaps := (get $rootValues "configMaps"| default dict) -}}
|
||||
{{- $mergedConfigMaps := deepCopy $existingConfigMaps | merge (dict (base $path) $configMapValues) -}}
|
||||
{{- $rootValues := merge $rootValues (dict "configMaps" $mergedConfigMaps) -}}
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
Renders the controller objects required by the chart.
|
||||
*/}}
|
||||
{{- define "bjw-s.common.render.controllers" -}}
|
||||
{{- $rootContext := $ -}}
|
||||
|
||||
{{- /* Generate named controller objects as required */ -}}
|
||||
{{- range $key, $controller := .Values.controllers -}}
|
||||
{{- /* Enable controller by default, but allow override */ -}}
|
||||
|
@ -14,31 +16,31 @@ Renders the controller objects required by the chart.
|
|||
{{- $controllerValues := $controller -}}
|
||||
|
||||
{{- /* Create object from the raw controller values */ -}}
|
||||
{{- $controllerObject := (include "bjw-s.common.lib.controller.valuesToObject" (dict "rootContext" $ "id" $key "values" $controllerValues)) | fromYaml -}}
|
||||
{{- $controllerObject := (include "bjw-s.common.lib.controller.valuesToObject" (dict "rootContext" $rootContext "id" $key "values" $controllerValues)) | fromYaml -}}
|
||||
|
||||
{{- /* Perform validations on the controller before rendering */ -}}
|
||||
{{- include "bjw-s.common.lib.controller.validate" (dict "rootContext" $ "object" $controllerObject) -}}
|
||||
{{- include "bjw-s.common.lib.controller.validate" (dict "rootContext" $rootContext "object" $controllerObject) -}}
|
||||
|
||||
{{- if eq $controllerObject.type "deployment" -}}
|
||||
{{- $deploymentObject := (include "bjw-s.common.lib.deployment.valuesToObject" (dict "rootContext" $ "id" $key "values" $controllerObject)) | fromYaml -}}
|
||||
{{- include "bjw-s.common.lib.deployment.validate" (dict "rootContext" $ "object" $deploymentObject) -}}
|
||||
{{- include "bjw-s.common.class.deployment" (dict "rootContext" $ "object" $deploymentObject) | nindent 0 -}}
|
||||
{{- $deploymentObject := (include "bjw-s.common.lib.deployment.valuesToObject" (dict "rootContext" $rootContext "id" $key "values" $controllerObject)) | fromYaml -}}
|
||||
{{- include "bjw-s.common.lib.deployment.validate" (dict "rootContext" $rootContext "object" $deploymentObject) -}}
|
||||
{{- include "bjw-s.common.class.deployment" (dict "rootContext" $rootContext "object" $deploymentObject) | nindent 0 -}}
|
||||
{{- else if eq $controllerObject.type "cronjob" -}}
|
||||
{{- $cronjobObject := (include "bjw-s.common.lib.cronjob.valuesToObject" (dict "rootContext" $ "id" $key "values" $controllerObject)) | fromYaml -}}
|
||||
{{- include "bjw-s.common.lib.cronjob.validate" (dict "rootContext" $ "object" $cronjobObject) -}}
|
||||
{{- include "bjw-s.common.class.cronjob" (dict "rootContext" $ "object" $cronjobObject) | nindent 0 -}}
|
||||
{{- $cronjobObject := (include "bjw-s.common.lib.cronjob.valuesToObject" (dict "rootContext" $rootContext "id" $key "values" $controllerObject)) | fromYaml -}}
|
||||
{{- include "bjw-s.common.lib.cronjob.validate" (dict "rootContext" $rootContext "object" $cronjobObject) -}}
|
||||
{{- include "bjw-s.common.class.cronjob" (dict "rootContext" $rootContext "object" $cronjobObject) | nindent 0 -}}
|
||||
{{- else if eq $controllerObject.type "daemonset" -}}
|
||||
{{- $daemonsetObject := (include "bjw-s.common.lib.daemonset.valuesToObject" (dict "rootContext" $ "id" $key "values" $controllerObject)) | fromYaml -}}
|
||||
{{- include "bjw-s.common.lib.daemonset.validate" (dict "rootContext" $ "object" $daemonsetObject) -}}
|
||||
{{- include "bjw-s.common.class.daemonset" (dict "rootContext" $ "object" $daemonsetObject) | nindent 0 -}}
|
||||
{{- $daemonsetObject := (include "bjw-s.common.lib.daemonset.valuesToObject" (dict "rootContext" $rootContext "id" $key "values" $controllerObject)) | fromYaml -}}
|
||||
{{- include "bjw-s.common.lib.daemonset.validate" (dict "rootContext" $rootContext "object" $daemonsetObject) -}}
|
||||
{{- include "bjw-s.common.class.daemonset" (dict "rootContext" $rootContext "object" $daemonsetObject) | nindent 0 -}}
|
||||
{{- else if eq $controllerObject.type "statefulset" -}}
|
||||
{{- $statefulsetObject := (include "bjw-s.common.lib.statefulset.valuesToObject" (dict "rootContext" $ "id" $key "values" $controllerObject)) | fromYaml -}}
|
||||
{{- include "bjw-s.common.lib.statefulset.validate" (dict "rootContext" $ "object" $statefulsetObject) -}}
|
||||
{{- include "bjw-s.common.class.statefulset" (dict "rootContext" $ "object" $statefulsetObject) | nindent 0 -}}
|
||||
{{- $statefulsetObject := (include "bjw-s.common.lib.statefulset.valuesToObject" (dict "rootContext" $rootContext "id" $key "values" $controllerObject)) | fromYaml -}}
|
||||
{{- include "bjw-s.common.lib.statefulset.validate" (dict "rootContext" $rootContext "object" $statefulsetObject) -}}
|
||||
{{- include "bjw-s.common.class.statefulset" (dict "rootContext" $rootContext "object" $statefulsetObject) | nindent 0 -}}
|
||||
{{- else if eq $controllerObject.type "job" -}}
|
||||
{{- $jobObject := (include "bjw-s.common.lib.job.valuesToObject" (dict "rootContext" $ "id" $key "values" $controllerObject)) | fromYaml -}}
|
||||
{{- include "bjw-s.common.lib.job.validate" (dict "rootContext" $ "object" $jobObject) -}}
|
||||
{{- include "bjw-s.common.class.job" (dict "rootContext" $ "object" $jobObject) | nindent 0 -}}
|
||||
{{- $jobObject := (include "bjw-s.common.lib.job.valuesToObject" (dict "rootContext" $rootContext "id" $key "values" $controllerObject)) | fromYaml -}}
|
||||
{{- include "bjw-s.common.lib.job.validate" (dict "rootContext" $rootContext "object" $jobObject) -}}
|
||||
{{- include "bjw-s.common.class.job" (dict "rootContext" $rootContext "object" $jobObject) | nindent 0 -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
Renders other arbirtrary objects required by the chart.
|
||||
*/}}
|
||||
{{- define "bjw-s.common.render.rawResources" -}}
|
||||
{{- /* Generate pvc as required */ -}}
|
||||
{{- $rootContext := $ -}}
|
||||
|
||||
{{- /* Generate raw resources as required */ -}}
|
||||
{{- range $key, $resource := .Values.rawResources -}}
|
||||
{{- /* Enable by default, but allow override */ -}}
|
||||
{{- $resourceEnabled := true -}}
|
||||
|
@ -14,7 +16,7 @@ Renders other arbirtrary objects required by the chart.
|
|||
{{- $resourceValues := (mustDeepCopy $resource) -}}
|
||||
|
||||
{{- /* Create object from the raw resource values */ -}}
|
||||
{{- $resourceObject := (include "bjw-s.common.lib.rawResource.valuesToObject" (dict "rootContext" $ "id" $key "values" $resourceValues)) | fromYaml -}}
|
||||
{{- $resourceObject := (include "bjw-s.common.lib.valuesToObject" (dict "rootContext" $rootContext "id" $key "values" $resourceValues)) | fromYaml -}}
|
||||
|
||||
{{- /* Perform validations on the resource before rendering */ -}}
|
||||
{{- include "bjw-s.common.lib.rawResource.validate" (dict "rootContext" $ "object" $resourceValues) -}}
|
||||
|
|
67
charts/library/common/templates/render/_rbac.tpl
Normal file
67
charts/library/common/templates/render/_rbac.tpl
Normal file
|
@ -0,0 +1,67 @@
|
|||
{{/*
|
||||
Renders RBAC objects required by the chart.
|
||||
*/}}
|
||||
{{- define "bjw-s.common.render.rbac" -}}
|
||||
{{- $rootContext := . -}}
|
||||
{{- include "bjw-s.common.render.rbac.roles" (dict "rootContext" $rootContext) -}}
|
||||
|
||||
{{- include "bjw-s.common.render.rbac.roleBindings" (dict "rootContext" $rootContext) -}}
|
||||
|
||||
{{ end }}
|
||||
|
||||
{{/*
|
||||
Renders RBAC Role objects required by the chart.
|
||||
*/}}
|
||||
{{- define "bjw-s.common.render.rbac.roles" -}}
|
||||
{{- $rootContext := .rootContext -}}
|
||||
{{- /* Generate named Roles as required */ -}}
|
||||
{{- range $key, $role := $rootContext.Values.rbac.roles }}
|
||||
{{- /* Enable role by default, but allow override */ -}}
|
||||
{{- $roleEnabled := true -}}
|
||||
{{- if hasKey $role "enabled" -}}
|
||||
{{- $roleEnabled = $role.enabled -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if $roleEnabled -}}
|
||||
{{- $roleValues := (mustDeepCopy $role) -}}
|
||||
|
||||
{{- /* Create object from the raw role values */ -}}
|
||||
{{- $roleObject := (include "bjw-s.common.lib.valuesToObject" (dict "rootContext" $rootContext "id" $key "values" $roleValues)) | fromYaml -}}
|
||||
|
||||
{{- /* Perform validations on the role before rendering */ -}}
|
||||
{{- include "bjw-s.common.lib.rbac.role.validate" (dict "rootContext" $rootContext "object" $roleObject) -}}
|
||||
|
||||
{{/* Include the role class */}}
|
||||
{{- include "bjw-s.common.class.rbac.Role" (dict "rootContext" $rootContext "object" $roleObject) | nindent 0 -}}
|
||||
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Renders RBAC RoleBinding objects required by the chart.
|
||||
*/}}
|
||||
{{- define "bjw-s.common.render.rbac.roleBindings" -}}
|
||||
{{- $rootContext := .rootContext -}}
|
||||
{{- range $key, $roleBinding := $rootContext.Values.rbac.bindings }}
|
||||
{{- /* Enable RoleBinding by default, but allow override */ -}}
|
||||
{{- $roleBindingEnabled := true -}}
|
||||
{{- if hasKey $roleBinding "enabled" -}}
|
||||
{{- $roleBindingEnabled = $roleBinding.enabled -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if $roleBindingEnabled -}}
|
||||
{{- $roleBindingValues := (mustDeepCopy $roleBinding) -}}
|
||||
|
||||
{{- /* Create object from the raw RoleBinding values */ -}}
|
||||
{{- $roleBindingObject := (include "bjw-s.common.lib.valuesToObject" (dict "rootContext" $rootContext "id" $key "values" $roleBindingValues)) | fromYaml -}}
|
||||
|
||||
{{- /* Perform validations on the RoleBinding before rendering */ -}}
|
||||
{{- include "bjw-s.common.lib.rbac.roleBinding.validate" (dict "rootContext" $rootContext "object" $roleBindingObject) -}}
|
||||
|
||||
{{/* Include the RoleBinding class */}}
|
||||
{{- include "bjw-s.common.class.rbac.roleBinding" (dict "rootContext" $rootContext "object" $roleBindingObject) | nindent 0 -}}
|
||||
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
|
@ -2,6 +2,8 @@
|
|||
Renders the Secret objects required by the chart.
|
||||
*/}}
|
||||
{{- define "bjw-s.common.render.secrets" -}}
|
||||
{{- $rootContext := $ -}}
|
||||
|
||||
{{- /* Generate named Secrets as required */ -}}
|
||||
{{- range $key, $secret := .Values.secrets }}
|
||||
{{- /* Enable Secret by default, but allow override */ -}}
|
||||
|
@ -14,7 +16,7 @@ Renders the Secret objects required by the chart.
|
|||
{{- $secretValues := (mustDeepCopy $secret) -}}
|
||||
|
||||
{{- /* Create object from the raw Secret values */ -}}
|
||||
{{- $secretObject := (include "bjw-s.common.lib.secret.valuesToObject" (dict "rootContext" $ "id" $key "values" $secretValues)) | fromYaml -}}
|
||||
{{- $secretObject := (include "bjw-s.common.lib.valuesToObject" (dict "rootContext" $rootContext "id" $key "values" $secretValues)) | fromYaml -}}
|
||||
|
||||
{{- /* Perform validations on the Secret before rendering */ -}}
|
||||
{{- include "bjw-s.common.lib.secret.validate" (dict "rootContext" $ "object" $secretObject) -}}
|
||||
|
|
|
@ -11,10 +11,39 @@ Renders the serviceAccount object required by the chart.
|
|||
{{- /* Perform validations on the ServiceAccount before rendering */ -}}
|
||||
{{- include "bjw-s.common.lib.serviceAccount.validate" (dict "rootContext" $ "object" $serviceAccountObject) -}}
|
||||
|
||||
{{- /* Create a service account secret */ -}}
|
||||
{{- $_ := set .Values.secrets (printf "%s-sa-token" $serviceAccountObject.identifier) (dict "enabled" true "annotations" (dict "kubernetes.io/service-account.name" $serviceAccountObject.name) "type" "kubernetes.io/service-account-token") -}}
|
||||
|
||||
{{/* Include the serviceAccount class */}}
|
||||
{{- include "bjw-s.common.class.serviceAccount" (dict "rootContext" $ "object" $serviceAccountObject) | nindent 0 -}}
|
||||
|
||||
{{- /* Create a service account secret */ -}}
|
||||
{{- $_ := set .Values.secrets "sa-token" (dict "enabled" true "annotations" (dict "kubernetes.io/service-account.name" $serviceAccountObject.name) "type" "kubernetes.io/service-account-token") -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- /* Generate named serviceAccount objects as required */ -}}
|
||||
{{- with .Values.serviceAccount.extraServiceAccounts -}}
|
||||
{{- range $key, $serviceAccount := . -}}
|
||||
{{- $serviceAccountEnabled := true -}}
|
||||
{{- if hasKey $serviceAccount "create" -}}
|
||||
{{- $serviceAccountEnabled = $serviceAccount.create -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if $serviceAccountEnabled -}}
|
||||
{{- $serviceAccountValues := $serviceAccount -}}
|
||||
|
||||
{{- /* Create object from the raw ServiceAccount values */ -}}
|
||||
{{- $serviceAccountObject := (include "bjw-s.common.lib.serviceAccount.valuesToObject" (dict "rootContext" $ "id" $key "values" $serviceAccountValues)) | fromYaml -}}
|
||||
|
||||
{{- /* Perform validations on the ServiceAccount before rendering */ -}}
|
||||
{{- include "bjw-s.common.lib.serviceAccount.validate" (dict "rootContext" $ "object" $serviceAccountObject) -}}
|
||||
|
||||
{{- /* Create a service account secret */ -}}
|
||||
{{- $_ := set $.Values.secrets (printf "%s-sa-token" $serviceAccountObject.identifier) (dict "enabled" true "annotations" (dict "kubernetes.io/service-account.name" $serviceAccountObject.name) "type" "kubernetes.io/service-account-token") -}}
|
||||
|
||||
{{/* Include the serviceAccount class */}}
|
||||
{{- include "bjw-s.common.class.serviceAccount" (dict "rootContext" $ "object" $serviceAccountObject) | nindent 0 -}}
|
||||
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- end -}}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue