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.
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