From 092905c9d4f351ce2ded252b8890bcd35e3901e5 Mon Sep 17 00:00:00 2001 From: secustor Date: Sat, 18 Jan 2025 01:06:39 +0100 Subject: [PATCH] docs: improve readmes and add example --- README.md | 13 ++++++ charts/immich/README.md | 58 +++++++++++++++++++++--- charts/immich/example/immich-values.yaml | 27 +++++++++++ charts/immich/example/postgres.yaml | 32 +++++++++++++ charts/immich/example/redis-secret.yaml | 7 +++ charts/immich/example/redis-values.yaml | 5 ++ 6 files changed, 136 insertions(+), 6 deletions(-) create mode 100644 charts/immich/example/immich-values.yaml create mode 100644 charts/immich/example/postgres.yaml create mode 100644 charts/immich/example/redis-secret.yaml create mode 100644 charts/immich/example/redis-values.yaml diff --git a/README.md b/README.md index ff1b269..7e53c3d 100644 --- a/README.md +++ b/README.md @@ -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/ +# or directly the OCI registry +helm install my-release oci://ghcr.io/secustor/helm-charts/ +``` diff --git a/charts/immich/README.md b/charts/immich/README.md index d6381c3..6febcee 100644 --- a/charts/immich/README.md +++ b/charts/immich/README.md @@ -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. \ No newline at end of file +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 +``` diff --git a/charts/immich/example/immich-values.yaml b/charts/immich/example/immich-values.yaml new file mode 100644 index 0000000..7132211 --- /dev/null +++ b/charts/immich/example/immich-values.yaml @@ -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 diff --git a/charts/immich/example/postgres.yaml b/charts/immich/example/postgres.yaml new file mode 100644 index 0000000..e6c3056 --- /dev/null +++ b/charts/immich/example/postgres.yaml @@ -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 diff --git a/charts/immich/example/redis-secret.yaml b/charts/immich/example/redis-secret.yaml new file mode 100644 index 0000000..043415e --- /dev/null +++ b/charts/immich/example/redis-secret.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: Secret +metadata: + name: immich-redis-access +type: Opaque +stringData: + password: "a-password" diff --git a/charts/immich/example/redis-values.yaml b/charts/immich/example/redis-values.yaml new file mode 100644 index 0000000..c7ca895 --- /dev/null +++ b/charts/immich/example/redis-values.yaml @@ -0,0 +1,5 @@ +architecture: standalone +auth: + enabled: true + existingSecret: immich-redis-access + existingSecretPasswordKey: password