Add immich helm with common probe(?)

This commit is contained in:
Ruben Hensen
2024-12-15 19:07:55 +01:00
parent 57a1a69665
commit b5aa614bcb
8 changed files with 157 additions and 1325 deletions
+13
View File
@@ -0,0 +1,13 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: immich-claim
name: immich-claim
namespace: immich
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 400Gi
+19 -19
View File
@@ -1,19 +1,19 @@
apiVersion: argoproj.io/v1alpha1 # apiVersion: argoproj.io/v1alpha1
kind: Application # kind: Application
metadata: # metadata:
name: restore-backup-app # name: restore-backup-app
namespace: argocd # namespace: argocd
finalizers: # finalizers:
- resources-finalizer.argocd.argoproj.io # - resources-finalizer.argocd.argoproj.io
spec: # spec:
project: default # project: default
source: # source:
repoURL: https://github.com/rubenhensen/k8scd.git # repoURL: https://github.com/rubenhensen/k8scd.git
targetRevision: HEAD # targetRevision: HEAD
path: restore-backup # path: restore-backup
destination: # destination:
server: https://kubernetes.default.svc # server: https://kubernetes.default.svc
namespace: immich # Change too namespace where the volume is! # namespace: immich # Change too namespace where the volume is!
syncPolicy: # syncPolicy:
syncOptions: # syncOptions:
- CreateNamespace=true # - CreateNamespace=true
+1 -1
View File
@@ -16,4 +16,4 @@ patches:
kind: ReplicaSet kind: ReplicaSet
name: argocd-notifications-controller name: argocd-notifications-controller
path: overlays/argocd-notifications-controller-patch.yaml path: overlays/argocd-notifications-controller-patch.yaml
- path: overlays/argocd-cm.patch.yaml # - path: overlays/argocd-cm.patch.yaml
+123 -224
View File
@@ -1,233 +1,132 @@
# apiVersion: argoproj.io/v1alpha1 apiVersion: argoproj.io/v1alpha1
# kind: Application kind: Application
# metadata: metadata:
# name: helm-immich name: helm-immich
# namespace: argocd namespace: argocd
# finalizers: finalizers:
# - resources-finalizer.argocd.argoproj.io - resources-finalizer.argocd.argoproj.io
# spec: spec:
# syncPolicy: syncPolicy:
# syncOptions: syncOptions:
# - CreateNamespace=true - CreateNamespace=true
# automated: automated:
# prune: true prune: true
# selfHeal: true selfHeal: true
# project: default project: default
# sources: sources:
# - chart: immich - chart: immich
# repoURL: https://immich-app.github.io/immich-charts repoURL: https://immich-app.github.io/immich-charts
# targetRevision: 0.8.5 # Chart version! https://argo-cd.readthedocs.io/en/latest/user-guide/application-specification/ targetRevision: 0.8.5 # Chart version! https://argo-cd.readthedocs.io/en/latest/user-guide/application-specification/
# helm: helm:
# values: | values: |
# env: env:
# REDIS_HOSTNAME: '{{ printf "%s-redis-master" .Release.Name }}' REDIS_HOSTNAME: '{{ printf "%s-redis-master" .Release.Name }}'
# DB_HOSTNAME: "{{ .Release.Name }}-postgresql" DB_HOSTNAME: "{{ .Release.Name }}-postgresql"
# DB_USERNAME: "{{ .Values.postgresql.global.postgresql.auth.username }}" DB_USERNAME: "{{ .Values.postgresql.global.postgresql.auth.username }}"
# DB_DATABASE_NAME: "{{ .Values.postgresql.global.postgresql.auth.database }}" DB_DATABASE_NAME: "{{ .Values.postgresql.global.postgresql.auth.database }}"
# # -- You should provide your own secret outside of this helm-chart and use `postgresql.global.postgresql.auth.existingSecret` to provide credentials to the postgresql instance # -- You should provide your own secret outside of this helm-chart and use `postgresql.global.postgresql.auth.existingSecret` to provide credentials to the postgresql instance
# DB_PASSWORD: "{{ .Values.postgresql.global.postgresql.auth.password }}" DB_PASSWORD: "{{ .Values.postgresql.global.postgresql.auth.password }}"
# IMMICH_MACHINE_LEARNING_URL: '{{ printf "http://%s-machine-learning:3003" .Release.Name }}' IMMICH_MACHINE_LEARNING_URL: '{{ printf "http://%s-machine-learning:3003" .Release.Name }}'
# image: image:
# tag: v1.119.0 tag: v1.119.0
startupProbe: {}
# immich: immich:
# metrics: metrics:
# # Enabling this will create the service monitors needed to monitor immich with the prometheus operator # Enabling this will create the service monitors needed to monitor immich with the prometheus operator
# enabled: false enabled: false
# persistence: persistence:
# # Main data store for all photos shared between different components. # Main data store for all photos shared between different components.
# library: library:
# # Automatically creating the library volume is not supported by this chart # Automatically creating the library volume is not supported by this chart
# # You have to specify an existing PVC to use # You have to specify an existing PVC to use
# existingClaim: immich-claim existingClaim: immich-claim
probes:
# # configuration is immich-config.json converted to yaml startup:
# # ref: https://immich.app/docs/install/config-file/ enabled: false
# #
# configuration: {} # configuration is immich-config.json converted to yaml
# # trash: # ref: https://immich.app/docs/install/config-file/
# # enabled: false #
# # days: 30 configuration: {}
# # storageTemplate: # trash:
# # enabled: true # enabled: false
# # template: "{{y}}/{{y}}-{{MM}}-{{dd}}/{{filename}}" # days: 30
# storageTemplate:
# enabled: true
# template: "{{y}}/{{y}}-{{MM}}-{{dd}}/{{filename}}"
# # Dependencies # Dependencies
# postgresql: postgresql:
# enabled: true enabled: true
# image: image:
# repository: tensorchord/pgvecto-rs repository: tensorchord/pgvecto-rs
# tag: pg14-v0.2.0 tag: pg14-v0.2.0
# global: global:
# postgresql: postgresql:
# auth: auth:
# username: immich username: immich
# database: immich database: immich
# password: immich password: immich
# primary: primary:
# containerSecurityContext: containerSecurityContext:
# readOnlyRootFilesystem: false readOnlyRootFilesystem: false
# initdb: initdb:
# scripts: scripts:
# create-extensions.sql: | create-extensions.sql: |
# CREATE EXTENSION cube; CREATE EXTENSION cube;
# CREATE EXTENSION earthdistance; CREATE EXTENSION earthdistance;
# CREATE EXTENSION vectors; CREATE EXTENSION vectors;
# redis: redis:
# enabled: true enabled: true
# architecture: standalone architecture: standalone
# auth: auth:
# enabled: false enabled: false
# # Immich components # Immich components
# server: server:
# enabled: true enabled: true
# image: image:
# repository: ghcr.io/immich-app/immich-server repository: ghcr.io/immich-app/immich-server
# pullPolicy: IfNotPresent pullPolicy: IfNotPresent
# ingress: ingress:
# main: main:
# enabled: true enabled: true
# ingressClassName: nginx ingressClassName: nginx
# annotations: annotations:
# # proxy-body-size is set to 0 to remove the body limit on file uploads # proxy-body-size is set to 0 to remove the body limit on file uploads
# nginx.ingress.kubernetes.io/proxy-body-size: "0" nginx.ingress.kubernetes.io/proxy-body-size: "0"
# cert-manager.io/cluster-issuer: prod-cluster-issuer cert-manager.io/cluster-issuer: prod-cluster-issuer
# nginx.ingress.kubernetes.io/backend-protocol: "HTTP" nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
# hosts: hosts:
# - host: immich.hensen.io - host: immich.hensen.io
# paths: paths:
# - path: "/" - path: "/"
# tls: tls:
# - secretName: letsencrypt-prod - secretName: letsencrypt-prod
# hosts: hosts:
# - immich.hensen.io - immich.hensen.io
# machine-learning: machine-learning:
# enabled: true enabled: true
# image: image:
# repository: ghcr.io/immich-app/immich-machine-learning repository: ghcr.io/immich-app/immich-machine-learning
# pullPolicy: IfNotPresent pullPolicy: IfNotPresent
# env: env:
# TRANSFORMERS_CACHE: /cache TRANSFORMERS_CACHE: /cache
# persistence: persistence:
# cache: cache:
# enabled: true enabled: true
# size: 10Gi size: 10Gi
# # Optional: Set this to pvc to avoid downloading the ML models every start. # Optional: Set this to pvc to avoid downloading the ML models every start.
# type: emptyDir type: emptyDir
# accessMode: ReadWriteMany accessMode: ReadWriteMany
# # storageClass: your-class # storageClass: your-class
# destination: destination:
# server: https://kubernetes.default.svc server: https://kubernetes.default.svc
# namespace: immich namespace: immich
# env:
# REDIS_HOSTNAME: '{{ printf "%s-redis-master" .Release.Name }}'
# DB_HOSTNAME: "{{ .Release.Name }}-postgresql"
# DB_USERNAME: "{{ .Values.postgresql.global.postgresql.auth.username }}"
# DB_DATABASE_NAME: "{{ .Values.postgresql.global.postgresql.auth.database }}"
# # -- You should provide your own secret outside of this helm-chart and use `postgresql.global.postgresql.auth.existingSecret` to provide credentials to the postgresql instance
# DB_PASSWORD: "{{ .Values.postgresql.global.postgresql.auth.password }}"
# IMMICH_MACHINE_LEARNING_URL: '{{ printf "http://%s-machine-learning:3003" .Release.Name }}'
# image:
# tag: v1.119.0
# immich:
# metrics:
# # Enabling this will create the service monitors needed to monitor immich with the prometheus operator
# enabled: false
# persistence:
# # Main data store for all photos shared between different components.
# library:
# # Automatically creating the library volume is not supported by this chart
# # You have to specify an existing PVC to use
# existingClaim: immich-claim
# # configuration is immich-config.json converted to yaml
# # ref: https://immich.app/docs/install/config-file/
# #
# configuration: {}
# # trash:
# # enabled: false
# # days: 30
# # storageTemplate:
# # enabled: true
# # template: "{{y}}/{{y}}-{{MM}}-{{dd}}/{{filename}}"
# # Dependencies
# postgresql:
# enabled: true
# image:
# repository: tensorchord/pgvecto-rs
# tag: pg14-v0.2.0
# global:
# postgresql:
# auth:
# username: immich
# database: immich
# password: immich
# primary:
# containerSecurityContext:
# readOnlyRootFilesystem: false
# initdb:
# scripts:
# create-extensions.sql: |
# CREATE EXTENSION cube;
# CREATE EXTENSION earthdistance;
# CREATE EXTENSION vectors;
# redis:
# enabled: true
# architecture: standalone
# auth:
# enabled: false
# # Immich components
# server:
# enabled: true
# image:
# repository: ghcr.io/immich-app/immich-server
# pullPolicy: IfNotPresent
# ingress:
# main:
# enabled: true
# ingressClassName: nginx
# annotations:
# # proxy-body-size is set to 0 to remove the body limit on file uploads
# nginx.ingress.kubernetes.io/proxy-body-size: "0"
# cert-manager.io/cluster-issuer: prod-cluster-issuer
# nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
# hosts:
# - host: immich.hensen.io
# paths:
# - path: "/"
# tls:
# - secretName: letsencrypt-prod
# hosts:
# - immich.hensen.io
# machine-learning:
# enabled: true
# image:
# repository: ghcr.io/immich-app/immich-machine-learning
# pullPolicy: IfNotPresent
# env:
# TRANSFORMERS_CACHE: /cache
# persistence:
# cache:
# enabled: true
# size: 10Gi
# # Optional: Set this to pvc to avoid downloading the ML models every start.
# type: emptyDir
# accessMode: ReadWriteMany
# # storageClass: your-class
-12
View File
@@ -1,12 +0,0 @@
# apiVersion: v1
# kind: PersistentVolumeClaim
# metadata:
# labels:
# io.kompose.service: immich-claim
# name: immich-claim
# spec:
# accessModes:
# - ReadWriteOnce
# resources:
# requests:
# storage: 400Gi
-1057
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
Example container to restore files. See `Obsidian > Cluster > Restore longhorn backup` for more
-12
View File
@@ -1,12 +0,0 @@
# apiVersion: v1
# kind: PersistentVolumeClaim
# metadata:
# labels:
# io.kompose.service: immich-claim
# name: immich-claim
# spec:
# accessModes:
# - ReadWriteOnce
# resources:
# requests:
# storage: 400Gi