# yaml-language-server: $schema=./values.schema.json
image:
  repository: docker.io/ollama/ollama
  pullPolicy: IfNotPresent
  tag: 0.19.0@sha256:bf240c2847a8bc7b2c630b85dab5d1dedcba257b551d5fc9b290ce544d59272a
rocmImage:
  repository: docker.io/ollama/ollama
  pullPolicy: IfNotPresent
  tag: 0.19.0-rocm@sha256:71b5a9cc7b15c542413ce456af10d1032aab5c98dc50605f55df98cdf50bdf36
uiImage:
  repository: ghcr.io/open-webui/open-webui
  pullPolicy: IfNotPresent
  tag: latest@sha256:b8095f79a6a8ffad8f830bdacc9b5b0aef805689b31bca0b065cc2424d3cfaeb

securityContext:
  container:
    runAsNonRoot: false
    readOnlyRootFilesystem: false
    runAsUser: 0
    runAsGroup: 0

service:
  main:
    targetSelector: ui
    ports:
      main:
        protocol: http
        port: 10686
        targetSelector: ui
  api:
    enabled: true
    targetSelector: main
    ports:
      api:
        enabled: true
        protocol: http
        targetPort: 11434
        port: 11434
        targetSelector: main

ingress:
  api:
    enabled: false
    targetSelector:
      api: api

ollama:
  registration:
    enabled: true
    # admin | user | pending
    def_user_role: "pending"
  stable_diffusion:
    base_url: ""
  whisper:
    model: "base"
  rag:
    # cpu | cuda | mps
    model_device_type: "cpu"
    # embedding model
    model: "all-MiniLM-L6-v2"

workload:
  main:
    podSpec:
      containers:
        main:
          imageSelector: image
          probes:
            liveness:
              enabled: true
              type: http
              path: /api/version
              port: "{{ .Values.service.api.ports.api.targetPort }}"
            readiness:
              enabled: true
              type: http
              path: /api/version
              port: "{{ .Values.service.api.ports.api.targetPort }}"
            startup:
              enabled: true
              type: tcp
              port: "{{ .Values.service.api.ports.api.targetPort }}"
  ui:
    enabled: true
    type: Deployment
    podSpec:
      containers:
        ui:
          primary: true
          enabled: true
          imageSelector: uiImage
          resources:
            excludeExtra: true
          probes:
            liveness:
              enabled: true
              type: http
              path: /
              port: "{{ .Values.service.main.ports.main.port }}"
            readiness:
              enabled: true
              type: http
              path: /
              port: "{{ .Values.service.main.ports.main.port }}"
            startup:
              enabled: true
              type: tcp
              port: "{{ .Values.service.main.ports.main.port }}"
          env:
            PORT: "{{ .Values.service.main.ports.main.port }}"
            OLLAMA_BASE_URL: '{{ printf "http://%v-api:%v" (include "tc.v1.common.lib.chart.names.fullname" $) .Values.service.api.ports.api.targetPort }}'
            WEBUI_SECRET_KEY:
              secretKeyRef:
                name: ollama-secrets
                key: WEBUI_SECRET_KEY
            AUTOMATIC1111_BASE_URL: "{{ .Values.ollama.stable_diffusion.base_url }}"
            ENABLE_SIGNUP: "{{ .Values.ollama.registration.enabled }}"
            DEFAULT_USER_ROLE: "{{ .Values.ollama.registration.def_user_role }}"
            WHISPER_MODEL: "{{ .Values.ollama.whisper.model }}"
            RAG_EMBEDDING_MODEL: "{{ .Values.ollama.rag.model }}"
            RAG_EMBEDDING_MODEL_DEVICE_TYPE: "{{ .Values.ollama.rag.model_device_type }}"
            WEBUI_AUTH_TRUSTED_EMAIL_HEADER: "{{ .Values.ollama.registration.trusted_email_header }}"
            # OPENAI_API_BASE_URL
            # OPENAI_API_KEY
            # DEFAULT_MODELS

persistence:
  config:
    enabled: true
    targetSelector:
      main:
        main:
          mountPath: "/root/.ollama"
  data:
    enabled: true
    targetSelector:
      ui:
        ui:
          mountPath: "/app/backend/data"
