Commit new Chart releases for TrueCharts
Signed-off-by: TrueCharts-Bot <bot@truecharts.org>
This commit is contained in:
parent
f3d792853b
commit
d12ea0503e
|
@ -0,0 +1,99 @@
|
|||
**Important:**
|
||||
*for the complete changelog, please refer to the website*
|
||||
|
||||
|
||||
|
||||
|
||||
## [immich-9.0.0](https://github.com/truecharts/charts/compare/immich-8.1.39...immich-9.0.0) (2023-11-21)
|
||||
|
||||
### Feat
|
||||
|
||||
- adapt to upstream changes ([#15203](https://github.com/truecharts/charts/issues/15203))
|
||||
|
||||
|
||||
|
||||
|
||||
## [immich-8.1.39](https://github.com/truecharts/charts/compare/immich-8.1.38...immich-8.1.39) (2023-11-18)
|
||||
|
||||
|
||||
|
||||
|
||||
## [immich-8.1.38](https://github.com/truecharts/charts/compare/immich-8.1.37...immich-8.1.38) (2023-11-17)
|
||||
|
||||
### Chore
|
||||
|
||||
- update helm general non-major ([#14630](https://github.com/truecharts/charts/issues/14630))
|
||||
|
||||
|
||||
|
||||
|
||||
## [immich-8.1.37](https://github.com/truecharts/charts/compare/immich-8.1.36...immich-8.1.37) (2023-11-14)
|
||||
|
||||
### Chore
|
||||
|
||||
- update immich to v1.86.0 (minor) ([#14643](https://github.com/truecharts/charts/issues/14643))
|
||||
|
||||
|
||||
|
||||
|
||||
## [immich-8.1.36](https://github.com/truecharts/charts/compare/immich-8.1.35...immich-8.1.36) (2023-11-14)
|
||||
|
||||
### Chore
|
||||
|
||||
- update immich to v1.86.0 (minor) ([#14642](https://github.com/truecharts/charts/issues/14642))
|
||||
|
||||
|
||||
|
||||
|
||||
## [immich-8.1.35](https://github.com/truecharts/charts/compare/immich-8.1.34...immich-8.1.35) (2023-11-08)
|
||||
|
||||
### Chore
|
||||
|
||||
- update helm general non-major ([#14465](https://github.com/truecharts/charts/issues/14465))
|
||||
|
||||
|
||||
|
||||
|
||||
## [immich-8.1.34](https://github.com/truecharts/charts/compare/immich-8.1.33...immich-8.1.34) (2023-11-08)
|
||||
|
||||
### Chore
|
||||
|
||||
- update helm general non-major ([#14454](https://github.com/truecharts/charts/issues/14454))
|
||||
|
||||
|
||||
|
||||
|
||||
## [immich-8.1.33](https://github.com/truecharts/charts/compare/immich-8.1.32...immich-8.1.33) (2023-11-08)
|
||||
|
||||
### Chore
|
||||
|
||||
- update immich to v1.85.0 (minor) ([#14440](https://github.com/truecharts/charts/issues/14440))
|
||||
|
||||
|
||||
|
||||
|
||||
## [immich-8.1.32](https://github.com/truecharts/charts/compare/immich-8.1.31...immich-8.1.32) (2023-11-05)
|
||||
|
||||
### Chore
|
||||
|
||||
- assign gpu to microservices pod ([#14367](https://github.com/truecharts/charts/issues/14367))
|
||||
|
||||
|
||||
|
||||
|
||||
## [immich-8.1.31](https://github.com/truecharts/charts/compare/immich-8.1.30...immich-8.1.31) (2023-11-05)
|
||||
|
||||
### Chore
|
||||
|
||||
- update helm general non-major ([#14365](https://github.com/truecharts/charts/issues/14365))
|
||||
|
||||
|
||||
|
||||
|
||||
## [immich-8.1.30](https://github.com/truecharts/charts/compare/immich-8.1.29...immich-8.1.30) (2023-11-03)
|
||||
|
||||
### Chore
|
||||
|
||||
- update helm general non-major ([#14287](https://github.com/truecharts/charts/issues/14287))
|
||||
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
apiVersion: v2
|
||||
appVersion: "1.88.1"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.truecharts.org
|
||||
version: 14.5.0
|
||||
- condition: redis.enabled
|
||||
name: redis
|
||||
repository: https://deps.truecharts.org
|
||||
version: 6.0.66
|
||||
description: High performance self-hosted photo and video backup solution.
|
||||
home: https://truecharts.org/charts/stable/immich
|
||||
icon: https://truecharts.org/img/hotlink-ok/chart-icons/immich.png
|
||||
keywords:
|
||||
- photos
|
||||
kubeVersion: ">=1.16.0-0"
|
||||
maintainers:
|
||||
- email: info@truecharts.org
|
||||
name: TrueCharts
|
||||
url: https://truecharts.org
|
||||
name: immich
|
||||
sources:
|
||||
- https://github.com/truecharts/charts/tree/master/charts/stable/immich
|
||||
- https://github.com/immich-app/immich
|
||||
version: 9.0.0
|
||||
annotations:
|
||||
truecharts.org/category: media
|
||||
truecharts.org/SCALE-support: "true"
|
|
@ -0,0 +1,106 @@
|
|||
Business Source License 1.1
|
||||
|
||||
Parameters
|
||||
|
||||
Licensor: The TrueCharts Project, it's owner and it's contributors
|
||||
Licensed Work: The TrueCharts "Blocky" Helm Chart
|
||||
Additional Use Grant: You may use the licensed work in production, as long
|
||||
as it is directly sourced from a TrueCharts provided
|
||||
official repository, catalog or source. You may also make private
|
||||
modification to the directly sourced licenced work,
|
||||
when used in production.
|
||||
|
||||
The following cases are, due to their nature, also
|
||||
defined as 'production use' and explicitly prohibited:
|
||||
- Bundling, including or displaying the licensed work
|
||||
with(in) another work intended for production use,
|
||||
with the apparent intend of facilitating and/or
|
||||
promoting production use by third parties in
|
||||
violation of this license.
|
||||
|
||||
Change Date: 2050-01-01
|
||||
|
||||
Change License: 3-clause BSD license
|
||||
|
||||
For information about alternative licensing arrangements for the Software,
|
||||
please contact: legal@truecharts.org
|
||||
|
||||
Notice
|
||||
|
||||
The Business Source License (this document, or the “License”) is not an Open
|
||||
Source license. However, the Licensed Work will eventually be made available
|
||||
under an Open Source License, as stated in this License.
|
||||
|
||||
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
|
||||
“Business Source License” is a trademark of MariaDB Corporation Ab.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Business Source License 1.1
|
||||
|
||||
Terms
|
||||
|
||||
The Licensor hereby grants you the right to copy, modify, create derivative
|
||||
works, redistribute, and make non-production use of the Licensed Work. The
|
||||
Licensor may make an Additional Use Grant, above, permitting limited
|
||||
production use.
|
||||
|
||||
Effective on the Change Date, or the fourth anniversary of the first publicly
|
||||
available distribution of a specific version of the Licensed Work under this
|
||||
License, whichever comes first, the Licensor hereby grants you rights under
|
||||
the terms of the Change License, and the rights granted in the paragraph
|
||||
above terminate.
|
||||
|
||||
If your use of the Licensed Work does not comply with the requirements
|
||||
currently in effect as described in this License, you must purchase a
|
||||
commercial license from the Licensor, its affiliated entities, or authorized
|
||||
resellers, or you must refrain from using the Licensed Work.
|
||||
|
||||
All copies of the original and modified Licensed Work, and derivative works
|
||||
of the Licensed Work, are subject to this License. This License applies
|
||||
separately for each version of the Licensed Work and the Change Date may vary
|
||||
for each version of the Licensed Work released by Licensor.
|
||||
|
||||
You must conspicuously display this License on each original or modified copy
|
||||
of the Licensed Work. If you receive the Licensed Work in original or
|
||||
modified form from a third party, the terms and conditions set forth in this
|
||||
License apply to your use of that work.
|
||||
|
||||
Any use of the Licensed Work in violation of this License will automatically
|
||||
terminate your rights under this License for the current and all other
|
||||
versions of the Licensed Work.
|
||||
|
||||
This License does not grant you any right in any trademark or logo of
|
||||
Licensor or its affiliates (provided that you may use a trademark or logo of
|
||||
Licensor as expressly required by this License).
|
||||
|
||||
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
|
||||
AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
|
||||
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
|
||||
TITLE.
|
||||
|
||||
MariaDB hereby grants you permission to use this License’s text to license
|
||||
your works, and to refer to it using the trademark “Business Source License”,
|
||||
as long as you comply with the Covenants of Licensor below.
|
||||
|
||||
Covenants of Licensor
|
||||
|
||||
In consideration of the right to use this License’s text and the “Business
|
||||
Source License” name and trademark, Licensor covenants to MariaDB, and to all
|
||||
other recipients of the licensed work to be provided by Licensor:
|
||||
|
||||
1. To specify as the Change License the GPL Version 2.0 or any later version,
|
||||
or a license that is compatible with GPL Version 2.0 or a later version,
|
||||
where “compatible” means that software provided under the Change License can
|
||||
be included in a program with software provided under GPL Version 2.0 or a
|
||||
later version. Licensor may specify additional Change Licenses without
|
||||
limitation.
|
||||
|
||||
2. To either: (a) specify an additional grant of rights to use that does not
|
||||
impose any additional restriction on the right granted in this License, as
|
||||
the Additional Use Grant; or (b) insert the text “None”.
|
||||
|
||||
3. To specify a Change Date.
|
||||
|
||||
4. Not to modify this License in any other way.
|
|
@ -0,0 +1,27 @@
|
|||
# README
|
||||
|
||||
## General Info
|
||||
|
||||
TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE.
|
||||
However only installations using the TrueNAS SCALE Apps system are supported.
|
||||
|
||||
For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/)
|
||||
|
||||
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)**
|
||||
|
||||
|
||||
## Support
|
||||
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro).
|
||||
- See the [Website](https://truecharts.org)
|
||||
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
|
||||
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
|
||||
|
||||
---
|
||||
|
||||
## Sponsor TrueCharts
|
||||
|
||||
TrueCharts can only exist due to the incredible effort of our staff.
|
||||
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!
|
||||
|
||||
*All Rights Reserved - The TrueCharts Project*
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
|
||||
## [immich-9.0.0](https://github.com/truecharts/charts/compare/immich-8.1.39...immich-9.0.0) (2023-11-21)
|
||||
|
||||
### Feat
|
||||
|
||||
- adapt to upstream changes ([#15203](https://github.com/truecharts/charts/issues/15203))
|
||||
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
High performance self-hosted photo and video backup solution.
|
||||
|
||||
This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/immich](https://truecharts.org/charts/stable/immich)
|
||||
|
||||
---
|
||||
|
||||
TrueCharts can only exist due to the incredible effort of our staff.
|
||||
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,152 @@
|
|||
image:
|
||||
repository: altran1502/immich-server
|
||||
tag: v1.88.1@sha256:87dd30e8938ec894d1a05b5ce436fd12d432f4f76992f85495b84a2f9d2b2583
|
||||
pullPolicy: IfNotPresent
|
||||
mlImage:
|
||||
repository: altran1502/immich-machine-learning
|
||||
tag: v1.88.1@sha256:68391160d4fca56382a3eb8eff969f1728fed019bd8d737cab5d64950512d333
|
||||
pullPolicy: IfNotPresent
|
||||
typesenseImage:
|
||||
repository: typesense/typesense
|
||||
tag: 0.25.1@sha256:3724f68156097114d07790e1c8bfaaca13b12eaecd602776d30d9933029064c7
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
securityContext:
|
||||
container:
|
||||
readOnlyRootFilesystem: false
|
||||
runAsNonRoot: false
|
||||
runAsUser: 0
|
||||
runAsGroup: 0
|
||||
|
||||
immich:
|
||||
enable_ml: true
|
||||
enable_typesense: true
|
||||
public_login_page_message: Immich
|
||||
log_level: log
|
||||
|
||||
service:
|
||||
main:
|
||||
# Main service targets the server
|
||||
targetSelector: main
|
||||
ports:
|
||||
main:
|
||||
port: 10323
|
||||
protocol: http
|
||||
targetSelector: main
|
||||
microservices:
|
||||
enabled: true
|
||||
type: ClusterIP
|
||||
targetSelector: microservices
|
||||
ports:
|
||||
microservices:
|
||||
enabled: true
|
||||
primary: true
|
||||
port: 10004
|
||||
protocol: http
|
||||
targetSelector: microservices
|
||||
machinelearning:
|
||||
enabled: true
|
||||
type: ClusterIP
|
||||
targetSelector: machinelearning
|
||||
ports:
|
||||
machinelearning:
|
||||
enabled: true
|
||||
primary: true
|
||||
port: 10003
|
||||
protocol: http
|
||||
targetSelector: machinelearning
|
||||
typesense:
|
||||
enabled: true
|
||||
type: ClusterIP
|
||||
targetSelector: typesense
|
||||
ports:
|
||||
typesense:
|
||||
enabled: true
|
||||
primary: true
|
||||
port: 10002
|
||||
protocol: http
|
||||
targetSelector: typesense
|
||||
|
||||
persistence:
|
||||
mlcache:
|
||||
enabled: true
|
||||
type: emptyDir
|
||||
targetSelector:
|
||||
machinelearning:
|
||||
machinelearning:
|
||||
mountPath: /mlcache
|
||||
microcache:
|
||||
enabled: true
|
||||
type: emptyDir
|
||||
targetSelector:
|
||||
microservices:
|
||||
microservices:
|
||||
mountPath: /microcache
|
||||
typesense:
|
||||
enabled: true
|
||||
type: emptyDir
|
||||
targetSelector:
|
||||
typesense:
|
||||
typesense:
|
||||
mountPath: /typesensedata
|
||||
library:
|
||||
enabled: true
|
||||
mountPath: /usr/src/app/upload/library
|
||||
targetSelector:
|
||||
# Main pod/container is server
|
||||
main:
|
||||
main: {}
|
||||
microservices:
|
||||
microservices: {}
|
||||
uploads:
|
||||
enabled: true
|
||||
mountPath: /usr/src/app/upload/upload
|
||||
targetSelector:
|
||||
# Main pod/container is server
|
||||
main:
|
||||
main: {}
|
||||
microservices:
|
||||
microservices: {}
|
||||
thumbs:
|
||||
enabled: true
|
||||
mountPath: /usr/src/app/upload/thumbs
|
||||
targetSelector:
|
||||
# Main pod/container is server
|
||||
main:
|
||||
main: {}
|
||||
microservices:
|
||||
microservices: {}
|
||||
profile:
|
||||
enabled: true
|
||||
mountPath: /usr/src/app/upload/profile
|
||||
targetSelector:
|
||||
# Main pod/container is server
|
||||
main:
|
||||
main: {}
|
||||
microservices:
|
||||
microservices: {}
|
||||
video:
|
||||
enabled: true
|
||||
mountPath: /usr/src/app/upload/encoded-video
|
||||
targetSelector:
|
||||
# Main pod/container is server
|
||||
main:
|
||||
main: {}
|
||||
microservices:
|
||||
microservices: {}
|
||||
|
||||
cnpg:
|
||||
main:
|
||||
enabled: true
|
||||
user: immich
|
||||
database: immich
|
||||
|
||||
redis:
|
||||
enabled: true
|
||||
redisUsername: default
|
||||
|
||||
portal:
|
||||
open:
|
||||
enabled: true
|
||||
|
||||
updated: true
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1 @@
|
|||
{{- include "tc.v1.common.lib.chart.notes" $ -}}
|
|
@ -0,0 +1,77 @@
|
|||
{{- define "immich.config" -}}
|
||||
{{- $fname := (include "tc.v1.common.lib.chart.names.fullname" .) -}}
|
||||
{{- $secretName := printf "%s-secret" $fname -}}
|
||||
{{- $typesenseKey := randAlphaNum 32 -}}
|
||||
{{- with (lookup "v1" "Secret" .Release.Namespace $secretName) -}}
|
||||
{{- $typesenseKey = index .data "TYPESENSE_API_KEY" | b64dec -}}
|
||||
{{- end }}
|
||||
|
||||
configmap:
|
||||
server-config:
|
||||
enabled: true
|
||||
data:
|
||||
SERVER_PORT: {{ .Values.service.main.ports.main.port | quote }}
|
||||
{{- with .Values.immich.public_login_page_message }}
|
||||
PUBLIC_LOGIN_PAGE_MESSAGE: {{ . }}
|
||||
{{- end }}
|
||||
|
||||
micro-config:
|
||||
enabled: true
|
||||
data:
|
||||
MICROSERVICES_PORT: {{ .Values.service.microservices.ports.microservices.port | quote }}
|
||||
REVERSE_GEOCODING_DUMP_DIRECTORY: {{ .Values.persistence.microcache.targetSelector.microservices.microservices.mountPath }}
|
||||
|
||||
{{- if .Values.immich.enable_ml }}
|
||||
ml-config:
|
||||
enabled: true
|
||||
data:
|
||||
NODE_ENV: production
|
||||
MACHINE_LEARNING_PORT: {{ .Values.service.machinelearning.ports.machinelearning.port | quote }}
|
||||
MACHINE_LEARNING_CACHE_FOLDER: {{ .Values.persistence.mlcache.targetSelector.machinelearning.machinelearning.mountPath }}
|
||||
TRANSFORMERS_CACHE: {{ .Values.persistence.mlcache.targetSelector.machinelearning.machinelearning.mountPath }}
|
||||
{{- end }}
|
||||
|
||||
{{/* Server and Microservices */}}
|
||||
common-config:
|
||||
enabled: true
|
||||
data:
|
||||
NODE_ENV: production
|
||||
LOG_LEVEL: {{ .Values.immich.log_level }}
|
||||
IMMICH_MACHINE_LEARNING_ENABLED: {{ .Values.immich.enable_ml | quote }}
|
||||
{{- if .Values.immich.enable_ml }}
|
||||
IMMICH_MACHINE_LEARNING_URL: {{ printf "http://%v-machinelearning:%v" $fname .Values.service.machinelearning.ports.machinelearning.port }}
|
||||
{{- end }}
|
||||
TYPESENSE_ENABLED: {{ .Values.immich.enable_typesense | quote }}
|
||||
{{- if .Values.immich.enable_typesense }}
|
||||
TYPESENSE_PROTOCOL: http
|
||||
TYPESENSE_HOST: {{ printf "%v-typesense" $fname }}
|
||||
TYPESENSE_PORT: {{ .Values.service.typesense.ports.typesense.port | quote }}
|
||||
{{- end }}
|
||||
|
||||
secret:
|
||||
typesense-secret:
|
||||
enabled: true
|
||||
data:
|
||||
{{/* Secret Key */}}
|
||||
TYPESENSE_API_KEY: {{ $typesenseKey }}
|
||||
TYPESENSE_DATA_DIR: {{ .Values.persistence.typesense.targetSelector.typesense.typesense.mountPath }}
|
||||
|
||||
secret:
|
||||
enabled: true
|
||||
data:
|
||||
TYPESENSE_API_KEY: {{ $typesenseKey }}
|
||||
|
||||
{{/* Server and Microservices */}}
|
||||
deps-secret:
|
||||
enabled: true
|
||||
data:
|
||||
DB_USERNAME: {{ .Values.cnpg.main.user }}
|
||||
DB_DATABASE_NAME: {{ .Values.cnpg.main.database }}
|
||||
DB_HOSTNAME: {{ .Values.cnpg.main.creds.host }}
|
||||
DB_PASSWORD: {{ .Values.cnpg.main.creds.password }}
|
||||
DB_PORT: "5432"
|
||||
REDIS_HOSTNAME: {{ .Values.redis.creds.plainhost }}
|
||||
REDIS_PASSWORD: {{ .Values.redis.creds.redisPassword }}
|
||||
REDIS_PORT: "6379"
|
||||
REDIS_DBINDEX: "0"
|
||||
{{- end -}}
|
|
@ -0,0 +1,39 @@
|
|||
{{/* Define the machinelearning container */}}
|
||||
{{- define "immich.machinelearning" -}}
|
||||
{{- $fname := (include "tc.v1.common.lib.chart.names.fullname" .) -}}
|
||||
{{- $serverUrl := printf "http://%v:%v/api/server-info/ping" $fname .Values.service.main.ports.main.port }}
|
||||
enabled: true
|
||||
type: Deployment
|
||||
podSpec:
|
||||
initContainers:
|
||||
wait-server:
|
||||
{{/* Wait for server */}}
|
||||
{{- include "immich.wait" (dict "url" $serverUrl) | nindent 6 }}
|
||||
containers:
|
||||
machinelearning:
|
||||
enabled: true
|
||||
primary: true
|
||||
imageSelector: mlImage
|
||||
securityContext:
|
||||
capabilities:
|
||||
disableS6Caps: true
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: ml-config
|
||||
probes:
|
||||
readiness:
|
||||
enabled: true
|
||||
type: http
|
||||
path: /ping
|
||||
port: {{ .Values.service.machinelearning.ports.machinelearning.port }}
|
||||
liveness:
|
||||
enabled: true
|
||||
type: http
|
||||
path: /ping
|
||||
port: {{ .Values.service.machinelearning.ports.machinelearning.port }}
|
||||
startup:
|
||||
enabled: true
|
||||
type: http
|
||||
path: /ping
|
||||
port: {{ .Values.service.machinelearning.ports.machinelearning.port }}
|
||||
{{- end -}}
|
|
@ -0,0 +1,45 @@
|
|||
{{- define "immich.microservices" -}}
|
||||
{{- $fname := (include "tc.v1.common.lib.chart.names.fullname" .) -}}
|
||||
{{- $serverUrl := printf "http://%v:%v/api/server-info/ping" $fname .Values.service.main.ports.main.port }}
|
||||
enabled: true
|
||||
type: Deployment
|
||||
podSpec:
|
||||
initContainers:
|
||||
wait-server:
|
||||
{{/* Wait for server */}}
|
||||
{{- include "immich.wait" (dict "url" $serverUrl) | nindent 6 }}
|
||||
containers:
|
||||
microservices:
|
||||
enabled: true
|
||||
primary: true
|
||||
imageSelector: image
|
||||
command: /bin/sh
|
||||
args:
|
||||
- -c
|
||||
- /usr/src/app/start-microservices.sh
|
||||
securityContext:
|
||||
capabilities:
|
||||
disableS6Caps: true
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: secret
|
||||
- secretRef:
|
||||
name: deps-secret
|
||||
- configMapRef:
|
||||
name: common-config
|
||||
- configMapRef:
|
||||
name: micro-config
|
||||
probes:
|
||||
readiness:
|
||||
enabled: true
|
||||
type: tcp
|
||||
port: {{ .Values.service.microservices.ports.microservices.port }}
|
||||
liveness:
|
||||
enabled: true
|
||||
type: tcp
|
||||
port: {{ .Values.service.microservices.ports.microservices.port }}
|
||||
startup:
|
||||
enabled: true
|
||||
type: tcp
|
||||
port: {{ .Values.service.microservices.ports.microservices.port }}
|
||||
{{- end -}}
|
|
@ -0,0 +1,37 @@
|
|||
{{- define "immich.server" -}}
|
||||
enabled: true
|
||||
primary: true
|
||||
imageSelector: image
|
||||
command: /bin/sh
|
||||
args:
|
||||
- -c
|
||||
- /usr/src/app/start-server.sh
|
||||
securityContext:
|
||||
capabilities:
|
||||
disableS6Caps: true
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: server-config
|
||||
- configMapRef:
|
||||
name: common-config
|
||||
- secretRef:
|
||||
name: deps-secret
|
||||
- secretRef:
|
||||
name: secret
|
||||
probes:
|
||||
liveness:
|
||||
enabled: true
|
||||
type: http
|
||||
path: /api/server-info/ping
|
||||
port: {{ .Values.service.main.ports.main.port }}
|
||||
readiness:
|
||||
enabled: true
|
||||
type: http
|
||||
path: /api/server-info/ping
|
||||
port: {{ .Values.service.main.ports.main.port }}
|
||||
startup:
|
||||
enabled: true
|
||||
type: http
|
||||
path: /api/server-info/ping
|
||||
port: {{ .Values.service.main.ports.main.port }}
|
||||
{{- end -}}
|
|
@ -0,0 +1,36 @@
|
|||
{{/* Define the typesense container */}}
|
||||
{{- define "immich.typesense" -}}
|
||||
enabled: true
|
||||
type: Deployment
|
||||
podSpec:
|
||||
containers:
|
||||
typesense:
|
||||
enabled: true
|
||||
primary: true
|
||||
imageSelector: typesenseImage
|
||||
securityContext:
|
||||
capabilities:
|
||||
disableS6Caps: true
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: typesense-secret
|
||||
args:
|
||||
- --api-port
|
||||
- {{ .Values.service.typesense.ports.typesense.port | quote }}
|
||||
probes:
|
||||
readiness:
|
||||
enabled: true
|
||||
type: http
|
||||
path: /health
|
||||
port: {{ .Values.service.typesense.ports.typesense.port }}
|
||||
liveness:
|
||||
enabled: true
|
||||
type: http
|
||||
path: /health
|
||||
port: {{ .Values.service.typesense.ports.typesense.port }}
|
||||
startup:
|
||||
enabled: true
|
||||
type: http
|
||||
path: /health
|
||||
port: {{ .Values.service.typesense.ports.typesense.port }}
|
||||
{{- end -}}
|
|
@ -0,0 +1,16 @@
|
|||
{{- define "immich.wait" -}}
|
||||
{{- $url := .url }}
|
||||
enabled: true
|
||||
type: init
|
||||
imageSelector: alpineImage
|
||||
command:
|
||||
- /bin/ash
|
||||
- -c
|
||||
- |
|
||||
echo "Pinging [{{ $url }}] until it is ready..."
|
||||
until wget --spider --quiet --timeout=3 --tries 1 "{{ $url }}"; do
|
||||
echo "Waiting for [{{ $url }}] to be ready..."
|
||||
sleep 2
|
||||
done
|
||||
echo "URL [{{ $url }}] is ready!"
|
||||
{{- end -}}
|
|
@ -0,0 +1,64 @@
|
|||
{{/* Make sure all variables are set properly */}}
|
||||
{{- include "tc.v1.common.loader.init" . }}
|
||||
|
||||
{{- $fname := (include "tc.v1.common.lib.chart.names.fullname" .) -}}
|
||||
|
||||
{{- $_ := set .Values.workload.main.podSpec.containers "main" (include "immich.server" . | fromYaml) -}}
|
||||
{{- if .Values.immich.enable_typesense -}}
|
||||
{{/* Append init container to server, to make sure typesense is ready before starting */}}
|
||||
{{- $url := printf "http://%v-typesense:%v/health" $fname .Values.service.typesense.ports.typesense.port -}}
|
||||
{{- $_ := set .Values.workload.main.podSpec.initContainers "wait-typesense" (include "immich.wait" (dict "url" $url) | fromYaml) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Render Microservices Workload */}}
|
||||
{{- $_ := set .Values.workload "microservices" (include "immich.microservices" . | fromYaml) -}}
|
||||
|
||||
{{- if .Values.immich.enable_ml -}}
|
||||
{{/* Enable Machine Learning Service */}}
|
||||
{{- $_ := set .Values.service.machinelearning "enabled" true -}}
|
||||
{{/* Render Machine Learning Workload */}}
|
||||
{{- $_ := set .Values.workload "machinelearning" (include "immich.machinelearning" . | fromYaml) -}}
|
||||
{{- else -}}
|
||||
{{/* Disable Machine Learning Service */}}
|
||||
{{- $_ := set .Values.service.machinelearning "enabled" false -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if .Values.immich.enable_typesense -}}
|
||||
{{/* Enable Typesense Service */}}
|
||||
{{- $_ := set .Values.service.typesense "enabled" true -}}
|
||||
{{/* Render Typesense Workload */}}
|
||||
{{- $_ := set .Values.workload "typesense" (include "immich.typesense" . | fromYaml) -}}
|
||||
{{- else -}}
|
||||
{{/* Disable Typesense Service */}}
|
||||
{{- $_ := set .Values.service.typesense "enabled" false -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Set targetselector for GPU to microservices */}}
|
||||
{{- range $gpuEntry := .Values.scaleGPU }}
|
||||
{{- if $gpuEntry.gpu -}}
|
||||
{{- $_ := set $gpuEntry "targetSelector" (dict "microservices" (list "microservices")) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Render configuration for immich
|
||||
after services, as it has references
|
||||
*/}}
|
||||
{{- $config := include "immich.config" . | fromYaml -}}
|
||||
{{- if $config -}}
|
||||
{{- $_ := mustMergeOverwrite .Values $config -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- range $idx, $persistence := .Values.persistenceList -}}
|
||||
{{- $_ := set $persistence "targetSelector" (dict
|
||||
"main" (dict "main" dict)
|
||||
"microservices" (dict "microservices" dict)
|
||||
) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $envList := .Values.workload.main.podSpec.containers.main.envList -}}
|
||||
{{- if $envList -}}
|
||||
{{- $_ := set .Values.workload.microservices.podSpec.containers.microservices "envList" $envList -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Render the templates */}}
|
||||
{{ include "tc.v1.common.loader.apply" . }}
|
Loading…
Reference in New Issue