Files
ansible-role-www/templates/membership-postgres.yml.j2
T
2026-10-23 12:49:53 -04:00

91 lines
2.6 KiB
Django/Jinja
Executable File

apiVersion: v1
kind: Service
metadata:
name: membership-db
namespace: {{ www_namespace }}
spec:
type: ClusterIP
clusterIP: None
selector:
app: membership-db
ports:
- name: postgres
port: 5432
targetPort: postgres
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: membership-db
namespace: {{ www_namespace }}
spec:
serviceName: membership-db
replicas: 1
selector:
matchLabels:
app: membership-db
template:
metadata:
labels:
app: membership-db
spec:
automountServiceAccountToken: false
{% if www_image_pull_secrets | length %}
imagePullSecrets:
{{ www_image_pull_secrets | to_nice_yaml | indent(8, true) }}
{% endif %}
securityContext:
runAsNonRoot: true
runAsUser: 999
runAsGroup: 999
fsGroup: 999
seccompProfile:
type: RuntimeDefault
containers:
- name: postgres
image: {{ www_membership_postgres_image | to_json }}
env:
- name: POSTGRES_DB
value: {{ www_membership_environment.POSTGRES_DB | to_json }}
- name: POSTGRES_USER
value: {{ www_membership_environment.POSTGRES_USER | to_json }}
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: {{ www_membership_secret_name }}
key: POSTGRES_PASSWORD
- name: PGDATA
value: /var/lib/postgresql/data/pgdata
ports:
- name: postgres
containerPort: 5432
readinessProbe:
exec:
command: [sh, -c, 'pg_isready -U "$POSTGRES_USER" -d "$POSTGRES_DB"']
periodSeconds: 5
startupProbe:
exec:
command: [sh, -c, 'pg_isready -U "$POSTGRES_USER" -d "$POSTGRES_DB"']
failureThreshold: 60
periodSeconds: 5
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop: [ALL]
resources:
{{ www_membership_postgres_resources | to_nice_yaml | indent(12, true) }}
volumeMounts:
- name: database
mountPath: /var/lib/postgresql/data
volumeClaimTemplates:
- metadata:
name: database
spec:
accessModes: [ReadWriteOnce]
{% if www_membership_postgres_storage_class | length %}
storageClassName: {{ www_membership_postgres_storage_class | to_json }}
{% endif %}
resources:
requests:
storage: {{ www_membership_postgres_storage_size }}