immich-app / immich-charts

Helm chart implementation of Immich
https://immich.app
GNU Affero General Public License v3.0
110 stars 48 forks source link

[DRAFT] initial version of the chart #2

Closed PixelJonas closed 1 year ago

PixelJonas commented 2 years ago

This draft PR creates a helm-chart based on bjw-s library chart to deploy he immich components in Kubernetes

bo0tzz commented 1 year ago

I finally got around to deploying this chart for a test (https://github.com/bo0tzz/kube/tree/main/apps/immich). A few initial notes:

PixelJonas commented 1 year ago

@bo0tzz the new version should add support for ingress. I also deleted some top-level keys that "can" be used, but are not explicitly used for immich. The ones remaining throw errors in the library chart. I guess this needs to be cleaned up at bjw-s repo

bo0tzz commented 1 year ago

The ingress in the chart's values.yaml defines the immich-proxy service backend. In my own values, I set this for the ingress:

ingress:
  main:
    enabled: true
    annotations:
      kubernetes.io/ingress.class: nginx-internal
      cert-manager.io/cluster-issuer: letsencrypt-prod
      # external-dns.alpha.kubernetes.io/target: bo0tzz.me
    hosts:
      - host: photos.bo0tzz.me
        paths:
          - path: /
            pathType: Prefix
    tls:
      - hosts:
          - photos.bo0tzz.me
        secretName: immich-web-tls

When rendered, the resulting ingress doesn't have the ingress backend set correctly (I think my values override it):

rules:
  - host: "photos.bo0tzz.me"
    http:
      paths:
        - path: "/"
          pathType: Prefix
          backend:
            service:
              name: release-name
              port:
                number:

When rendered without specifying a host etc (just enable: true), the ingress does render correctly.

Similar ingress values work fine on other charts based on the common library (see eg https://github.com/bo0tzz/kube/blob/main/apps/vaultwarden.yaml#L47-L58). Any ideas why this would break?

PixelJonas commented 1 year ago

I think I know where this is coming from. let me check back with the source of the library chart.

PixelJonas commented 1 year ago

Seems like the library chart is (again) not made for multiple deployments. I needed to add the ingress definition by hand and hard-code immich-proxy into the service-name 🤔

bo0tzz commented 1 year ago

The ingress works now, great! The one comment I still have is about renaming the config volume to library. How do you feel about that? After that this is ready to merge IMO.

PixelJonas commented 1 year ago

I'm open to that config is the "default" for the kah-charts but since immich is not persisting any config data (other than postgres) we can call it library