Upgrade Immich to v2.1.0

Move to using kustomize'd helm charts to deploy it
Update the new version of the helm chart, which has very different
values structure
Move database into the db namespace
Upgrade the db to include vectorchord
Upgrade CNPG to now include barman cloud natively
Migrate databases to Barman Cloud plugin, completely
Eliminate yet another shell script step in applying my k8s config
This commit is contained in:
Greg Hellings
2025-10-19 21:48:30 -05:00
parent 0de9d5e002
commit 89460c4e21
16 changed files with 1388 additions and 189 deletions
+89
View File
@@ -0,0 +1,89 @@
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: immich
spec:
imageName: "ghcr.io/corentingiraud/cnpg-pgvector-vectorchord:16-migration"
#imageName: "ghcr.io/tensorchord/cloudnative-pgvecto.rs:16-v0.3.0"
#postgresUID: 1
instances: 1
storage:
size: 60Gi
primaryUpdateStrategy: unsupervised
postgresql:
shared_preload_libraries:
- vectors.so
- vchord.so
bootstrap:
recovery:
source: origin
# 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: pgvector
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: postgresql.cnpg.io/v1
kind: ScheduledBackup
metadata:
name: immich-backup
spec:
immediate: true # 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
+1
View File
@@ -7,4 +7,5 @@ resources:
- postgres-gitlab.yaml
- postgres-pgadmin.yaml
- postgres-matrix.yaml
- immich.yaml
- ingress.yaml
+4 -1
View File
@@ -35,7 +35,7 @@ spec:
plugins:
- name: barman-cloud.cloudnative-pg.io
isWALArchiver: false
isWALArchiver: true
parameters:
barmanObjectName: k3sbackup-objectstore
@@ -85,3 +85,6 @@ spec:
backupOwnerReference: self
cluster:
name: postgres
method: plugin
pluginConfiguration:
name: barman-cloud.cloudnative-pg.io
+34
View File
@@ -133,3 +133,37 @@ spec:
remoteRef:
key: 685b29c6-9264-4e60-ba4a-b2ea005a5d7b
property: password
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: postgres-user-immich
namespace: db
spec:
target:
name: postgres-user-immich
deletionPolicy: Delete
template:
type: Opaque
data:
username: |-
{{ .username }}
password: |-
{{ .password }}
data:
- secretKey: username
sourceRef:
storeRef:
name: bitwarden-login
kind: ClusterSecretStore
remoteRef:
key: 5ce63e26-dd7f-46d4-b7ed-b310002ef93f
property: username
- secretKey: password
sourceRef:
storeRef:
name: bitwarden-login
kind: ClusterSecretStore
remoteRef:
key: 5ce63e26-dd7f-46d4-b7ed-b310002ef93f
property: password