kubernetes: add and update new and existing projects
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				ci/woodpecker/push/demo-workflow Pipeline was successful
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	ci/woodpecker/push/demo-workflow Pipeline was successful
				
			This commit is contained in:
		
							
								
								
									
										30
									
								
								kubernetes/immich/immich-helm-chart/.helmignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								kubernetes/immich/immich-helm-chart/.helmignore
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,30 @@ | ||||
| # Patterns to ignore when building packages. | ||||
| # This supports shell glob matching, relative path matching, and | ||||
| # negation (prefixed with !). Only one pattern per line. | ||||
| .DS_Store | ||||
| # Common VCS dirs | ||||
| .git/ | ||||
| .gitignore | ||||
| .bzr/ | ||||
| .bzrignore | ||||
| .hg/ | ||||
| .hgignore | ||||
| .svn/ | ||||
| # Common backup files | ||||
| *.swp | ||||
| *.bak | ||||
| *.tmp | ||||
| *~ | ||||
| # Various IDEs | ||||
| .project | ||||
| .idea/ | ||||
| *.tmproj | ||||
| .vscode/ | ||||
| # OWNERS file for Kubernetes | ||||
| OWNERS | ||||
|  | ||||
| # helm-docs templates | ||||
| *.gotmpl | ||||
|  | ||||
| # helm unit tests | ||||
| tests/ | ||||
							
								
								
									
										6
									
								
								kubernetes/immich/immich-helm-chart/Chart.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								kubernetes/immich/immich-helm-chart/Chart.lock
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| dependencies: | ||||
| - name: common | ||||
|   repository: https://bjw-s-labs.github.io/helm-charts | ||||
|   version: 1.4.0 | ||||
| digest: sha256:7acd0966a8a046c2dc4f5eecdc4c34439c1f0fcacc4dcb99630721d21414234c | ||||
| generated: "2025-10-05T00:42:21.037899892+03:00" | ||||
							
								
								
									
										25
									
								
								kubernetes/immich/immich-helm-chart/Chart.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								kubernetes/immich/immich-helm-chart/Chart.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,25 @@ | ||||
| --- | ||||
| apiVersion: v2 | ||||
| description: A chart to power Immich (immich.app) running on kubernetes | ||||
| name: immich | ||||
| version: 0.9.3 | ||||
| appVersion: v1.143.1 | ||||
| home: https://immich.app/ | ||||
| icon: https://raw.githubusercontent.com/immich-app/immich/main/design/immich-logo.svg | ||||
| sources: | ||||
|   - https://github.com/immich-app/immich-charts/tree/main/charts/immich | ||||
|   - https://github.com/immich-app/immich | ||||
| maintainers: | ||||
|   - name: PixelJonas | ||||
|     email: 5434875+PixelJonas@users.noreply.github.com | ||||
|   - name: bo0tzz | ||||
|     email: immich@bo0tzz.me | ||||
| dependencies: | ||||
|   - name: common | ||||
|     repository: https://bjw-s-labs.github.io/helm-charts | ||||
|     version: 1.4.0 | ||||
| annotations: | ||||
|   artifacthub.io/category: storage | ||||
|   artifacthub.io/changes: |- | ||||
|     - kind: added | ||||
|       description: Made chart available through OCI repository | ||||
							
								
								
									
										
											BIN
										
									
								
								kubernetes/immich/immich-helm-chart/charts/common-1.4.0.tgz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								kubernetes/immich/immich-helm-chart/charts/common-1.4.0.tgz
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										12
									
								
								kubernetes/immich/immich-helm-chart/templates/checks.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								kubernetes/immich/immich-helm-chart/templates/checks.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | ||||
