# Based on docker compose .env file
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

  # The username for MinIO.
  MINIO_ROOT_USER: rag_flow
  # The password for MinIO
  MINIO_PASSWORD: infini_rag_flow_helm

  # The password for Redis
  REDIS_PASSWORD: infini_rag_flow_helm

  # The RAGFlow Docker image to download.
  # Defaults to the v0.20.1-slim edition, which is the RAGFlow Docker image without embedding models.
  RAGFLOW_IMAGE: infiniflow/ragflow:v0.20.1-slim
  

  # The local time zone.
  TIMEZONE: "Asia/Seoul"

  # 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

  REQUESTS_CA_BUNDLE: /tmp/ca.crt
  SSL_CERT_FILE: /tmp/ca.crt

ragflow:

  # 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:
    oauth:
      oidc:
        display_name: "OIDC"
        client_id: "Client ID"
        client_secret: "Client Secret"
        issuer: "https://keycloak_domain/realms/paasup"
        scope: "openid email profile"
        redirect_uri: "https://ragflow_domain/v1/user/oauth/callback/oidc"

  # 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

# Additional volumes to be mounted in the ragflow container
# Example for custom CA certificates:
# volumes:
#   - name: keycloak-tls
#     secret:
#       secretName: keycloak-tls
volumes: []

# Additional volume mounts for the ragflow container
# Example for custom CA certificates:
# volumeMounts:
#   - name: keycloak-tls
#     mountPath: /tmp/ca.crt
#     subPath: ca.crt
#     readOnly: true
volumeMounts: []

# Kubernetes configuration
deployment:
  strategy:
  resources:
service:
  # Use LoadBalancer to expose the web interface externally
  type: ClusterIP
api:
  service:
    enabled: true
    type: ClusterIP

infinity:
  image:
    repository: infiniflow/infinity
    tag: v0.6.0-dev5
  storage:
    className:
    capacity: 5Gi
  deployment:
    strategy:
    resources:
  service:
    type: ClusterIP

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

mysql:
  image:
    repository: mysql
    tag: 8.0.39
  storage:
    className:
    capacity: 5Gi
  deployment:
    strategy:
    resources:
  service:
    type: ClusterIP

redis:
  image:
    repository: valkey/valkey
    tag: 8
  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: true
  className: "kong"
  annotations: 
    cert-manager.io/cluster-issuer: root-ca-issuer
    cert-manager.io/duration: 8760h
    cert-manager.io/renew-before: 720h
    konghq.com/https-redirect-status-code: '301'
    konghq.com/protocols: https
  hosts:
    - host: ragflow.example.org
      paths:
        - path: /
          pathType: ImplementationSpecific
  tls:
   - secretName: ragflow-tls
     hosts:
       - ragflow.example.org
