update readme
This commit is contained in:
parent
a2c47fae13
commit
4a11fac39e
81
README.md
81
README.md
@ -1,3 +1,84 @@
|
|||||||
# k8s-immich
|
# k8s-immich
|
||||||
|
|
||||||
A collection of kubectl yaml files to deploy immich onto kubernetes. Customisation is provided via kustomize.
|
A collection of kubectl yaml files to deploy immich onto kubernetes. Customisation is provided via kustomize.
|
||||||
|
|
||||||
|
# Requirements
|
||||||
|
|
||||||
|
- Kustomize
|
||||||
|
- Postgres
|
||||||
|
- Redis
|
||||||
|
- Kubernetes Cluster (I'd recommend RKE2 from Rancher)
|
||||||
|
|
||||||
|
These are not necessary but useful if you want to store your data outside the cluster.
|
||||||
|
|
||||||
|
- TrueNAS
|
||||||
|
- Democratic-csi (For auto creating NFS/ISCSI shares on TrueNAS)
|
||||||
|
|
||||||
|
## Kustomize
|
||||||
|
|
||||||
|
Pretty simple to install. It does come with kubectl but if you want the latest one you can use docker.
|
||||||
|
|
||||||
|
`docker pull k8s.gcr.io/kustomize/kustomize:v3.8.7`
|
||||||
|
|
||||||
|
Then running a command via it:
|
||||||
|
|
||||||
|
`docker run k8s.gcr.io/kustomize/kustomize:v3.8.7 version`
|
||||||
|
|
||||||
|
|
||||||
|
## Database
|
||||||
|
|
||||||
|
You will need a postgres database. I have not included the postgres docker container that immich uses by default. You will probably
|
||||||
|
want to run database for many services. I recommend [Crunchydata postgres operator](https://access.crunchydata.com/documentation/postgres-operator/v5/quickstart/).
|
||||||
|
|
||||||
|
Once it is deployed then you need to [add a user](https://access.crunchydata.com/documentation/postgres-operator/5.3.0/architecture/user-management/). This will create a K8s secret for that user which you can refer to in the example-env.yaml.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: BASE_DB_URL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
key: uri
|
||||||
|
name: example-db-pguser-immich-user
|
||||||
|
```
|
||||||
|
|
||||||
|
## Redis
|
||||||
|
|
||||||
|
You will also need a redis database. For something similar to the database operator above you could use [spotahomes operator](https://github.com/spotahome/redis-operator). I just needed a single redis pod so I went for the [bitnami redis chart](https://github.com/bitnami/charts/tree/main/bitnami/redis/#installing-the-chart).
|
||||||
|
|
||||||
|
|
||||||
|
# Install/Deployment
|
||||||
|
|
||||||
|
Copy the example overlays folder so you can customise to your liking. I have provided examples of changing the most common things,
|
||||||
|
but you can change most parts via kustomize.
|
||||||
|
|
||||||
|
As of 26th Jan 2023 you will need to use the latest image tag to get [pull request](https://github.com/immich-app/immich/pull/1256).
|
||||||
|
|
||||||
|
## Via kubectl
|
||||||
|
|
||||||
|
Build the templates to see what they look like without applying.
|
||||||
|
|
||||||
|
`kubectl kustomize overlays/custom`
|
||||||
|
|
||||||
|
Deploy to the cluster.
|
||||||
|
|
||||||
|
`kubectl apply -k overlays/custom`
|
||||||
|
|
||||||
|
## Via docker kustomize
|
||||||
|
|
||||||
|
Build the templates to see what they look like without applying.
|
||||||
|
|
||||||
|
`docker run -v absolute_path_to_checkout:/k8s k8s.gcr.io/kustomize/kustomize:v3.8.7 build /k8s/k8s-immich/overlays/custom`
|
||||||
|
|
||||||
|
Deploy to the cluster.
|
||||||
|
|
||||||
|
`docker run -v absolute_path_to_checkout:/k8s k8s.gcr.io/kustomize/kustomize:v3.8.7 build /k8s/k8s-immich/overlays/custom | kubectl apply -f -`
|
||||||
|
|
||||||
|
More info: [Kustomize](https://github.com/kubernetes-sigs/kustomize)
|
||||||
|
|
||||||
|
# Why not helm?
|
||||||
|
|
||||||
|
Personal choice. For the past few months I have been migrating traditional applications to the K8s world and I like using kubectl directly.
|
||||||
|
|
||||||
|
- More familiar with the yaml files
|
||||||
|
- Yaml works nicely in my IDE (PyCharm)
|
||||||
|
- Can deploy directly from my IDE
|
||||||
|
- I find it more readable
|
||||||
|
Loading…
Reference in New Issue
Block a user