| {{- $name := .Values.immich.persistence.library.existingClaim | required ".Values.immich.persistence.library.existingClaim is required." -}} | ||||
| {{- if not (kindIs "string" $name) -}}{{- fail ".Values.immich.persistence.library.existingClaim must be a string" -}}{{- end -}} | ||||
|  | ||||
| {{ if .Values.postgresql }} | ||||
|     {{ fail "The postgres subchart has been removed. Please see https://github.com/immich-app/immich-charts/issues/149 for more detail." }} | ||||
| {{ end }} | ||||
|  | ||||
| {{ if hasKey .Values "redis" }} | ||||
|   {{ if .Values.redis.enabled }} | ||||
|     {{ fail "The bitnami redis subchart has been deprecated and removed. Please use the included valkey deployment or an external instance."}} | ||||
|   {{ end }} | ||||
| {{ end }} | ||||
| @ -0,0 +1,15 @@ | ||||
| {{- if .Values.immich.configuration }} | ||||
| apiVersion: v1 | ||||
| kind: ConfigMap | ||||
| metadata: | ||||
|   name: {{ .Release.Name }}-immich-config | ||||
|   labels: | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/managed-by: {{ .Release.Service }} | ||||
|     app.kubernetes.io/name: {{ .Chart.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     helm.sh/chart: {{ printf "%s-%s\n" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} | ||||
| data: | ||||
|   immich-config.yaml: | | ||||
| {{- .Values.immich.configuration | toYaml | nindent 4 }} | ||||
| {{- end }} | ||||
| @ -0,0 +1,52 @@ | ||||
| {{- define "immich.machine-learning.hardcodedValues" -}} | ||||
| global: | ||||
|   nameOverride: machine-learning | ||||
|  | ||||
| controller: | ||||
|   strategy: RollingUpdate | ||||
|  | ||||
| service: | ||||
|   main: | ||||
|     enabled: true | ||||
|     primary: true | ||||
|     type: ClusterIP | ||||
|     ports: | ||||
|       http: | ||||
|         enabled: true | ||||
|         primary: true | ||||
|         port: 3003 | ||||
|         protocol: HTTP | ||||
|  | ||||
| probes: | ||||
|   liveness: &probes | ||||
|     enabled: true | ||||
|     custom: true | ||||
|     spec: | ||||
|       httpGet: | ||||
|         path: /ping | ||||
|         port: http | ||||
|       initialDelaySeconds: 0 | ||||
|       periodSeconds: 10 | ||||
|       timeoutSeconds: 1 | ||||
|       failureThreshold: 3 | ||||
|   readiness: *probes | ||||
|   startup: | ||||
|     enabled: true | ||||
|     custom: true | ||||
|     spec: | ||||
|       httpGet: | ||||
|         path: /ping | ||||
|         port: http | ||||
|       initialDelaySeconds: 0 | ||||
|       periodSeconds: 10 | ||||
|       timeoutSeconds: 1 | ||||
|       failureThreshold: 60 | ||||
| {{- end }} | ||||
|  | ||||
| {{- /* Have to reference with index here because the dash breaks a normal dereference */}} | ||||
| {{ if (index .Values "machine-learning").enabled }} | ||||
| {{- $ctx := deepCopy . -}} | ||||
| {{- $_ := get .Values "machine-learning" | mergeOverwrite $ctx.Values -}} | ||||
| {{- $_ = include "immich.machine-learning.hardcodedValues" . | fromYaml | merge $ctx.Values -}} | ||||
| {{- include "bjw-s.common.loader.all" $ctx }} | ||||
| {{ end }} | ||||
							
								
								
									
										94
									
								
								kubernetes/immich/immich-helm-chart/templates/server.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								kubernetes/immich/immich-helm-chart/templates/server.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,94 @@ | ||||
| {{- define "immich.server.hardcodedValues" -}} | ||||
| global: | ||||
|   nameOverride: server | ||||
|  | ||||
| env: | ||||
|   {{ if .Values.immich.metrics.enabled }} | ||||
|       IMMICH_TELEMETRY_INCLUDE: all | ||||
|   {{ end }} | ||||
|   {{- if .Values.immich.configuration }} | ||||
|       IMMICH_CONFIG_FILE: /config/immich-config.yaml | ||||
|   {{- end }} | ||||
|  | ||||
| {{- if .Values.immich.configuration }} | ||||
| podAnnotations: | ||||
|   checksum/config: {{ .Values.immich.configuration | toYaml | sha256sum }} | ||||
| {{- end }} | ||||
|  | ||||
| controller: | ||||
|   strategy: RollingUpdate | ||||
|  | ||||
| service: | ||||
|   main: | ||||
|     enabled: true | ||||
|     primary: true | ||||
|     type: ClusterIP | ||||
|     ports: | ||||
|       http: | ||||
|         enabled: true | ||||
|         primary: true | ||||
|         port: 2283 | ||||
|         protocol: HTTP | ||||
|       metrics-api: | ||||
|         enabled: {{ .Values.immich.metrics.enabled }} | ||||
|         port: 8081 | ||||
|         protocol: HTTP | ||||
|       metrics-ms: | ||||
|         enabled: {{ .Values.immich.metrics.enabled }} | ||||
|         port: 8082 | ||||
|         protocol: HTTP | ||||
|  | ||||
|  | ||||
| serviceMonitor: | ||||
|   main: | ||||
|     enabled: {{ .Values.immich.metrics.enabled }} | ||||
|     endpoints: | ||||
|       - port: metrics-api | ||||
|         scheme: http | ||||
|       - port: metrics-ms | ||||
|         scheme: http | ||||
|  | ||||
| probes: | ||||
|   liveness: &probes | ||||
|     enabled: true | ||||
|     custom: true | ||||
|     spec: | ||||
|       httpGet: | ||||
|         path: /api/server/ping | ||||
|         port: http | ||||
|       initialDelaySeconds: 0 | ||||
|       periodSeconds: 10 | ||||
|       timeoutSeconds: 1 | ||||
|       failureThreshold: 3 | ||||
|   readiness: *probes | ||||
|   startup: | ||||
|     enabled: true | ||||
|     custom: true | ||||
|     spec: | ||||
|       httpGet: | ||||
|         path: /api/server/ping | ||||
|         port: http | ||||
|       initialDelaySeconds: 0 | ||||
|       periodSeconds: 10 | ||||
|       timeoutSeconds: 1 | ||||
|       failureThreshold: 30 | ||||
|  | ||||
| persistence: | ||||
| {{- if .Values.immich.configuration }} | ||||
|   config: | ||||
|     enabled: true | ||||
|     type: configMap | ||||
|     name: {{ .Release.Name }}-immich-config | ||||
| {{- end }} | ||||
|   library: | ||||
|     enabled: true | ||||
|     mountPath: /usr/src/app/upload | ||||
|     existingClaim: {{ .Values.immich.persistence.library.existingClaim }} | ||||
| {{- end }} | ||||
|  | ||||
| {{ if .Values.server.enabled }} | ||||
| {{- $ctx := deepCopy . -}} | ||||
| {{- $_ := get .Values "server" | mergeOverwrite $ctx.Values -}} | ||||
| {{- $_ = include "immich.server.hardcodedValues" . | fromYaml | merge $ctx.Values -}} | ||||
| {{- include "bjw-s.common.loader.all" $ctx }} | ||||
| {{ end }} | ||||
							
								
								
									
										69
									
								
								kubernetes/immich/immich-helm-chart/templates/valkey.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								kubernetes/immich/immich-helm-chart/templates/valkey.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,69 @@ | ||||
| {{- define "valkey.hardcodedValues" -}} | ||||
| global: | ||||
|   nameOverride: valkey | ||||
|  | ||||
| controller: | ||||
|   strategy: Recreate | ||||
|  | ||||
| service: | ||||
|   main: | ||||
|     enabled: true | ||||
|     primary: true | ||||
|     type: ClusterIP | ||||
|     ports: | ||||
|       redis: | ||||
|         enabled: true | ||||
|         primary: true | ||||
|         port: 6379 | ||||
|         protocol: TCP | ||||
|       http: | ||||
|         enabled: false | ||||
|  | ||||
| probes: | ||||
|   liveness: | ||||
|     enabled: true | ||||
|     custom: true | ||||
|     spec: | ||||
|       exec: | ||||
|         command: | ||||
|           - sh | ||||
|           - -c | ||||
|           - "valkey-cli ping | grep PONG" | ||||
|       initialDelaySeconds: 30 | ||||
|       periodSeconds: 10 | ||||
|       timeoutSeconds: 5 | ||||
|       failureThreshold: 3 | ||||
|   readiness: | ||||
|     enabled: true | ||||
|     custom: true | ||||
|     spec: | ||||
|       exec: | ||||
|         command: | ||||
|           - sh | ||||
|           - -c | ||||
|           - "valkey-cli ping | grep PONG" | ||||
|       initialDelaySeconds: 5 | ||||
|       periodSeconds: 10 | ||||
|       timeoutSeconds: 5 | ||||
|       failureThreshold: 3 | ||||
|   startup: | ||||
|     enabled: true | ||||
|     custom: true | ||||
|     spec: | ||||
|       exec: | ||||
|         command: | ||||
|           - sh | ||||
|           - -c | ||||
|           - "valkey-cli ping | grep PONG" | ||||
|       initialDelaySeconds: 0 | ||||
|       periodSeconds: 10 | ||||
|       timeoutSeconds: 5 | ||||
|       failureThreshold: 30 | ||||
| {{- end }} | ||||
|  | ||||
| {{ if .Values.valkey.enabled }} | ||||
| {{- $ctx := deepCopy . -}} | ||||
| {{- $_ := get .Values "valkey" | mergeOverwrite $ctx.Values -}} | ||||
| {{- $_ = include "valkey.hardcodedValues" . | fromYaml | merge $ctx.Values -}} | ||||
| {{- include "bjw-s.common.loader.all" $ctx }} | ||||
| {{ end }} | ||||
							
								
								
									
										92
									
								
								kubernetes/immich/immich-helm-chart/values.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								kubernetes/immich/immich-helm-chart/values.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,92 @@ | ||||
| ## This chart relies on the common library chart from bjw-s | ||||
| ## You can find it at https://github.com/bjw-s-labs/helm-charts/tree/923ef40a39520979c98f354ea23963ee54f54433/charts/library/common | ||||
| ## Refer there for more detail about the supported values | ||||
|  | ||||
| # These entries are shared between all the Immich components | ||||
|  | ||||
| env: | ||||
|   REDIS_HOSTNAME: '{{ printf "%s-valkey" .Release.Name }}' | ||||
|   DB_HOSTNAME: immich-database-rw.immich.svc.cluster.local | ||||
|   DB_USERNAME: placeholder | ||||
|   DB_DATABASE_NAME: immich | ||||
|   # -- 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: placeholder | ||||
|   IMMICH_IGNORE_MOUNT_CHECK_ERRORS: "true" | ||||
|   IMMICH_MACHINE_LEARNING_URL: '{{ printf "http://%s-machine-learning:3003" .Release.Name }}' | ||||
|  | ||||
| image: | ||||
|   tag: v2.0.1 | ||||
|  | ||||
| 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-library | ||||
|   # configuration is immich-config.json converted to yaml | ||||
|   # ref: https://immich.app/docs/install/config-file/ | ||||
|   # | ||||
|   configuration: | ||||
|     trash: | ||||
|       enabled: true | ||||
|       days: 30 | ||||
|     storageTemplate: | ||||
|       enabled: true | ||||
|       template: "{{y}}/{{y}}-{{MM}}-{{dd}}/{{filename}}" | ||||
|  | ||||
| redis: | ||||
|   enabled: false | ||||
|  | ||||
| valkey: | ||||
|   enabled: true | ||||
|   image: | ||||
|     repository: docker.io/valkey/valkey | ||||
|     tag: 8.0-alpine | ||||
|     pullPolicy: IfNotPresent | ||||
|   persistence: | ||||
|     data: | ||||
|       enabled: true | ||||
|       size: 1Gi | ||||
|       # Optional: Set this to pvc to keep job queues persistent | ||||
|       type: pvc | ||||
|       accessMode: ReadWriteOnce | ||||
|  | ||||
| # Immich components | ||||
| server: | ||||
|   enabled: true | ||||
|   image: | ||||
|     repository: ghcr.io/immich-app/immich-server | ||||
|     pullPolicy: IfNotPresent | ||||
|   ingress: | ||||
|     main: | ||||
|       enabled: true | ||||
|       annotations: | ||||
|         traefik.ingress.kubernetes.io/router.entrypoints: websecure | ||||
|         cert-manager.io/cluster-issuer: "acme-issuer" | ||||
|       hosts: | ||||
|         - host: placeholder.immich.app | ||||
|           paths: | ||||
|             - path: "/" | ||||
|       tls: | ||||
|         - secretName: immich-tls | ||||
|           hosts: | ||||
|             - placeholder.immich.app | ||||
|  | ||||
| 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: pvc | ||||
|       accessMode: ReadWriteMany | ||||
		Reference in New Issue
	
	Block a user