bacula/kubernetes/statefulset-postgresql.yaml
2024-05-30 11:30:17 -03:00

139 lines
3.3 KiB
YAML

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
labels:
app.kubernetes.io/component: primary
app.kubernetes.io/instance: backup
app.kubernetes.io/name: postgresql
name: postgresql
namespace: backup
spec:
podManagementPolicy: OrderedReady
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/instance: backup
app.kubernetes.io/name: postgresql
role: primary
serviceName: postgresql-headless
template:
metadata:
labels:
app.kubernetes.io/component: primary
app.kubernetes.io/instance: backup
app.kubernetes.io/name: postgresql
role: primary
name: postgresql
spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchLabels:
app.kubernetes.io/component: primary
app.kubernetes.io/instance: backup
app.kubernetes.io/name: postgresql
namespaces:
- backup
topologyKey: kubernetes.io/hostname
weight: 1
containers:
- env:
- name: POSTGRES_PASSWORD
value: "bacula"
- name: POSTGRES_USER
value: "bacula"
- name: POSTGRES_DB
value: "bacula"
- name: POSTGRES_INITDB_ARGS
value: '--encoding=SQL_ASCII --lc-collate=C --lc-ctype=C'
image: docker.io/eftechcombr/bacula:15.0.2-catalog
imagePullPolicy: IfNotPresent
name: postgresql
ports:
- containerPort: 5432
name: tcp-postgresql
protocol: TCP
resources:
requests:
cpu: 250m
memory: 256Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /var/lib/postgresql/data
name: data
dnsPolicy: ClusterFirst
restartPolicy: Always
terminationGracePeriodSeconds: 30
volumes:
- emptyDir:
name: data
updateStrategy:
type: RollingUpdate
status:
replicas: 1
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/instance: backup
app.kubernetes.io/name: postgresql
service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
name: postgresql-headless
namespace: backup
spec:
clusterIP: None
clusterIPs:
- None
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: tcp-postgresql
port: 5432
protocol: TCP
targetPort: tcp-postgresql
publishNotReadyAddresses: true
selector:
app.kubernetes.io/instance: backup
app.kubernetes.io/name: postgresql
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
---
apiVersion: v1
kind: Service
metadata:
annotations:
meta.helm.sh/release-name: backup
meta.helm.sh/release-namespace: backup
labels:
app.kubernetes.io/instance: backup
app.kubernetes.io/name: postgresql
name: postgresql
namespace: backup
spec:
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: tcp-postgresql
port: 5432
protocol: TCP
targetPort: tcp-postgresql
selector:
app.kubernetes.io/instance: backup
app.kubernetes.io/name: postgresql
role: primary
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}