[BUG] Readiness probe failed on immich-server while installing via helm. #1154

Closed
opened 2026-02-05 00:39:34 +03:00 by OVERLORD · 2 comments
Owner

Originally created by @choikangjae on GitHub (Jul 25, 2023).

The bug

I am trying to install immich via helm.
I have set values.yaml and run, immich-server alway got probe failed error.

I haven't changed much on values.yaml:

immich.persistence.library.existingClaim= immich-pvc
postresql.enabled= false

# and `enabled= true` all the objects

And here it is the logs of immich-server:

  Normal   Scheduled  43s               default-scheduler  Successfully assigned immich/immich-server-6c897c84ff-55xvf to orangepi5
  Normal   Pulled     5s (x2 over 32s)  kubelet            Container image "ghcr.io/immich-app/immich-server:v1.53.0" already present on machine
  Normal   Created    5s (x2 over 32s)  kubelet            Created container immich-server
  Normal   Started    5s (x2 over 32s)  kubelet            Started container immich-server
  Warning  Unhealthy  3s (x5 over 23s)  kubelet            Readiness probe failed: Get "http://10.42.0.165:3001/server-info/ping": dial tcp 10.42.0.165:3001: connect: connection refused
  Normal   Killing    3s                kubelet            Container immich-server failed liveness probe, will be restarted

When I k describe pod immich-server-6c897c84ff-55xvf -n immich:

...
    Liveness:       http-get http://:http/server-info/ping delay=0s timeout=1s period=10s #success=1 #failure=3
    Readiness:      http-get http://:http/server-info/ping delay=0s timeout=1s period=10s #success=1 #failure=3
    Environment:
      DB_DATABASE_NAME:             immich
      DB_HOSTNAME:                  immich-postgresql
      DB_PASSWORD:                  immich
      DB_USERNAME:                  immich
      IMMICH_MACHINE_LEARNING_URL:  http://immich-machine-learning:3003
      IMMICH_SERVER_URL:            http://immich-server:3001
      IMMICH_WEB_URL:               http://immich-web:3000
      REDIS_HOSTNAME:               immich-redis-master
      TYPESENSE_API_KEY:            typesense
      TYPESENSE_ENABLED:            true
      TYPESENSE_HOST:               immich-typesense
...

Something went wrong obviously but have got no idea about Liveness and Readiness.

Could you help me how to solve this? I really love to use immich and don't want to find the alternatives.

The OS that Immich Server is running on

Linux 5.10.160-rk35xx aarch64 GNU/Linux

Version of Immich Server

v1.53.0

Version of Immich Mobile App

X

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

# values.yaml

env:
  REDIS_HOSTNAME: '{{ printf "%s-redis-master" .Release.Name }}'
  DB_HOSTNAME: "{{ .Release.Name }}-postgresql"
  DB_USERNAME: "{{ .Values.postgresql.global.postgresql.auth.username }}"
  DB_DATABASE_NAME: "{{ .Values.postgresql.global.postgresql.auth.database }}"
  # -- You should provide your own secret outside of this helm-chart and use `postgresql.global.postgresql.auth.existingSecret` to provide credentials to the postgresql instance
  DB_PASSWORD: "{{ .Values.postgresql.global.postgresql.auth.password }}"
  TYPESENSE_ENABLED: "{{ .Values.typesense.enabled }}"
  TYPESENSE_API_KEY: "{{ .Values.typesense.env.TYPESENSE_API_KEY }}"
  TYPESENSE_HOST: '{{ printf "%s-typesense" .Release.Name }}'
  IMMICH_WEB_URL: '{{ printf "http://%s-web:3000" .Release.Name }}'
  IMMICH_SERVER_URL: '{{ printf "http://%s-server:3001" .Release.Name }}'
  IMMICH_MACHINE_LEARNING_URL: '{{ printf "http://%s-machine-learning:3003" .Release.Name }}'

immich:
  persistence:
    # Main data store for all photos shared between different components.
    library:
      # Automatically creating the library volume is not supported by this chart
      # You have to specify an existing PVC to use
      existingClaim: immich-pvc

# Dependencies

postgresql:
  enabled: false
  global:
    postgresql:
      auth:
        username: immich
        database: immich
        password: immich

redis:
  enabled: true
  architecture: standalone
  auth:
    enabled: false

typesense:
  enabled: true
  env:
    TYPESENSE_DATA_DIR: /tsdata
    TYPESENSE_API_KEY: typesense
  persistence:
    tsdata:
      # Enabling typesense persistence is recommended to avoid slow reindexing
      enabled: true
      accessMode: ReadWriteOnce
      size: 1Gi
      storageClass: longhorn
  image:
    repository: docker.io/typesense/typesense
    tag: 0.24.0
    pullPolicy: IfNotPresent

