Move postgresql to separate deployment

Change-Id: Iab4b97c327be9aa93f9783b4ff1a27fd37103d26
This commit is contained in:
jmarchel 2024-04-22 13:32:45 +02:00
parent ad8c621f5f
commit 7d64471e9b
5 changed files with 87 additions and 22 deletions

View File

@ -22,8 +22,3 @@ version: 0.1.0
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "latest"
dependencies:
- name: postgresql
version: 14.3.3
repository: https://charts.bitnami.com/bitnami

View File

@ -42,6 +42,15 @@ app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{- define "nebulous-overlay-network-manager.postgresql.labels" -}}
helm.sh/chart: {{ include "nebulous-overlay-network-manager.chart" . }}
{{ include "nebulous-overlay-network-manager.postgresql.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
@ -50,6 +59,11 @@ app.kubernetes.io/name: {{ include "nebulous-overlay-network-manager.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{- define "nebulous-overlay-network-manager.postgresql.selectorLabels" -}}
app.kubernetes.io/name: {{ include "nebulous-overlay-network-manager.name" . }}-postgresql
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}

View File

@ -0,0 +1,64 @@
{{ if .Values.postgresql.enabled }}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "nebulous-overlay-network-manager.fullname" . }}-postgresql
labels:
{{- include "nebulous-overlay-network-manager.postgresql.labels" . | nindent 4 }}
spec:
selector:
matchLabels:
{{- include "nebulous-overlay-network-manager.postgresql.selectorLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "nebulous-overlay-network-manager.postgresql.selectorLabels" . | nindent 8 }}
spec:
containers:
- name: postgresql
image: "{{ .Values.postgresql.image }}"
ports:
- name: postgresql
containerPort: {{ .Values.postgresql.port }}
protocol: TCP
env:
- name: POSTGRES_USER
value: "{{ .Values.postgresql.user }}"
- name: POSTGRES_PASSWORD
value: "{{ .Values.postgresql.password }}"
- name: POSTGRES_DB
value: "{{ .Values.postgresql.dbName }}"
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ include "nebulous-overlay-network-manager.fullname" . }}-postgresql
labels:
{{- include "nebulous-overlay-network-manager.postgresql.labels" . | nindent 4 }}
spec:
type: ClusterIP
ports:
- port: {{ .Values.postgresql.port }}
targetPort: postgresql
protocol: TCP
name: postgresql
- port: 5050
targetPort: pgadmin
protocol: TCP
name: pgadmin
selector:
{{- include "nebulous-overlay-network-manager.postgresql.selectorLabels" . | nindent 4 }}
{{ end }}

View File

@ -27,10 +27,6 @@ spec:
serviceAccountName: {{ include "nebulous-overlay-network-manager.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
initContainers:
- name: wait-for-postgresql
image: docker.io/bitnami/postgresql:16.2.0-debian-12-r8
command: ['sh', '-c', 'until pg_isready -U postgresql -d dbname=postgres -h nebulous-overlay-network-manager-postgresql -p 5432; do echo waiting for database; sleep 2; done;']
containers:
- name: {{ .Chart.Name }}
securityContext:
@ -41,18 +37,15 @@ spec:
- name: onm-api
containerPort: 8082
protocol: TCP
- name: pgadmin
containerPort: 5050
protocol: TCP
resources:
{{- toYaml .Values.resources | nindent 12 }}
env:
- name: POSTGRES_USER
value: {{ .Values.postgresql.global.postgresql.auth.username }}
value: {{ .Values.postgresql.user }}
- name: POSTGRES_PASSWORD
value: {{ .Values.postgresql.global.postgresql.auth.password }}
value: {{ .Values.postgresql.password }}
- name: POSTGRES_DB
value: {{ .Values.postgresql.global.postgresql.auth.database }}
value: {{ .Values.postgresql.database }}
- name: POSTGRES_IP_FQDN
value: "nebulous-overlay-network-manager-postgresql"
- name: POSTGRES_CONNECTION_STRING

View File

@ -84,13 +84,12 @@ tolerations: []
affinity: {}
postgresql:
global:
postgresql:
auth:
postgresPassword: "nebulous"
username: "postgresql"
password: "postgresql"
database: "postgres"
enabled: true
image: "docker.io/postgres:16"
user: "postgresql"
password: "postgresql"
dbName: "postgres"
port: 5432
customEnv:
WIREGUARD_NETWORK_PORTION: "192.168.55."