chore: upgrade Immich db to PG 18

This commit is contained in:
Greg Hellings
2026-04-21 16:22:21 -05:00
parent 3b78dfec41
commit 8ba503ca5d
12 changed files with 190 additions and 145 deletions
+1 -1
View File
@@ -34,7 +34,7 @@ spec:
image:
tag: v2.7.5
env:
DB_HOSTNAME: immich-rw.db.svc.cluster.local
DB_HOSTNAME: immich-rw
DB_DATABASE_NAME: immich
DB_USERNAME:
valueFrom:
+161
View File
@@ -0,0 +1,161 @@
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: immich
spec:
imageName: "ghcr.io/tensorchord/cloudnative-vectorchord:18"
#postgresUID: 1
instances: 1
storage:
size: 60Gi
primaryUpdateStrategy: unsupervised
postgresql:
shared_preload_libraries:
- vchord.so
bootstrap:
# Use these with the name "immich-1" to restore from the backups
recovery:
source: origin
# Use these two lines in order to restore from the other database,
# once it has restored from the WALs
#pg_basebackup:
# source: restore
# Use this block to bootstrap the cluster, if you don't have backups.
# What are you doing without backups, you chump?!
# initdb:
# database: immich
# owner: immich
# secret:
# name: postgres-user-immich
# dataChecksums: true
# postInitApplicationSQL:
# - ALTER SYSTEM SET search_path TO "$user", public, vectors;
# - SET search_path TO "$user", public, vectors;
# - CREATE EXTENSION IF NOT EXISTS "cube";
# - CREATE EXTENSION IF NOT EXISTS "earthdistance";
# - GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "immich";
externalClusters:
- name: origin
plugin:
name: barman-cloud.cloudnative-pg.io
parameters:
barmanObjectName: k3sbackup-objectstore
serverName: immich
- name: restore
connectionParameters:
host: immich-1-rw
user: streaming_replica
sslmode: verify-full
sslCert:
name: immich-1-replication
key: tls.crt
sslKey:
name: immich-1-replication
key: tls.key
sslRootCert:
name: immich-1-ca
key: ca.crt
managed:
roles:
- name: immich
ensure: present
comment: Immich DB user
login: true
superuser: true
passwordSecret:
name: postgres-user-immich
plugins:
- name: barman-cloud.cloudnative-pg.io
isWALArchiver: true
parameters:
barmanObjectName: k3sbackup-objectstore
---
apiVersion: postgresql.cnpg.io/v1
kind: Database
metadata:
name: database-immich
spec:
name: immich
owner: immich
cluster:
name: immich
extensions:
- name: vectors
ensure: present
- name: vectorchord
ensure: present
- name: cube
ensure: present
- name: earthdistance
ensure: present
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: k3sbackup-externalsecret
spec:
target:
name: k3sbackup-secret
deletionPolicy: Delete
template:
type: Opaque
data:
username: |-
{{ .username }}
password: |-
{{ .password }}
data:
- secretKey: username
sourceRef:
storeRef:
name: bitwarden-login
kind: ClusterSecretStore
remoteRef:
key: 685b29c6-9264-4e60-ba4a-b2ea005a5d7b
property: username
- secretKey: password
sourceRef:
storeRef:
name: bitwarden-login
kind: ClusterSecretStore
remoteRef:
key: 685b29c6-9264-4e60-ba4a-b2ea005a5d7b
property: password
---
apiVersion: barmancloud.cnpg.io/v1
kind: ObjectStore
metadata:
name: k3sbackup-objectstore
spec:
configuration:
destinationPath: "s3://k3sbackup/postgres"
endpointURL: "http://chronicles.thehellings.lan:9000/"
s3Credentials:
accessKeyId:
name: k3sbackup-secret
key: username
secretAccessKey:
name: k3sbackup-secret
key: password
wal:
compression: gzip
retentionPolicy: "30d"
---
apiVersion: postgresql.cnpg.io/v1
kind: ScheduledBackup
metadata:
name: immich-backup
spec:
immediate: false # Create one when this is added to the cluster
schedule: "0 2 0 * * *" # 1AM, nightly
backupOwnerReference: self
cluster:
name: immich
method: plugin
pluginConfiguration:
name: barman-cloud.cloudnative-pg.io
+2 -1
View File
@@ -2,8 +2,9 @@ namespace: immich
resources:
- namespace.yaml
- chart.yaml
- postgres-user-secret.yaml
- database.yaml
- chart.yaml
- pvc.yaml
- ingress.yaml
- backup.yaml