chore: upgrade Immich db to PG 18
This commit is contained in:
@@ -1,32 +1,21 @@
|
|||||||
apiVersion: source.toolkit.fluxcd.io/v1
|
apiVersion: source.toolkit.fluxcd.io/v1
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
metadata:
|
metadata:
|
||||||
name: kubernetes-dashboard
|
name: headlamp
|
||||||
spec:
|
spec:
|
||||||
url: https://kubernetes.github.io/dashboard/
|
url: "https://kubernetes-sigs.github.io/headlamp/"
|
||||||
interval: "24h"
|
interval: "24h"
|
||||||
---
|
---
|
||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||||
kind: HelmRelease
|
kind: HelmRelease
|
||||||
metadata:
|
metadata:
|
||||||
name: kubernetes-dashboard
|
name: headlamp
|
||||||
spec:
|
spec:
|
||||||
interval: "24h"
|
interval: "24h"
|
||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: kubernetes-dashboard
|
chart: headlamp
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: kubernetes-dashboard
|
name: headlamp
|
||||||
interval: "24h"
|
interval: "24h"
|
||||||
values:
|
|
||||||
app:
|
|
||||||
settings:
|
|
||||||
global:
|
|
||||||
clusterName: Hellings Home
|
|
||||||
itemsPerPage: 25
|
|
||||||
ingress:
|
|
||||||
enabled: true
|
|
||||||
hosts:
|
|
||||||
- dashboard.shire-zebra.ts.net
|
|
||||||
ingressClassName: tailscale
|
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: dashboard-tailscale
|
||||||
|
spec:
|
||||||
|
ingressClassName: tailscale
|
||||||
|
defaultBackend:
|
||||||
|
service:
|
||||||
|
name: headlamp
|
||||||
|
port:
|
||||||
|
number: 3001
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- headlamp
|
||||||
@@ -4,3 +4,4 @@ resources:
|
|||||||
- namespace.yaml
|
- namespace.yaml
|
||||||
- chart.yaml
|
- chart.yaml
|
||||||
- user.yaml
|
- user.yaml
|
||||||
|
- ingress.yaml
|
||||||
|
|||||||
@@ -1,89 +0,0 @@
|
|||||||
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
|
|
||||||
@@ -7,5 +7,4 @@ resources:
|
|||||||
- postgres-gitlab.yaml
|
- postgres-gitlab.yaml
|
||||||
- postgres-pgadmin.yaml
|
- postgres-pgadmin.yaml
|
||||||
- postgres-matrix.yaml
|
- postgres-matrix.yaml
|
||||||
- immich.yaml
|
|
||||||
- ingress.yaml
|
- ingress.yaml
|
||||||
|
|||||||
@@ -133,37 +133,3 @@ spec:
|
|||||||
remoteRef:
|
remoteRef:
|
||||||
key: 685b29c6-9264-4e60-ba4a-b2ea005a5d7b
|
key: 685b29c6-9264-4e60-ba4a-b2ea005a5d7b
|
||||||
property: password
|
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
|
|
||||||
|
|||||||
@@ -31,3 +31,6 @@ spec:
|
|||||||
crds:
|
crds:
|
||||||
create: true
|
create: true
|
||||||
includeCRDs: true
|
includeCRDs: true
|
||||||
|
webhook:
|
||||||
|
certManager:
|
||||||
|
enable: true
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ spec:
|
|||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: kyverno
|
chart: kyverno
|
||||||
version: "1.17.1"
|
version: "3.7.1"
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: kyverno
|
name: kyverno
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ spec:
|
|||||||
image:
|
image:
|
||||||
tag: v2.7.5
|
tag: v2.7.5
|
||||||
env:
|
env:
|
||||||
DB_HOSTNAME: immich-rw.db.svc.cluster.local
|
DB_HOSTNAME: immich-rw
|
||||||
DB_DATABASE_NAME: immich
|
DB_DATABASE_NAME: immich
|
||||||
DB_USERNAME:
|
DB_USERNAME:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
|
|||||||
@@ -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,8 +2,9 @@ namespace: immich
|
|||||||
|
|
||||||
resources:
|
resources:
|
||||||
- namespace.yaml
|
- namespace.yaml
|
||||||
- chart.yaml
|
|
||||||
- postgres-user-secret.yaml
|
- postgres-user-secret.yaml
|
||||||
|
- database.yaml
|
||||||
|
- chart.yaml
|
||||||
- pvc.yaml
|
- pvc.yaml
|
||||||
- ingress.yaml
|
- ingress.yaml
|
||||||
- backup.yaml
|
- backup.yaml
|
||||||
|
|||||||
@@ -7,8 +7,8 @@
|
|||||||
let
|
let
|
||||||
cfg = config.greg.kubernetes;
|
cfg = config.greg.kubernetes;
|
||||||
cert-manager = pkgs.fetchurl {
|
cert-manager = pkgs.fetchurl {
|
||||||
url = "https://github.com/cert-manager/cert-manager/releases/download/v1.18.2/cert-manager.yaml";
|
url = "https://github.com/cert-manager/cert-manager/releases/download/v1.20.2/cert-manager.yaml";
|
||||||
sha256 = "0vx1nfyhl0rzb6psfxplq8pfp18mrrdk83n8rj2ph8q6r15vcih5";
|
sha256 = "sha256-HOEcrpEq3sxp5rtiNDX6/J7SFQX57/+YvXHXuA8B2x8=";
|
||||||
};
|
};
|
||||||
flux = pkgs.fetchurl {
|
flux = pkgs.fetchurl {
|
||||||
url = "https://github.com/fluxcd/flux2/releases/download/v2.7.2/install.yaml";
|
url = "https://github.com/fluxcd/flux2/releases/download/v2.7.2/install.yaml";
|
||||||
|
|||||||
Reference in New Issue
Block a user