Files
Kubernetes-Manifests/applications/infisical/postgres/statefulset.yaml
T
Jeffrey 38a03bb131 infisical: add resource requests and limits to postgres and valkey
Both ran as BestEffort QoS, making them first in line for eviction under node memory pressure. Requests also give the scheduler real numbers to place them with.
2026-08-24 00:46:31 +02:00

71 lines
2.0 KiB
YAML

apiVersion: apps/v1
kind: StatefulSet
metadata:
name: infisical-postgres
namespace: infisical
spec:
serviceName: infisical-postgres
replicas: 1
selector:
matchLabels:
app: infisical-postgres
template:
metadata:
labels:
app: infisical-postgres
spec:
containers:
- name: postgres
image: postgres:14-alpine
ports:
- containerPort: 5432
env:
# Keep data in a subdir so an RWO volume's lost+found doesn't block initdb
- name: PGDATA
value: /var/lib/postgresql/data/pgdata
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
name: infisical-secrets
key: POSTGRES_USER
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: infisical-secrets
key: POSTGRES_PASSWORD
- name: POSTGRES_DB
valueFrom:
secretKeyRef:
name: infisical-secrets
key: POSTGRES_DB
volumeMounts:
- name: data
mountPath: /var/lib/postgresql/data
readinessProbe:
exec:
command: ["sh", "-c", "pg_isready -U $POSTGRES_USER -d $POSTGRES_DB"]
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 10
failureThreshold: 10
livenessProbe:
exec:
command: ["sh", "-c", "pg_isready -U $POSTGRES_USER -d $POSTGRES_DB"]
initialDelaySeconds: 30
periodSeconds: 15
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
memory: 512Mi
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: longhorn
resources:
requests:
storage: 8Gi