# Based on docker compose .env file

# Global image pull secrets configuration
global:
  # Global image repo prefix to render all images from a mirror/registry.
  # Example: "registry.example.com/myproj"
  # When set, template will replace the registry part of each image and keep the path.
  # Leave empty to use per-image repositories as-is.
  repo: ""
  # Global image pull secrets for all pods
  imagePullSecrets: []

env:
  # The type of doc engine to use.
  # Available options:
  # - `elasticsearch` (default)
  # - `infinity` (https://github.com/infiniflow/infinity)
  # - `opensearch` (https://github.com/opensearch-project/OpenSearch)
  # DOC_ENGINE: elasticsearch
  DOC_ENGINE: infinity
  # DOC_ENGINE: opensearch

  # The version of Elasticsearch.
  STACK_VERSION: "8.11.3"

  # The password for Elasticsearch
  ELASTIC_PASSWORD: infini_rag_flow_helm

  # The password for OpenSearch.
  # At least one uppercase letter, one lowercase letter, one digit, and one special character
  OPENSEARCH_PASSWORD: infini_rag_flow_OS_01

  # The password for MySQL
  MYSQL_PASSWORD: infini_rag_flow_helm
  # The database of the MySQL service to use
  MYSQL_DBNAME: rag_flow
  # External MySQL host (only required when mysql.enabled=false)
  # MYSQL_HOST: ""
  # External MySQL port (defaults to 3306 if not set)
  # MYSQL_PORT: "3306"
  # External MySQL user (only when mysql.enabled=false), default is root if omitted
  # MYSQL_USER: "root"

  # The username for MinIO.
  MINIO_ROOT_USER: rag_flow
  # The password for MinIO
  MINIO_PASSWORD: infini_rag_flow_helm
  # External MinIO host
  # MINIO_HOST: ""
  # External MinIO port (defaults to 9000 if not set)
  # MINIO_PORT: "9000"

  # The password for Redis
  REDIS_PASSWORD: infini_rag_flow_helm
  # External Redis host (only required when redis.enabled=false)
  # REDIS_HOST: ""
  # External Redis port (defaults to 6379 if not set)
  # REDIS_PORT: "6379"

  # The local time zone.
  TZ: "Asia/Shanghai"

  # Uncomment the following line if you have limited access to huggingface.co:
  # HF_ENDPOINT: https://hf-mirror.com

  # The maximum file size for each uploaded file, in bytes.
  # You can uncomment this line and update the value if you wish to change 128M file size limit
  # MAX_CONTENT_LENGTH: "134217728"
  # After making the change, ensure you update `client_max_body_size` in nginx/nginx.conf correspondingly.

  # The number of document chunks processed in a single batch during document parsing.
  DOC_BULK_SIZE: 4

  # The number of text chunks processed in a single batch during embedding vectorization.
  EMBEDDING_BATCH_SIZE: 16

ragflow:
  image:
    repository: infiniflow/ragflow
    tag: v0.25.6
    pullPolicy: IfNotPresent
    pullSecrets: []
  # Optional service configuration overrides
  # to be written to local.service_conf.yaml
  # inside the RAGFlow container
  # https://ragflow.io/docs/dev/configurations#service-configuration
  service_conf:

  # Optional yaml formatted override for the
  # llm_factories.json file inside the RAGFlow
  # container.
  llm_factories:
    # factory_llm_infos:
    # - name: OpenAI-API-Compatible
    #   logo: ""
    #   tags: "LLM,TEXT EMBEDDING,SPEECH2TEXT,MODERATION"
    #   status: "1"
    #   llm:
    #     - llm_name: my-custom-llm
    #       tags: "LLM,CHAT,"
    #       max_tokens: 100000
    #       model_type: chat
    #       is_tools: false

  # Kubernetes configuration
  deployment:
    strategy:
    resources:
  service:
    # Use LoadBalancer to expose the web interface externally
    type: ClusterIP
  admin:
    # Enable Admin Service
    enabled: true
    # Admin Service port configuration
    port: 9381
    # Admin Service type
    serviceType: ClusterIP
  api:
    service:
      enabled: true
      type: ClusterIP

infinity:
  image:
    repository: infiniflow/infinity
    tag: v0.7.0
    pullPolicy: IfNotPresent
    pullSecrets: []
  storage:
    className:
    capacity: 5Gi
  deployment:
    strategy:
    resources:
  service:
    type: ClusterIP

elasticsearch:
  image:
    repository: elasticsearch
    tag: "8.11.3"
    pullPolicy: IfNotPresent
    pullSecrets: []
  initContainers:
    alpine:
      repository: alpine
      tag: latest
      pullPolicy: IfNotPresent
    busybox:
      repository: busybox
      tag: latest
      pullPolicy: IfNotPresent
  storage:
    className:
    capacity: 20Gi
  deployment:
    strategy:
    resources:
      requests:
        cpu: "4"
        memory: "16Gi"
  service:
    type: ClusterIP

opensearch:
  image:
    repository: opensearchproject/opensearch
    tag: 2.19.1
    pullPolicy: IfNotPresent
    pullSecrets: []
  initContainers:
    alpine:
      repository: alpine
      tag: latest
      pullPolicy: IfNotPresent
    busybox:
      repository: busybox
      tag: latest
      pullPolicy: IfNotPresent
  storage:
    className:
    capacity: 20Gi
  deployment:
    strategy:
    resources:
      requests:
        cpu: "4"
        memory: "16Gi"
  service:
    type: ClusterIP

minio:
  enabled: true
  image:
    repository: quay.io/minio/minio
    tag: RELEASE.2023-12-20T01-00-02Z
    pullPolicy: IfNotPresent
    pullSecrets: []
  storage:
    className:
    capacity: 5Gi
  deployment:
    strategy:
    resources:
  service:
    type: ClusterIP

mysql:
  enabled: true
  image:
    repository: mysql
    tag: 8.0.39
    pullPolicy: IfNotPresent
    pullSecrets: []
  storage:
    className:
    capacity: 5Gi
  deployment:
    strategy:
    resources:
  service:
    type: ClusterIP

redis:
  enabled: true
  image:
    repository: valkey/valkey
    tag: 8
    pullPolicy: IfNotPresent
    pullSecrets: []
  storage:
    className:
    capacity: 5Gi
  persistence:
    enabled: true
    # Set's the retention policy for the persistent storage (only available in k8s 1.32 or later)
    # https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
    # retentionPolicy:
      # whenDeleted: Delete
      # whenScaled: Delete
  deployment:
    strategy:
    resources:
  service:
    type: ClusterIP


# This block is for setting up web service ingress. For more information, see:
# https://kubernetes.io/docs/concepts/services-networking/ingress/
ingress:
  enabled: false
  className: ""
  annotations: {}
    # kubernetes.io/ingress.class: nginx
    # kubernetes.io/tls-acme: "true"
  hosts:
    - host: chart-example.local
      paths:
        - path: /
          pathType: ImplementationSpecific
  tls: []
  #  - secretName: chart-example-tls
  #    hosts:
  #      - chart-example.local