server:
  enabled: true
  image:
    repository: ghcr.io/immich-app/immich-server
    pullPolicy: IfNotPresent

microservices:
  enabled: true
  env:
    REVERSE_GEOCODING_DUMP_DIRECTORY: /geodata-cache
  persistence:
    geodata-cache:
      enabled: true
      size: 1Gi
      # Optional: Set this to pvc to avoid downloading the geodata every start.
      # type: emptyDir
      accessMode: ReadWriteMany
      storageClass: longhorn
  image:
    repository: ghcr.io/immich-app/immich-server
    pullPolicy: IfNotPresent

machine-learning:
  enabled: true
  image:
    repository: ghcr.io/immich-app/immich-machine-learning
    pullPolicy: IfNotPresent
  env:
    TRANSFORMERS_CACHE: /cache
  persistence:
    cache:
      enabled: true
      size: 10Gi
      # Optional: Set this to pvc to avoid downloading the ML models every start.
      type: emptyDir
      accessMode: ReadWriteMany
      storageClass: longhorn

web:
  enabled: true
  image:
    repository: ghcr.io/immich-app/immich-web
    pullPolicy: IfNotPresent
  persistence:
    library:
      enabled: false

proxy:
  enabled: true
  image:
    repository: ghcr.io/immich-app/immich-proxy
    pullPolicy: IfNotPresent

  persistence:
    library:
      enabled: false

  ingress:
    main:
      enabled: false
      annotations:
        # proxy-body-size is set to 0 to remove the body limit on file uploads
        nginx.ingress.kubernetes.io/proxy-body-size: "0"
      hosts:
        - host: immich.local
          paths:
            - path: "/"
      tls: []

Your .env content

Included on `values.yaml`

Reproduction steps

1. helm repo add immich-charts https://immich-app.github.io/immich-charts/
2. helm install --namespace immich immich immich-charts/immich -f values.yaml
3. kubectl get pods -n immich --watch
4. kubectl describe pod immich-server-XXXX -n immich

Additional information

No response

Originally created by @choikangjae on GitHub (Jul 25, 2023). ### The bug I am trying to install `immich` via `helm`. I have set `values.yaml` and run, `immich-server` alway got `probe failed` error. I haven't changed much on `values.yaml`: ```bash immich.persistence.library.existingClaim= immich-pvc postresql.enabled= false # and `enabled= true` all the objects ``` And here it is the logs of `immich-server`: ```bash Normal Scheduled 43s default-scheduler Successfully assigned immich/immich-server-6c897c84ff-55xvf to orangepi5 Normal Pulled 5s (x2 over 32s) kubelet Container image "ghcr.io/immich-app/immich-server:v1.53.0" already present on machine Normal Created 5s (x2 over 32s) kubelet Created container immich-server Normal Started 5s (x2 over 32s) kubelet Started container immich-server Warning Unhealthy 3s (x5 over 23s) kubelet Readiness probe failed: Get "http://10.42.0.165:3001/server-info/ping": dial tcp 10.42.0.165:3001: connect: connection refused Normal Killing 3s kubelet Container immich-server failed liveness probe, will be restarted ``` When I `k describe pod immich-server-6c897c84ff-55xvf -n immich`: ```bash ... Liveness: http-get http://:http/server-info/ping delay=0s timeout=1s period=10s #success=1 #failure=3 Readiness: http-get http://:http/server-info/ping delay=0s timeout=1s period=10s #success=1 #failure=3 Environment: DB_DATABASE_NAME: immich DB_HOSTNAME: immich-postgresql DB_PASSWORD: immich DB_USERNAME: immich IMMICH_MACHINE_LEARNING_URL: http://immich-machine-learning:3003 IMMICH_SERVER_URL: http://immich-server:3001 IMMICH_WEB_URL: http://immich-web:3000 REDIS_HOSTNAME: immich-redis-master TYPESENSE_API_KEY: typesense TYPESENSE_ENABLED: true TYPESENSE_HOST: immich-typesense ... ``` Something went wrong obviously but have got no idea about `Liveness` and `Readiness`. Could you help me how to solve this? I really love to use `immich` and don't want to find the alternatives. ### The OS that Immich Server is running on Linux 5.10.160-rk35xx aarch64 GNU/Linux ### Version of Immich Server v1.53.0 ### Version of Immich Mobile App X ### Platform with the issue - [X] Server - [ ] Web - [ ] Mobile ### Your docker-compose.yml content ```YAML # values.yaml env: REDIS_HOSTNAME: '{{ printf "%s-redis-master" .Release.Name }}' DB_HOSTNAME: "{{ .Release.Name }}-postgresql" DB_USERNAME: "{{ .Values.postgresql.global.postgresql.auth.username }}" DB_DATABASE_NAME: "{{ .Values.postgresql.global.postgresql.auth.database }}" # -- You should provide your own secret outside of this helm-chart and use `postgresql.global.postgresql.auth.existingSecret` to provide credentials to the postgresql instance DB_PASSWORD: "{{ .Values.postgresql.global.postgresql.auth.password }}" TYPESENSE_ENABLED: "{{ .Values.typesense.enabled }}" TYPESENSE_API_KEY: "{{ .Values.typesense.env.TYPESENSE_API_KEY }}" TYPESENSE_HOST: '{{ printf "%s-typesense" .Release.Name }}' IMMICH_WEB_URL: '{{ printf "http://%s-web:3000" .Release.Name }}' IMMICH_SERVER_URL: '{{ printf "http://%s-server:3001" .Release.Name }}' IMMICH_MACHINE_LEARNING_URL: '{{ printf "http://%s-machine-learning:3003" .Release.Name }}' immich: persistence: # Main data store for all photos shared between different components. library: # Automatically creating the library volume is not supported by this chart # You have to specify an existing PVC to use existingClaim: immich-pvc # Dependencies postgresql: enabled: false global: postgresql: auth: username: immich database: immich password: immich redis: enabled: true architecture: standalone auth: enabled: false typesense: enabled: true env: TYPESENSE_DATA_DIR: /tsdata TYPESENSE_API_KEY: typesense persistence: tsdata: # Enabling typesense persistence is recommended to avoid slow reindexing enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: longhorn image: repository: docker.io/typesense/typesense tag: 0.24.0 pullPolicy: IfNotPresent server: enabled: true image: repository: ghcr.io/immich-app/immich-server pullPolicy: IfNotPresent microservices: enabled: true env: REVERSE_GEOCODING_DUMP_DIRECTORY: /geodata-cache persistence: geodata-cache: enabled: true size: 1Gi # Optional: Set this to pvc to avoid downloading the geodata every start. # type: emptyDir accessMode: ReadWriteMany storageClass: longhorn image: repository: ghcr.io/immich-app/immich-server pullPolicy: IfNotPresent machine-learning: enabled: true image: repository: ghcr.io/immich-app/immich-machine-learning pullPolicy: IfNotPresent env: TRANSFORMERS_CACHE: /cache persistence: cache: enabled: true size: 10Gi # Optional: Set this to pvc to avoid downloading the ML models every start. type: emptyDir accessMode: ReadWriteMany storageClass: longhorn web: enabled: true image: repository: ghcr.io/immich-app/immich-web pullPolicy: IfNotPresent persistence: library: enabled: false proxy: enabled: true image: repository: ghcr.io/immich-app/immich-proxy pullPolicy: IfNotPresent persistence: library: enabled: false ingress: main: enabled: false annotations: # proxy-body-size is set to 0 to remove the body limit on file uploads nginx.ingress.kubernetes.io/proxy-body-size: "0" hosts: - host: immich.local paths: - path: "/" tls: [] ``` ### Your .env content ```Shell Included on `values.yaml` ``` ### Reproduction steps ```bash 1. helm repo add immich-charts https://immich-app.github.io/immich-charts/ 2. helm install --namespace immich immich immich-charts/immich -f values.yaml 3. kubectl get pods -n immich --watch 4. kubectl describe pod immich-server-XXXX -n immich ``` ### Additional information _No response_
Author
Owner

@bo0tzz commented on GitHub (Jul 25, 2023):

You disabled postgresql, but that is a required component.

@bo0tzz commented on GitHub (Jul 25, 2023): You disabled postgresql, but that is a required component.
Author
Owner

@rsaggino commented on GitHub (Aug 14, 2023):

You disabled postgresql, but that is a required component.

Postgres is disabled by default in the official chart https://github.com/immich-app/immich-charts/blob/immich-0.1.2/charts/immich/values.yaml

@rsaggino commented on GitHub (Aug 14, 2023): > You disabled postgresql, but that is a required component. Postgres is disabled by default in the official chart [https://github.com/immich-app/immich-charts/blob/immich-0.1.2/charts/immich/values.yaml ](url)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#1154