# Default values for danswer-stack. # This is a YAML-formatted file. # Declare variables to be passed into your templates. imagePullSecrets: [] nameOverride: "" fullnameOverride: "" inferenceCapability: service: name: inference-model-server-service type: ClusterIP port: 9000 pvc: name: inference-model-pvc accessModes: - ReadWriteOnce storage: 3Gi deployment: name: inference-model-server-deployment replicas: 1 labels: - key: app value: inference-model-server image: repository: danswer/danswer-model-server tag: latest pullPolicy: IfNotPresent command: ["uvicorn", "model_server.main:app", "--host", "0.0.0.0", "--port", "9000"] port: 9000 volumeMounts: - name: inference-model-storage mountPath: /root/.cache volumes: - name: inference-model-storage persistentVolumeClaim: claimName: inference-model-pvc podLabels: - key: app value: inference-model-server indexCapability: service: type: ClusterIP port: 9000 name: indexing-model-server-port deploymentLabels: app: indexing-model-server podLabels: app: indexing-model-server indexingOnly: "True" podAnnotations: {} volumeMounts: - name: indexing-model-storage mountPath: /root/.cache volumes: - name: indexing-model-storage persistentVolumeClaim: claimName: indexing-model-storage indexingModelPVC: name: indexing-model-storage accessMode: "ReadWriteOnce" storage: "3Gi" config: envConfigMapName: env-configmap serviceAccount: # Specifies whether a service account should be created create: false # Automatically mount a ServiceAccount's API credentials? automount: true # Annotations to add to the service account annotations: {} # The name of the service account to use. # If not set and create is true, a name is generated using the fullname template name: "" postgresql: primary: persistence: size: 5Gi enabled: true auth: existingSecret: danswer-secrets secretKeys: adminPasswordKey: postgres_password #overwriting as postgres typically expects 'postgres-password' nginx: containerPorts: http: 1024 extraEnvVars: - name: DOMAIN value: localhost service: ports: http: 80 danswer: 3000 targetPort: http: http danswer: http existingServerBlockConfigmap: danswer-nginx-conf webserver: replicaCount: 1 image: repository: danswer/danswer-web-server pullPolicy: IfNotPresent # Overrides the image tag whose default is the chart appVersion. tag: "" deploymentLabels: app: web-server podAnnotations: {} podLabels: app: web-server podSecurityContext: {} # fsGroup: 2000 securityContext: {} # capabilities: # drop: # - ALL # readOnlyRootFilesystem: true # runAsNonRoot: true # runAsUser: 1000 service: type: ClusterIP port: 3000 resources: {} # We usually recommend not to specify default resources and to leave this as a conscious # choice for the user. This also increases chances charts run on environments with little # resources, such as Minikube. If you do want to specify resources, uncomment the following # lines, adjust them as necessary, and remove the curly braces after 'resources:'. # limits: # cpu: 100m # memory: 128Mi # requests: # cpu: 100m # memory: 128Mi autoscaling: enabled: false minReplicas: 1 maxReplicas: 100 targetCPUUtilizationPercentage: 80 # targetMemoryUtilizationPercentage: 80 # Additional volumes on the output Deployment definition. volumes: [] # - name: foo # secret: # secretName: mysecret # optional: false # Additional volumeMounts on the output Deployment definition. volumeMounts: [] # - name: foo # mountPath: "/etc/foo" # readOnly: true nodeSelector: {} tolerations: [] affinity: {} api: replicaCount: 1 image: repository: danswer/danswer-backend pullPolicy: IfNotPresent # Overrides the image tag whose default is the chart appVersion. tag: "" deploymentLabels: app: api-server podAnnotations: {} podLabels: scope: danswer-backend app: api-server podSecurityContext: {} # fsGroup: 2000 securityContext: {} # capabilities: # drop: # - ALL # readOnlyRootFilesystem: true # runAsNonRoot: true # runAsUser: 1000 service: type: ClusterIP port: 8080 resources: {} # We usually recommend not to specify default resources and to leave this as a conscious # choice for the user. This also increases chances charts run on environments with little # resources, such as Minikube. If you do want to specify resources, uncomment the following # lines, adjust them as necessary, and remove the curly braces after 'resources:'. # requests: # cpu: 1000m # Requests 1 CPU core # memory: 1Gi # Requests 1 GiB of memory # limits: # cpu: 2000m # Limits to 2 CPU cores # memory: 2Gi # Limits to 2 GiB of memory autoscaling: enabled: false minReplicas: 1 maxReplicas: 100 targetCPUUtilizationPercentage: 80 # targetMemoryUtilizationPercentage: 80 # Additional volumes on the output Deployment definition. volumes: [] # - name: foo # secret: # secretName: mysecret # optional: false # Additional volumeMounts on the output Deployment definition. volumeMounts: [] # - name: foo # mountPath: "/etc/foo" # readOnly: true nodeSelector: {} tolerations: [] background: replicaCount: 1 image: repository: danswer/danswer-backend pullPolicy: IfNotPresent # Overrides the image tag whose default is the chart appVersion. tag: latest podAnnotations: {} podLabels: scope: danswer-backend app: background deploymentLabels: app: background podSecurityContext: {} # fsGroup: 2000 securityContext: {} # capabilities: # drop: # - ALL # readOnlyRootFilesystem: true # runAsNonRoot: true # runAsUser: 1000 enableMiniChunk: "true" resources: {} # We usually recommend not to specify default resources and to leave this as a conscious # choice for the user. This also increases chances charts run on environments with little # resources, such as Minikube. If you do want to specify resources, uncomment the following # lines, adjust them as necessary, and remove the curly braces after 'resources:'. # requests: # cpu: 1000m # Requests 1 CPU core # memory: 1Gi # Requests 1 GiB of memory # limits: # cpu: 2000m # Limits to 2 CPU cores # memory: 2Gi # Limits to 2 GiB of memory autoscaling: enabled: false minReplicas: 1 maxReplicas: 100 targetCPUUtilizationPercentage: 80 # targetMemoryUtilizationPercentage: 80 # Additional volumes on the output Deployment definition. volumes: [] # - name: foo # secret: # secretName: mysecret # optional: false # Additional volumeMounts on the output Deployment definition. volumeMounts: [] # - name: foo # mountPath: "/etc/foo" # readOnly: true nodeSelector: {} tolerations: [] vespa: replicaCount: 1 image: repository: vespa pullPolicy: IfNotPresent tag: "8.277.17" podAnnotations: {} podLabels: app: vespa app.kubernetes.io/instance: danswer app.kubernetes.io/name: vespa enabled: true podSecurityContext: {} # fsGroup: 2000 securityContext: privileged: true runAsUser: 0 # capabilities: # drop: # - ALL # readOnlyRootFilesystem: true # runAsNonRoot: true # runAsUser: 1000 resources: # The Vespa Helm chart specifies default resources, which are quite modest. We override # them here to increase chances of the chart running successfully. requests: cpu: 1500m memory: 4000Mi limits: cpu: 1500m memory: 4000Mi nodeSelector: {} tolerations: [] affinity: {} #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 persistence: vespa: enabled: true existingClaim: "" storageClassName: "" accessModes: - ReadWriteOnce size: 5Gi auth: # for storing smtp, oauth, slack, and other secrets # keys are lowercased version of env vars (e.g. SMTP_USER -> smtp_user) existingSecret: "" # danswer-secrets # optionally override the secret keys to reference in the secret secretKeys: postgres_password: "postgres_password" smtp_pass: "" oauth_client_id: "" oauth_client_secret: "" oauth_cookie_secret: "" gen_ai_api_key: "" danswer_bot_slack_app_token: "" danswer_bot_slack_bot_token: "" # will be overridden by the existingSecret if set secretName: "danswer-secrets" # set values as strings, they will be base64 encoded secrets: postgres_password: "postgres" smtp_pass: "" oauth_client_id: "" oauth_client_secret: "" oauth_cookie_secret: "" gen_ai_api_key: "" danswer_bot_slack_app_token: "" danswer_bot_slack_bot_token: "" configMap: AUTH_TYPE: "disabled" # Change this for production uses unless Danswer is only accessible behind VPN SESSION_EXPIRE_TIME_SECONDS: "86400" # 1 Day Default VALID_EMAIL_DOMAINS: "" # Can be something like danswer.ai, as an extra double-check SMTP_SERVER: "" # For sending verification emails, if unspecified then defaults to 'smtp.gmail.com' SMTP_PORT: "" # For sending verification emails, if unspecified then defaults to '587' SMTP_USER: "" # 'your-email@company.com' # SMTP_PASS: "" # 'your-gmail-password' EMAIL_FROM: "" # 'your-email@company.com' SMTP_USER missing used instead # Gen AI Settings GEN_AI_MODEL_PROVIDER: "" GEN_AI_MODEL_VERSION: "" FAST_GEN_AI_MODEL_VERSION: "" # GEN_AI_API_KEY: "" GEN_AI_API_ENDPOINT: "" GEN_AI_API_VERSION: "" GEN_AI_LLM_PROVIDER_TYPE: "" GEN_AI_MAX_TOKENS: "" QA_TIMEOUT: "60" MAX_CHUNKS_FED_TO_CHAT: "" DISABLE_LLM_DOC_RELEVANCE: "" DISABLE_LLM_CHOOSE_SEARCH: "" DISABLE_LLM_QUERY_REPHRASE: "" # Query Options DOC_TIME_DECAY: "" HYBRID_ALPHA: "" EDIT_KEYWORD_QUERY: "" MULTILINGUAL_QUERY_EXPANSION: "" LANGUAGE_HINT: "" LANGUAGE_CHAT_NAMING_HINT: "" QA_PROMPT_OVERRIDE: "" # Internet Search Tool BING_API_KEY: "" # Don't change the NLP models unless you know what you're doing DOCUMENT_ENCODER_MODEL: "" NORMALIZE_EMBEDDINGS: "" ASYM_QUERY_PREFIX: "" ASYM_PASSAGE_PREFIX: "" ENABLE_RERANKING_REAL_TIME_FLOW: "" ENABLE_RERANKING_ASYNC_FLOW: "" MODEL_SERVER_PORT: "" MIN_THREADS_ML_MODELS: "" # Indexing Configs NUM_INDEXING_WORKERS: "" DISABLE_INDEX_UPDATE_ON_SWAP: "" DASK_JOB_CLIENT_ENABLED: "" CONTINUE_ON_CONNECTOR_FAILURE: "" EXPERIMENTAL_CHECKPOINTING_ENABLED: "" CONFLUENCE_CONNECTOR_LABELS_TO_SKIP: "" JIRA_API_VERSION: "" GONG_CONNECTOR_START_TIME: "" NOTION_CONNECTOR_ENABLE_RECURSIVE_PAGE_LOOKUP: "" # DanswerBot SlackBot Configs # DANSWER_BOT_SLACK_APP_TOKEN: "" # DANSWER_BOT_SLACK_BOT_TOKEN: "" DANSWER_BOT_DISABLE_DOCS_ONLY_ANSWER: "" DANSWER_BOT_DISPLAY_ERROR_MSGS: "" DANSWER_BOT_RESPOND_EVERY_CHANNEL: "" DANSWER_BOT_DISABLE_COT: "" # Currently unused NOTIFY_SLACKBOT_NO_ANSWER: "" # Logging # Optional Telemetry, please keep it on (nothing sensitive is collected)? <3 # https://docs.danswer.dev/more/telemetry DISABLE_TELEMETRY: "" LOG_LEVEL: "" LOG_ALL_MODEL_INTERACTIONS: "" LOG_DANSWER_MODEL_INTERACTIONS: "" LOG_VESPA_TIMING_INFORMATION: "" # Shared or Non-backend Related WEB_DOMAIN: "http://localhost:3000" # for web server and api server DOMAIN: "localhost" # for nginx