77 lines
3.2 KiB
Smarty
77 lines
3.2 KiB
Smarty
{{/* Renders the cnpg objects required by the chart */}}
|
|
{{- define "tc.v1.common.spawner.cnpg" -}}
|
|
|
|
{{- $fullname := include "tc.v1.common.lib.chart.names.fullname" $ -}}
|
|
|
|
{{- range $name, $cnpg := $.Values.cnpg -}}
|
|
|
|
{{- $enabled := (include "tc.v1.common.lib.util.enabled" (dict
|
|
"rootCtx" $ "objectData" $cnpg
|
|
"name" $name "caller" "CNPG"
|
|
"key" "cnpg")) -}}
|
|
|
|
{{/* Create a copy */}}
|
|
{{- $objectData := mustDeepCopy $cnpg -}}
|
|
{{- $objectName := printf "%s-cnpg-%s" $fullname $name -}}
|
|
|
|
{{/* Set the name */}}
|
|
{{- $_ := set $objectData "name" $objectName -}}
|
|
{{/* Short name is the one that defined on the chart*/}}
|
|
{{- $_ := set $objectData "shortName" $name -}}
|
|
{{/* Set the cluster name */}}
|
|
{{- $_ := set $objectData "clusterName" $objectData.name -}}
|
|
|
|
{{- if eq $enabled "true" -}}
|
|
|
|
{{/* Handle version string */}}
|
|
{{- $pgVersion := ($objectData.pgVersion | default $.Values.global.fallbackDefaults.cnpg.pgVersion) | toString -}}
|
|
|
|
{{/* Set the updated pgVersion version to objectData */}}
|
|
{{- $_ := set $objectData "pgVersion" $pgVersion -}}
|
|
|
|
{{/* allow for injecting major upgrade code */}}
|
|
{{- if $objectData.upgradeMajor -}}
|
|
{{/* TODO: actually handle postgres version updates here */}}
|
|
{{- end -}}
|
|
|
|
{{- include "tc.v1.common.lib.util.metaListToDict" (dict "objectData" $objectData) -}}
|
|
|
|
{{/* Handle Backups/ScheduledBackups */}}
|
|
{{- if and (hasKey $objectData "backups") $objectData.backups.enabled -}}
|
|
|
|
{{/* Create Backups */}}
|
|
{{- include "tc.v1.common.lib.cnpg.spawner.backups" (dict "rootCtx" $ "objectData" $objectData) -}}
|
|
|
|
{{/* Create ScheduledBackups */}}
|
|
{{- include "tc.v1.common.lib.cnpg.spawner.scheduledBackups" (dict "rootCtx" $ "objectData" $objectData) -}}
|
|
|
|
{{/* Create secret for backup store */}}
|
|
{{- include "tc.v1.common.lib.cnpg.provider.secret.spawner" (dict "rootCtx" $ "objectData" $objectData "type" "backup") -}}
|
|
{{- end -}}
|
|
|
|
{{/* Handle Pooler(s) */}}
|
|
{{- if and $objectData.pooler $objectData.pooler.enabled -}}
|
|
{{- include "tc.v1.common.lib.cnpg.spawner.pooler" (dict "rootCtx" $ "objectData" $objectData) -}}
|
|
{{- end -}}
|
|
|
|
{{/* Handle Cluster */}}
|
|
{{/* Validate Cluster */}}
|
|
{{- include "tc.v1.common.lib.cnpg.cluster.validation" (dict "objectData" $objectData) -}}
|
|
|
|
{{- if and (eq $objectData.mode "recovery") (eq $objectData.recovery.method "object_store") -}}
|
|
{{/* Create secret for recovery store */}}
|
|
{{- include "tc.v1.common.lib.cnpg.provider.secret.spawner" (dict "rootCtx" $ "objectData" $objectData "type" "recovery") -}}
|
|
{{- end -}}
|
|
|
|
{{/* Create the Cluster object */}}
|
|
{{- include "tc.v1.common.class.cnpg.cluster" (dict "rootCtx" $ "objectData" $objectData) -}}
|
|
|
|
{{/* TODO: Create configmaps for cluster.monitoring.customQueries */}}
|
|
|
|
{{/* Handle DB Credentials Secret, will also inject creds to cnpg.creds */}}
|
|
{{- include "tc.v1.common.lib.cnpg.db.credentials.secrets" (dict "rootCtx" $ "cnpg" $cnpg "objectData" $objectData) -}}
|
|
{{- end -}}
|
|
|
|
{{- end -}}
|
|
{{- end -}}
|