forked from ab/homelab
Added nas DB
This commit is contained in:
@ -6,7 +6,7 @@ resources:
|
||||
- app.yaml
|
||||
- external-secrets.yaml
|
||||
- main-db.yaml
|
||||
- nas-db.yaml
|
||||
- nas.yaml
|
||||
|
||||
|
||||
helmCharts:
|
||||
@ -18,3 +18,9 @@ helmCharts:
|
||||
valuesFile: pgadmin4-values.yaml
|
||||
includeCRDs: true
|
||||
|
||||
- name: cloudnative-pg
|
||||
repo: https://cloudnative-pg.github.io/charts
|
||||
version: 0.23.2
|
||||
releaseName: cnpg
|
||||
namespace: psql
|
||||
includeCRDs: true
|
||||
|
142
k8s/core/postgresql/nas.yaml
Normal file
142
k8s/core/postgresql/nas.yaml
Normal file
@ -0,0 +1,142 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: immich-pv
|
||||
namespace: immich
|
||||
spec:
|
||||
capacity:
|
||||
storage: 50Gi
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
persistentVolumeReclaimPolicy: Retain
|
||||
storageClassName: nfs-storage
|
||||
nfs:
|
||||
server: nas.homenet
|
||||
path: /mnt/storage/Storage/k8s/immich/db-vector
|
||||
readOnly: false
|
||||
volumeMode: Filesystem
|
||||
|
||||
---
|
||||
apiVersion: storage.k8s.io/v1
|
||||
kind: StorageClass
|
||||
metadata:
|
||||
name: nfs-storage
|
||||
provisioner: kubernetes.io/no-provisioner
|
||||
reclaimPolicy: Retain
|
||||
volumeBindingMode: Immediate
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
password: cG9zdGdyZXM=
|
||||
username: cG9zdGdyZXM=
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: immich-db-pass
|
||||
namespace: immich
|
||||
type: kubernetes.io/basic-auth
|
||||
|
||||
---
|
||||
apiVersion: postgresql.cnpg.io/v1
|
||||
kind: Cluster
|
||||
metadata:
|
||||
name: immich
|
||||
namespace: immich
|
||||
spec:
|
||||
description: "PostgreSQL cluster for Immich with vector support"
|
||||
imageName: ghcr.io/tensorchord/cloudnative-pgvecto.rs:14-v0.3.0
|
||||
enableSuperuserAccess: true
|
||||
instances: 1
|
||||
startDelay: 300
|
||||
primaryUpdateStrategy: unsupervised
|
||||
|
||||
postgresql:
|
||||
parameters:
|
||||
shared_buffers: "512MB"
|
||||
max_wal_size: "2GB"
|
||||
wal_compression: "on"
|
||||
shared_preload_libraries:
|
||||
- "vectors.so"
|
||||
pg_hba:
|
||||
- host all all 0.0.0.0/0 md5
|
||||
|
||||
bootstrap:
|
||||
initdb:
|
||||
database: immich
|
||||
owner: postgres
|
||||
dataChecksums: true
|
||||
secret:
|
||||
name: immich-db-pass
|
||||
postInitApplicationSQL:
|
||||
- ALTER SYSTEM SET search_path TO "$user", public, vectors;
|
||||
- SET search_path TO "$user", public, vectors;
|
||||
- CREATE EXTENSION IF NOT EXISTS "vectors";
|
||||
- ALTER SCHEMA vectors OWNER TO "postgres";
|
||||
- GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA vectors TO "postgres";
|
||||
- GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "postgres";
|
||||
- CREATE EXTENSION IF NOT EXISTS cube;
|
||||
- CREATE EXTENSION IF NOT EXISTS earthdistance;
|
||||
|
||||
storage:
|
||||
size: 50Gi
|
||||
storageClass: nfs-storage
|
||||
pvcTemplate:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 50Gi
|
||||
storageClassName: nfs-storage
|
||||
volumeMode: Filesystem
|
||||
|
||||
# Настройки ресурсов
|
||||
resources:
|
||||
requests:
|
||||
memory: "1Gi"
|
||||
cpu: "500m"
|
||||
limits:
|
||||
memory: "2Gi"
|
||||
cpu: "1000m"
|
||||
|
||||
affinity:
|
||||
enablePodAntiAffinity: true
|
||||
nodeAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- weight: 100
|
||||
preference:
|
||||
matchExpressions:
|
||||
- key: kubernetes.io/hostname
|
||||
operator: In
|
||||
values:
|
||||
- nas.homenet
|
||||
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: kubernetes.io/hostname
|
||||
operator: In
|
||||
values:
|
||||
- home.homenet
|
||||
- nas.homenet
|
||||
|
||||
tolerations:
|
||||
- key: cnpg.io/cluster
|
||||
effect: NoSchedule
|
||||
value: immich-db
|
||||
operator: Equal
|
||||
|
||||
additionalPodAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- weight: 1
|
||||
podAffinityTerm:
|
||||
labelSelector:
|
||||
matchExpressions:
|
||||
- key: app.component
|
||||
operator: In
|
||||
values:
|
||||
- "pg-cluster"
|
||||
topologyKey: topology.kubernetes.io/zone
|
||||
|
||||
monitoring:
|
||||
enablePodMonitor: true
|
Reference in New Issue
Block a user