docs: improve readmes and add example

This commit is contained in:
secustor 2025-01-18 01:06:39 +01:00
parent e8efe7fcad
commit 092905c9d4
No known key found for this signature in database
6 changed files with 136 additions and 6 deletions

View file

@ -1,4 +1,17 @@
# helm-charts
Contains Helm charts maintained by myself.
> [!INFO]
> The code is provided as-is with no warranties.
See the README.md in each chart directory for more information.
## Usage
You can add this repository to your [Helm](https://helm.sh/) installation by running the following command:
```bash
helm repo add secustor https://secustor.dev/helm-charts
helm install my-release secustor/<chart>
# or directly the OCI registry
helm install my-release oci://ghcr.io/secustor/helm-charts/<chart>
```

View file

@ -1,9 +1,55 @@
# Immich
> [!WARNING]
> This chart is in alpha state and should be used with care.
> It is under heavy development.
This 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
helm repo add secustor https://secustor.dev/helm-charts
helm install my-release secustor/immich
# or directly the OCI registry
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
- Deploy Immich
value files can be found in the [`example`](./example) directory.
### PostgreSQL
This assumes you have [CloudNativePG](https://cloudnative-pg.io/)
installed and configured.
```bash
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

@ -0,0 +1,27 @@
common:
config:
vectorExtension: pgvector
postgres:
host: immich-db-rw
existingSecret:
enabled: true
secretName: immich-db-immich
usernameKey: username
passwordKey: password
redis:
host: immich-redis-master
existingSecret:
enabled: true
secretName: immich-redis-access
passwordKey: password
server:
volumeMounts:
- mountPath: /usr/src/app/upload
name: uploads
volumes:
- name: uploads
hostPath:
path: /data/media/immich
type: Directory
machineLearning:
enabled: true

View file

@ -0,0 +1,32 @@
apiVersion: v1
kind: Secret
metadata:
name: immich-db-immich
type: Opaque
stringData:
username: "an-user"
password: "a-password"
---
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: immich-db
spec:
imageName: ghcr.io/cloudnative-pg/postgresql:17.2-bookworm
instances: 1
storage:
size: 15Gi
bootstrap:
initdb:
database: immich
owner: immich
secret:
name: immich-db-immich
managed:
roles:
- name: immich
createdb: true
login: true
superuser: true
passwordSecret:
name: immich-db-immich

View file

@ -0,0 +1,7 @@
apiVersion: v1
kind: Secret
metadata:
name: immich-redis-access
type: Opaque
stringData:
password: "a-password"

View file

@ -0,0 +1,5 @@
architecture: standalone
auth:
enabled: true
existingSecret: immich-redis-access
existingSecretPasswordKey: password