-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(charts)!: Update Helm release postgresql to 15.5.9 #2437
base: main
Are you sure you want to change the base?
Conversation
Path: @@ -1,3 +1,42 @@
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +44,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "Z0lOSmM4SWNwVA=="
+ postgres-password: "UTBSWDh3TUlWTw=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +60,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +75,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,10 +86,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
+ annotations:
# Use this annotation in addition to the actual publishNotReadyAddresses
# field below because the annotation will stop being respected soon but the
# field is broken in some versions of Kubernetes:
@@ -68,8 +108,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +119,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +132,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +143,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +155,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +173,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +182,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +224,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +288,47 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/logs
+ subPath: app-logs-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r14
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +361,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +398,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
2fabaa8
to
c476421
Compare
Path: @@ -1,3 +1,66 @@
+# Source: postgresql/templates/backup/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql-pgdumpall
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: pg_dumpall
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: pg_dumpall
+ policyTypes:
+ - Egress
+ egress:
+ - ports:
+ - port: 5432
+ protocol: TCP
+---
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +68,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "c3hoc1Y4U3NwTg=="
+ postgres-password: "Vk9SNkpXYTloMA=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +84,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +99,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,10 +110,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
+ annotations:
# Use this annotation in addition to the actual publishNotReadyAddresses
# field below because the annotation will stop being respected soon but the
# field is broken in some versions of Kubernetes:
@@ -68,8 +132,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +143,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +156,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +167,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +179,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +197,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +206,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +248,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +312,47 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/logs
+ subPath: app-logs-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r14
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +385,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +422,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
c476421
to
2eeaa29
Compare
Path: @@ -1,3 +1,42 @@
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +44,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "c1lyMEh2elVkUg=="
+ postgres-password: "enl5MzZ1N2lSUw=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +60,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +75,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,10 +86,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
+ annotations:
# Use this annotation in addition to the actual publishNotReadyAddresses
# field below because the annotation will stop being respected soon but the
# field is broken in some versions of Kubernetes:
@@ -68,8 +108,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +119,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +132,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +143,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +155,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +173,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +182,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +224,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +288,47 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/logs
+ subPath: app-logs-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r14
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +361,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +398,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
2eeaa29
to
db76b43
Compare
Path: @@ -1,3 +1,42 @@
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +44,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "cElHRjZtbHQ1Yg=="
+ postgres-password: "bHZ2cTZjVFZEdg=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +60,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +75,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,10 +86,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
+ annotations:
# Use this annotation in addition to the actual publishNotReadyAddresses
# field below because the annotation will stop being respected soon but the
# field is broken in some versions of Kubernetes:
@@ -68,8 +108,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +119,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +132,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +143,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +155,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +173,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +182,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +224,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +288,47 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/logs
+ subPath: app-logs-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r14
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +361,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +398,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
db76b43
to
b13d384
Compare
Path: @@ -1,3 +1,42 @@
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +44,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "SWVSUFp5bTBZVA=="
+ postgres-password: "RE5zNGx1T0o2Ug=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +60,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +75,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,10 +86,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
+ annotations:
# Use this annotation in addition to the actual publishNotReadyAddresses
# field below because the annotation will stop being respected soon but the
# field is broken in some versions of Kubernetes:
@@ -68,8 +108,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +119,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +132,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +143,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +155,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +173,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +182,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +224,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +288,47 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/logs
+ subPath: app-logs-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r14
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +361,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +398,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
b13d384
to
a2238a0
Compare
Path: @@ -1,3 +1,42 @@
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +44,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "eFdoQnBOM2x4eg=="
+ postgres-password: "c2pIM1hOdnh0bg=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +60,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +75,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,10 +86,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
+ annotations:
# Use this annotation in addition to the actual publishNotReadyAddresses
# field below because the annotation will stop being respected soon but the
# field is broken in some versions of Kubernetes:
@@ -68,8 +108,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +119,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +132,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +143,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +155,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +173,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +182,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +224,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +288,47 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/logs
+ subPath: app-logs-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r14
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +361,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +398,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
a2238a0
to
9b5bdc4
Compare
Path: @@ -1,3 +1,42 @@
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +44,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "dVRlWUx4dHo4bQ=="
+ postgres-password: "SkZLS043MFFmbA=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +60,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +75,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,10 +86,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
+ annotations:
# Use this annotation in addition to the actual publishNotReadyAddresses
# field below because the annotation will stop being respected soon but the
# field is broken in some versions of Kubernetes:
@@ -68,8 +108,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +119,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +132,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +143,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +155,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +173,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +182,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +224,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +288,47 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/logs
+ subPath: app-logs-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r14
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +361,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +398,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
9b5bdc4
to
e87036b
Compare
Path: @@ -1,3 +1,42 @@
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +44,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "Tm5BSVo3clk1Zg=="
+ postgres-password: "MFY0NDdnMGFrSw=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +60,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +75,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,10 +86,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
+ annotations:
# Use this annotation in addition to the actual publishNotReadyAddresses
# field below because the annotation will stop being respected soon but the
# field is broken in some versions of Kubernetes:
@@ -68,8 +108,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +119,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +132,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +143,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +155,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +173,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +182,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +224,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +288,47 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/logs
+ subPath: app-logs-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r15
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +361,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +398,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
e87036b
to
e3f62e7
Compare
Path: @@ -1,3 +1,42 @@
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +44,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "TzJHY1ZVdmVZMQ=="
+ postgres-password: "MDJObUhGMVh6aw=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +60,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +75,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,10 +86,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
+ annotations:
# Use this annotation in addition to the actual publishNotReadyAddresses
# field below because the annotation will stop being respected soon but the
# field is broken in some versions of Kubernetes:
@@ -68,8 +108,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +119,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +132,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +143,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +155,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +173,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +182,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +224,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +288,47 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/logs
+ subPath: app-logs-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r16
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +361,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +398,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
e3f62e7
to
5a206ef
Compare
Path: @@ -1,3 +1,42 @@
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +44,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "eUprYlJsdWt0TA=="
+ postgres-password: "OHgzR2FNZXM0Vg=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +60,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +75,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,10 +86,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
+ annotations:
# Use this annotation in addition to the actual publishNotReadyAddresses
# field below because the annotation will stop being respected soon but the
# field is broken in some versions of Kubernetes:
@@ -68,8 +108,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +119,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +132,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +143,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +155,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +173,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +182,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +224,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +288,47 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/logs
+ subPath: app-logs-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r16
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +361,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +398,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
Path: @@ -1,3 +1,61 @@
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/primary/pdb.yaml
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ maxUnavailable: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +63,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "NENtRVIyaU9NbA=="
+ postgres-password: "ZXkySVc2WU05cw=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +79,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +94,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,10 +105,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
+ annotations:
# Use this annotation in addition to the actual publishNotReadyAddresses
# field below because the annotation will stop being respected soon but the
# field is broken in some versions of Kubernetes:
@@ -68,8 +127,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +138,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +151,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +162,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +174,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +192,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +201,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +243,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +307,44 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r32
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +377,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +414,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
987a323
to
d3e17fb
Compare
Path: @@ -1,3 +1,61 @@
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/primary/pdb.yaml
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ maxUnavailable: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +63,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "M05ibTg5QnQ0Qg=="
+ postgres-password: "RlN1VjlKT2JEcw=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +79,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +94,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,10 +105,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
+ annotations:
# Use this annotation in addition to the actual publishNotReadyAddresses
# field below because the annotation will stop being respected soon but the
# field is broken in some versions of Kubernetes:
@@ -68,8 +127,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +138,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +151,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +162,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +174,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +192,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +201,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +243,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +307,44 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r33
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +377,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +414,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
d3e17fb
to
96a95c8
Compare
Path: @@ -1,3 +1,61 @@
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/primary/pdb.yaml
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ maxUnavailable: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +63,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "bkZ4c1ZmWnBsag=="
+ postgres-password: "STdvaE5PdFVxaQ=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +79,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +94,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,10 +105,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
+ annotations:
# Use this annotation in addition to the actual publishNotReadyAddresses
# field below because the annotation will stop being respected soon but the
# field is broken in some versions of Kubernetes:
@@ -68,8 +127,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +138,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +151,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +162,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +174,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +192,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +201,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +243,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +307,44 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r33
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +377,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +414,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
96a95c8
to
adee853
Compare
Path: @@ -1,3 +1,61 @@
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/primary/pdb.yaml
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ maxUnavailable: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +63,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "bk1mMGhIUFNLMQ=="
+ postgres-password: "NmNNYVlPc2NSVg=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +79,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +94,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,10 +105,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
+ annotations:
# Use this annotation in addition to the actual publishNotReadyAddresses
# field below because the annotation will stop being respected soon but the
# field is broken in some versions of Kubernetes:
@@ -68,8 +127,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +138,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +151,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +162,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +174,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +192,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +201,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +243,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +307,44 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r32
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +377,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +414,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
adee853
to
41bfbbd
Compare
Path: @@ -1,3 +1,61 @@
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/primary/pdb.yaml
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ maxUnavailable: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +63,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "Y21yMEJnVDc0Vg=="
+ postgres-password: "Qm5zbG8xZWJOOA=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +79,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +94,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,10 +105,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
+ annotations:
# Use this annotation in addition to the actual publishNotReadyAddresses
# field below because the annotation will stop being respected soon but the
# field is broken in some versions of Kubernetes:
@@ -68,8 +127,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +138,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +151,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +162,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +174,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +192,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +201,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +243,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +307,44 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r33
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +377,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +414,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
41bfbbd
to
afdf911
Compare
Path: @@ -1,3 +1,61 @@
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/primary/pdb.yaml
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ maxUnavailable: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +63,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "Y3RBUnhMU0JDUg=="
+ postgres-password: "ZE5haXpvcFFmUg=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +79,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +94,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,10 +105,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
+ annotations:
# Use this annotation in addition to the actual publishNotReadyAddresses
# field below because the annotation will stop being respected soon but the
# field is broken in some versions of Kubernetes:
@@ -68,8 +127,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +138,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +151,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +162,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +174,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +192,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +201,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +243,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +307,44 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r33
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +377,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +414,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
afdf911
to
f372251
Compare
Path: @@ -1,3 +1,61 @@
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/primary/pdb.yaml
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ maxUnavailable: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +63,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "dHRFZFdzNVBJNQ=="
+ postgres-password: "cWpucjAxRUc0Qw=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +79,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +94,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,10 +105,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
+ annotations:
# Use this annotation in addition to the actual publishNotReadyAddresses
# field below because the annotation will stop being respected soon but the
# field is broken in some versions of Kubernetes:
@@ -68,8 +127,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +138,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +151,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +162,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +174,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +192,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +201,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +243,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +307,44 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r33
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +377,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +414,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
f372251
to
8107994
Compare
Path: @@ -1,3 +1,61 @@
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/primary/pdb.yaml
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ maxUnavailable: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +63,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "VnMyRmFCaFdRcA=="
+ postgres-password: "UE52a1dVMVpHeg=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +79,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +94,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,10 +105,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
+ annotations:
# Use this annotation in addition to the actual publishNotReadyAddresses
# field below because the annotation will stop being respected soon but the
# field is broken in some versions of Kubernetes:
@@ -68,8 +127,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +138,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +151,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +162,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +174,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +192,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +201,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +243,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +307,44 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r33
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +377,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +414,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
8107994
to
1f1184a
Compare
Path: @@ -1,3 +1,61 @@
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/primary/pdb.yaml
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ maxUnavailable: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +63,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "dTR4V2VBbXpZSA=="
+ postgres-password: "TFN0VDFIV0Q1Ng=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +79,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +94,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,10 +105,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
+ annotations:
# Use this annotation in addition to the actual publishNotReadyAddresses
# field below because the annotation will stop being respected soon but the
# field is broken in some versions of Kubernetes:
@@ -68,8 +127,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +138,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +151,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +162,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +174,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +192,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +201,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +243,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +307,44 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r33
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +377,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +414,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
Signed-off-by: Danny Froberg <[email protected]>
1f1184a
to
a7e4ca2
Compare
Path: @@ -1,3 +1,61 @@
+# Source: postgresql/templates/primary/networkpolicy.yaml
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ podSelector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ - {}
+ ingress:
+ - ports:
+ - port: 5432
+ - port: 9187
+---
+# Source: postgresql/templates/primary/pdb.yaml
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+spec:
+ maxUnavailable: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
+ app.kubernetes.io/component: primary
+---
+# Source: postgresql/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: postgresql
+ namespace: "default"
+ labels:
+ app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
+automountServiceAccountToken: false
+---
# Source: postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
@@ -5,12 +63,12 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
type: Opaque
data:
- postgres-password: "OEVuUGVQMHBtRg=="
+ postgres-password: "MXFKQTFlWVhHWg=="
password: "JHtTRUNSRVRfUE9TVEdSRVNfUEFTU1dPUkR9"
# We don't auto-generate LDAP password when it's not provided as we do for other passwords
---
@@ -21,12 +79,12 @@
name: postgresql-metrics
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
annotations:
- prometheus.io/port: '9187'
+ prometheus.io/port: "9187"
prometheus.io/scrape: "true"
spec:
type: ClusterIP
@@ -36,8 +94,8 @@
port: 9187
targetPort: http-metrics
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc-headless.yaml
@@ -47,15 +105,11 @@
name: postgresql-hl
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- # Use this annotation in addition to the actual publishNotReadyAddresses
- # field below because the annotation will stop being respected soon but the
- # field is broken in some versions of Kubernetes:
- # https://github.com/kubernetes/kubernetes/issues/58662
- service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
+ annotations:
spec:
type: ClusterIP
clusterIP: None
@@ -68,8 +122,8 @@
port: 5432
targetPort: tcp-postgresql
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/svc.yaml
@@ -79,11 +133,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
type: ClusterIP
sessionAffinity: None
@@ -93,8 +146,8 @@
targetPort: tcp-postgresql
nodePort: null
selector:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
---
# Source: postgresql/templates/primary/statefulset.yaml
@@ -104,11 +157,10 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- annotations:
spec:
replicas: 1
serviceName: postgresql-hl
@@ -117,16 +169,16 @@
type: RollingUpdate
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
template:
metadata:
name: postgresql
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
annotations:
backup.velero.io/backup-volumes: data
@@ -135,7 +187,8 @@
pre.hook.backup.velero.io/command: '["/sbin/fsfreeze", "--freeze", "/bitnami/postgresql"]'
pre.hook.backup.velero.io/container: fsfreeze
spec:
- serviceAccountName: default
+ serviceAccountName: postgresql
+ automountServiceAccountToken: false
affinity:
podAffinity:
podAntiAffinity:
@@ -143,25 +196,36 @@
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: primary
- namespaces:
- - "default"
topologyKey: kubernetes.io/hostname
weight: 1
nodeAffinity:
securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ sysctls: []
hostNetwork: false
hostIPC: false
- initContainers:
containers:
- name: postgresql
image: quay.io/bitnami/postgresql:14.1.0
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: BITNAMI_DEBUG
value: "false"
@@ -174,17 +238,17 @@
# Authentication
- name: POSTGRES_USER
value: "${SECRET_POSTGRES_USERNAME}"
- - name: POSTGRES_POSTGRES_PASSWORD
+ - name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: postgres-password
- - name: POSTGRES_PASSWORD
+ key: password
+ - name: POSTGRES_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
- key: password
- - name: POSTGRES_DB
+ key: postgres-password
+ - name: POSTGRES_DATABASE
value: "postgres"
# Replication
# Initdb
@@ -238,21 +302,44 @@
exec pg_isready -U "${SECRET_POSTGRES_USERNAME}" -d "dbname=postgres" -h 127.0.0.1 -p 5432
[ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ]
resources:
- limits: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
requests:
- cpu: 250m
- memory: 256Mi
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/postgresql/tmp
+ subPath: app-tmp-dir
- name: dshm
mountPath: /dev/shm
- name: data
mountPath: /bitnami/postgresql
- name: metrics
- image: docker.io/bitnami/postgres-exporter:0.11.1-debian-11-r15
+ image: docker.io/bitnami/postgres-exporter:0.15.0-debian-12-r33
imagePullPolicy: "IfNotPresent"
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
+ seLinuxOptions: {}
+ seccompProfile:
+ type: RuntimeDefault
env:
- name: DATA_SOURCE_URI
value: 127.0.0.1:5432/postgres?sslmode=disable
@@ -285,15 +372,28 @@
path: /
port: http-metrics
volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
resources:
- limits: {}
- requests: {}
+ limits:
+ cpu: 150m
+ ephemeral-storage: 1024Mi
+ memory: 192Mi
+ requests:
+ cpu: 100m
+ ephemeral-storage: 50Mi
+ memory: 128Mi
volumes:
+ - name: empty-dir
+ emptyDir: {}
- name: dshm
emptyDir:
medium: Memory
volumeClaimTemplates:
- - metadata:
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
name: data
spec:
accessModes:
@@ -309,15 +409,15 @@
name: postgresql
namespace: "default"
labels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
spec:
selector:
matchLabels:
- app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: postgresql
+ app.kubernetes.io/name: postgresql
app.kubernetes.io/component: metrics
endpoints:
- port: http-metrics |
This PR contains the following updates:
11.9.8
->15.5.9
Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
bitnami/charts (postgresql)
v15.5.9
v15.5.8
v15.5.7
v15.5.6
v15.5.5
v15.5.4
v15.5.3
v15.5.1
v15.5.0
v15.4.2
v15.4.1
v15.4.0
v15.3.5
v15.3.4
v15.3.3
v15.3.2
v15.3.1
v15.3.0
v15.2.13
v15.2.12
v15.2.11
v15.2.10
v15.2.9
v15.2.8
v15.2.7
v15.2.6
v15.2.5
v15.2.4
v15.2.3
v15.2.2
v15.2.1
v15.2.0
v15.1.4
v15.1.3
v15.1.2
v15.1.1
v15.1.0
v15.0.0
v14.3.3
v14.3.2
v14.3.1
v14.3.0
v14.2.4
v14.2.3
v14.2.2
v14.2.1
v14.1.3
v14.1.2
v14.1.1
v14.1.0
v14.0.5
v14.0.4
v14.0.3
v14.0.2
v14.0.1
v14.0.0
v13.4.4
v13.4.3
v13.4.2
v13.4.1
v13.4.0
v13.3.1
v13.3.0
v13.2.30
v13.2.29
v13.2.28
v13.2.27
v13.2.26
v13.2.25
v13.2.24
v13.2.23
v13.2.22
v13.2.21
v13.2.20
v13.2.19
v13.2.18
v13.2.17
v13.2.16
v13.2.15
v13.2.14
v13.2.13
v13.2.12
v13.2.11
v13.2.10
v13.2.9
v13.2.8
v13.2.7
v13.2.6
v13.2.5
v13.2.4
v13.2.3
v13.2.2
v13.2.1
v13.2.0
v13.1.5
v13.1.4
v13.1.2
v13.1.1
v13.1.0
v13.0.0
v12.12.10
v12.12.9
v12.12.7
v12.12.5
v12.12.4
v12.11.2
v12.11.1
v12.11.0
v12.10.2
v12.10.1
v12.10.0
v12.9.0
v12.8.5
v12.8.4
v12.8.3
v12.8.2
v12.8.1
v12.8.0
v12.7.3
v12.7.2
v12.7.1
v12.7.0
v12.6.9
v12.6.8
v12.6.7
v12.6.6
v12.6.5
v12.6.4
v12.6.3
v12.6.2
v12.6.1
v12.6.0
v12.5.9
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR has been generated by Mend Renovate. View repository job log here.