ci: use push-charts nodejs tool to manage push to GHCR.io (#23)

This commit is contained in:
Sebastian Poxhofer 2025-02-28 23:56:34 +01:00 committed by GitHub
parent 8994c62db5
commit 394ce954f7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 1220 additions and 56 deletions

View file

@ -1,14 +1,17 @@
# Immich
This **unofficial** chart deploys [Immich](https://immich.app/) and
is targeted at an audience which wants to have some lower level control over the deployment.
This **unofficial** chart deploys [Immich](https://immich.app/) and
is targeted at an audience which wants to have some lower level control over the deployment.
## Prerequisites
This chart requires:
- a PostgreSQL database with `pgvector` or `pgvector.rs` extension installed
- a Redis instance
## Usage
You can install this chart by running the following command:
```bash
@ -19,9 +22,11 @@ helm install my-release oci://ghcr.io/secustor/helm-charts/immich
```
## Example
This example assumes that the CloudNativePG operator has been deployed and configured.
You will:
- Create secrets for PostgreSQL and Redis
- Request a PostgreSQL instance with the `pgvector` extension
- Deploy a Redis instance
@ -30,6 +35,7 @@ You will:
Value files can be found in the [`example` directory](https://github.com/secustor/helm-charts/tree/main/charts/immich/example).
### PostgreSQL
This assumes you have [CloudNativePG](https://cloudnative-pg.io/)
installed and configured.
@ -38,18 +44,23 @@ kubectl create -f example/postgres.yaml
```
### Redis
Create the static password secret for Redis.
```bash
kubectl create -f example/redis-secret.yaml
```
Install the Redis chart.
```bash
helm install immich-redis registry-1.docker.io/bitnamicharts/redis -f example/redis-values.yaml
```
### Immich
Install the Immich chart.
```bash
helm install immich oci://ghcr.io/secustor/helm-charts/immich -f example/immich-values.yaml
```

View file

@ -4,7 +4,6 @@ fullnameOverride: ""
imagePullSecrets: []
# Configurations that are relevant for all the components of the chart
common:
config:
@ -21,7 +20,7 @@ common:
createSecret:
username: ""
password: ""
redis:
host: immich-redis
existingSecret:
@ -41,7 +40,7 @@ server:
maxReplicas: 100
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
image:
repository: ghcr.io/immich-app/immich-server
pullPolicy: IfNotPresent
@ -50,29 +49,31 @@ server:
podAnnotations: {}
podLabels: {}
resources: {}
resources:
{}
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
service:
type: ClusterIP
port: 2283
nodeSelector: {}
tolerations: []
affinity: {}
podSecurityContext: {}
# fsGroup: 2000
securityContext: {}
securityContext:
{}
# capabilities:
# drop:
# - ALL
@ -81,7 +82,8 @@ server:
# runAsUser: 1000
# Additional environment variables to set on the container.
env: []
env:
[]
# - name: DB_VECTOR_EXTENSION
# value: "pgvector"
# - name: SOME_OTHER_ENV
@ -99,12 +101,11 @@ server:
# secret:
# secretName: mysecret
# optional: false
# Additional volumeMounts on the output Deployment definition.
volumeMounts: []
# - name: uploads
# mountPath: /usr/src/app/upload
machineLearning:
enabled: false
@ -113,49 +114,52 @@ machineLearning:
# If enabled the cache will be stored in memory, rather than local disk. This will increase performance but will require more memory.
useMemory: false
sizeLimit: 10Gi
replicaCount: 1
image:
repository: ghcr.io/immich-app/immich-machine-learning
pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag: ""
podAnnotations: {}
podLabels: {}
resources: {}
resources:
{}
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
service:
type: ClusterIP
port: 3003
nodeSelector: {}
tolerations: []
affinity: {}
podSecurityContext: {}
# fsGroup: 2000
securityContext: {}
securityContext:
{}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
# Additional environment variables to set on the container.
env: []
env:
[]
# - name: DB_VECTOR_EXTENSION
# value: "pgvector"
# - name: SOME_OTHER_ENV
@ -163,7 +167,7 @@ machineLearning:
# secretKeyRef:
# name: mySecret
# key: secretField
# Additional volumes on the output Deployment definition.
volumes: []
# - name: uploads
@ -173,7 +177,7 @@ machineLearning:
# secret:
# secretName: mysecret
# optional: false
# Additional volumeMounts on the output Deployment definition.
volumeMounts: []
# - name: uploads
@ -195,7 +199,8 @@ serviceAccount:
ingress:
enabled: false
className: ""
annotations: {}
annotations:
{}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
hosts:
@ -208,7 +213,6 @@ ingress:
# hosts:
# - chart-example.local
# This block is for setting up the HTTPROUTE for more information can be found here: https://kubernetes.io/docs/concepts/services-networking/gateway/#api-kind-httproute
httpRoute:
enabled: false