Added immich requirements chart

This commit is contained in:
2024-11-03 13:39:03 +00:00
parent 3e4d011806
commit 372d3634e4
8 changed files with 183 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "immich-argocd-requirements.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "immich-argocd-requirements.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "immich-argocd-requirements.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "immich-argocd-requirements.labels" -}}
helm.sh/chart: {{ include "immich-argocd-requirements.chart" . }}
{{ include "immich-argocd-requirements.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "immich-argocd-requirements.selectorLabels" -}}
app.kubernetes.io/name: {{ include "immich-argocd-requirements.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "immich-argocd-requirements.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "immich-argocd-requirements.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,43 @@
# From https://github.com/immich-app/immich/discussions/9060#discussioncomment-9688353
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: immich-pg
namespace: {{ .Values.mainNamespace }}
spec:
instances: {{ .Values.immichDb.dbClusterInstances }}
imageName: ghcr.io/tensorchord/cloudnative-pgvecto.rs:16.3-v0.2.1
# superuserSecret:
# name: immich-pg-superuser
# enableSuperuserAccess: true
startDelay: 30
stopDelay: 100
# primaryUpdateStrategy: unsupervised
# primaryUpdateMethod: switchover
postgresql:
shared_preload_libraries:
- "vectors.so"
enableAlterSystem: true
storage:
storageClass: {{ .Values.immichDb.dbClusterStorageClass }}
size: {{ .Values.immichDb.dbClusterStorageSize }}
# monitoring:
# enablePodMonitor: false
bootstrap:
initdb:
database: immich
owner: immich
# secret:
# name: immich-pg-user
dataChecksums: true
postInitApplicationSQL:
- ALTER SYSTEM SET search_path TO "$user", public, vectors;
- SET search_path TO "$user", public, vectors;
- CREATE EXTENSION IF NOT EXISTS "vectors";
- CREATE EXTENSION IF NOT EXISTS "cube";
- CREATE EXTENSION IF NOT EXISTS "earthdistance";
- ALTER SCHEMA vectors OWNER TO "immich";
- GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA vectors TO "immich";
- GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "immich";
# - CREATE EXTENSION IF NOT EXISTS "vector";
# - ALTER ROLE "immich" WITH "superuser";

View File

@@ -0,0 +1,16 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ts-immich
annotations:
tailscale.com/funnel: "true"
spec:
defaultBackend:
service:
name: immich-server
port:
name: http
ingressClassName: tailscale
tls:
- hosts:
- photos

View File

@@ -0,0 +1,9 @@
apiVersion: postgresql.cnpg.io/v1
kind: ImageCatalog
metadata:
name: pgvecto-rs
namespace: {{ .Values.mainNamespace }}
spec:
images:
- major: 16
image: ghcr.io/tensorchord/cloudnative-pgvecto.rs:16-v0.2.1