NAS-121263 / 23.10 / Common: Fix pre-upgrade postgresBackup job and adds a template for postgres-wait (#1071)

* Fix pre-upgrade postgresBackup job and adds a template for postgres-wait

* reduce terminationGracePeriod to the j8s default.
This commit is contained in:
Stavros Kois
2023-04-03 17:50:11 +03:00
committed by GitHub
parent bfcf3fd9b4
commit dc5ae91a7f
4 changed files with 50 additions and 4 deletions

View File

@@ -2,7 +2,7 @@ apiVersion: v2
name: common
description: A library chart for iX Official Catalog
type: library
version: 1.0.0
version: 1.0.1
appVersion: v1
annotations:
title: Common Library Chart

View File

@@ -148,7 +148,7 @@ podOptions:
tolerations: []
runtimeClassName: ""
automountServiceAccountToken: false
terminationGracePeriodSeconds: 120
terminationGracePeriodSeconds: 30
```
---

View File

@@ -12,6 +12,7 @@ resources (required): Resources for the postgres container
{{- $name := .name | default "postgres" -}}
{{- $secretName := (required "Postgres - Secret Name is required" .secretName) -}}
{{- $backupPath := .backupPath | default "/postgres_backup" -}}
{{- $ixChartContext := .ixChartContext -}}
{{- $resources := (required "Postgres - Resources are required" .resources) }}
{{ $name }}:
enabled: true
@@ -57,8 +58,21 @@ resources (required): Resources for the postgres container
- "until pg_isready -U ${POSTGRES_USER} -h localhost; do sleep 2; done"
initContainers:
{{- include "ix.v1.common.app.permissions" (dict "UID" 999 "GID" 999) | nindent 6 }}
{{- $enableBackupJob := false -}}
{{- if hasKey $ixChartContext "isUpgrade" -}}
{{- if $ixChartContext.isUpgrade -}}
{{- $enableBackupJob = true -}}
{{- end -}}
{{- else -}}
{{/*
If the key is not present in ixChartContext,
means we are outside SCALE (Probably CI),
let upgrade job run
*/}}
{{- $enableBackupJob = true -}}
{{- end }}
postgresbackup:
enabled: true
enabled: {{ $enableBackupJob }}
type: Job
annotations:
"helm.sh/hook": pre-upgrade
@@ -100,3 +114,35 @@ postgresbackup:
initContainers:
{{- include "ix.v1.common.app.permissions" (dict "UID" 999 "GID" 999 "type" "init") | nindent 6 }}
{{- end -}}
{{/* Returns a postgres-wait container for waiting for postgres to be ready */}}
{{/* Call this template:
{{ include "ix.v1.common.app.postgresWait" (dict "name" "postgres-wait" "secretName" "postgres-creds") }}
name (optional): Name of the postgres-wait container (default: postgres-wait)
secretName (required): Name of the secret containing the postgres credentials
*/}}
{{- define "ix.v1.common.app.postgresWait" -}}
{{- $name := .name | default "postgres-wait" -}}
{{- $secretName := (required "Postgres-Wait - Secret Name is required" .secretName) }}
{{ $name }}:
enabled: true
type: init
imageSelector: postgresImage
envFrom:
- secretRef:
name: {{ $secretName }}
resources:
limits:
cpu: 500m
memory: 256Mi
command: bash
args:
- -c
- |
echo "Waiting for postgres to be ready"
until pg_isready -h ${POSTGRES_HOST} -U ${POSTGRES_USER} -d ${POSTGRES_DB}; do
sleep 2
done
{{- end -}}

View File

@@ -94,7 +94,7 @@ podOptions:
tolerations: []
runtimeClassName: ""
automountServiceAccountToken: false
terminationGracePeriodSeconds: 120
terminationGracePeriodSeconds: 30
# -- (docs/notes.md)
notes: