{{- define "immich.server.hardcodedValues" -}}
global:
  nameOverride: server

env:
  {{ if .Values.immich.metrics.enabled }}
      IMMICH_TELEMETRY_INCLUDE: all
  {{ end }}
  {{- if .Values.immich.existingConfiguration }}
      IMMICH_CONFIG_FILE: /config/immich-config.json
  {{- else if .Values.immich.configuration }}
      IMMICH_CONFIG_FILE: /config/immich-config.yaml
  {{- end }}

{{- if .Values.immich.configuration }}
podAnnotations:
  checksum/config: {{ .Values.immich.configuration | toYaml | sha256sum }}
{{- end }}

controller:
  strategy: RollingUpdate

service:
  main:
    enabled: true
    primary: true
    type: ClusterIP
    ports:
      http:
        enabled: true
        primary: true
        port: 2283
        protocol: HTTP
      metrics-api:
        enabled: {{ .Values.immich.metrics.enabled }}
        port: 8081
        protocol: HTTP
      metrics-ms:
        enabled: {{ .Values.immich.metrics.enabled }}
        port: 8082
        protocol: HTTP


serviceMonitor:
  main:
    enabled: {{ .Values.immich.metrics.enabled }}
    endpoints:
      - port: metrics-api
        scheme: http
      - port: metrics-ms
        scheme: http

probes:
  liveness: &probes
    enabled: true
    custom: true
    spec:
      httpGet:
        path: /api/server/ping
        port: http
      initialDelaySeconds: 0
      periodSeconds: 10
      timeoutSeconds: 1
      failureThreshold: 3
  readiness: *probes
  startup:
    enabled: true
    custom: true
    spec:
      httpGet:
        path: /api/server/ping
        port: http
      initialDelaySeconds: 0
      periodSeconds: 10
      timeoutSeconds: 1
      failureThreshold: 30

persistence:
{{- if .Values.immich.existingConfiguration }}
  config:
    enabled: true
    type: configMap
    name: {{ .Values.immich.existingConfiguration }}
{{- else if .Values.immich.configuration }}
  config:
    enabled: true
    type: configMap
    name: {{ .Release.Name }}-immich-config
{{- end }}
  library:
    enabled: true
    mountPath: /usr/src/app/upload
    existingClaim: {{ .Values.immich.persistence.library.existingClaim }}
{{- end }}

{{ if .Values.server.enabled }}
{{- $ctx := deepCopy . -}}
{{- $_ := get .Values "server" | mergeOverwrite $ctx.Values -}}
{{- $_ = include "immich.server.hardcodedValues" . | fromYaml | merge $ctx.Values -}}
{{- include "bjw-s.common.loader.all" $ctx }}
{{ end }}
