From 2363698c203e72b50412a86c54fae9df2346e6b1 Mon Sep 17 00:00:00 2001 From: Yuhong Sun Date: Sat, 1 Jun 2024 16:46:44 -0700 Subject: [PATCH] Consolidate Helm Charts (#1552) --- deployment/helm/Chart.lock | 12 +- deployment/helm/Chart.yaml | 23 +- deployment/helm/templates/NOTES.txt | 22 - deployment/helm/templates/_helpers.tpl | 21 + deployment/helm/templates/api-deployment.yaml | 65 +-- deployment/helm/templates/api-service.yaml | 9 +- .../helm/templates/background-deployment.yaml | 65 +-- deployment/helm/templates/configmap.yaml | 14 +- deployment/helm/templates/connector-pvc.yaml | 19 - .../templates/danswer-secret.yaml | 0 deployment/helm/templates/dynamic-pvc.yaml | 19 - .../templates/indexing-model-deployment.yaml | 0 .../templates/indexing-model-pvc.yaml | 0 .../templates/indexing-model-service.yaml | 0 .../templates/inference-model-deployment.yaml | 0 .../templates/inference-model-pvc.yaml | 0 .../templates/inference-model-service.yaml | 0 deployment/helm/templates/ingress.yaml | 60 --- .../templates/nginx-conf.yaml | 2 +- deployment/helm/templates/secret.yaml | 10 - deployment/helm/templates/vespa-service.yaml | 23 - .../helm/templates/vespa-statefulset.yaml | 83 --- .../helm/templates/webserver-deployment.yaml | 45 +- .../helm/templates/webserver-service.yaml | 6 + deployment/helm/values.yaml | 332 +++++++----- .../api_server-service-deployment.yaml | 12 - .../kubernetes/background-deployment.yaml | 12 - .../charts/danswer-stack/.gitignore | 3 - .../charts/danswer-stack/.helmignore | 23 - .../charts/danswer-stack/Chart.lock | 12 - .../charts/danswer-stack/Chart.yaml | 35 -- .../danswer-stack/templates/_helpers.tpl | 83 --- .../templates/api-connector-pvc.yaml | 19 - .../templates/api-deployment.yaml | 81 --- .../danswer-stack/templates/api-hpa.yaml | 32 -- .../danswer-stack/templates/api-pvc.yaml | 19 - .../danswer-stack/templates/api-service.yaml | 21 - .../templates/background-connector-pvc.yaml | 19 - .../templates/background-deployment.yaml | 77 --- .../templates/background-dynamic-pvc.yaml | 19 - .../templates/background-hpa.yaml | 32 -- .../danswer-stack/templates/configmap.yaml | 15 - .../templates/serviceaccount.yaml | 13 - .../templates/tests/test-connection.yaml | 15 - .../templates/webserver-deployment.yaml | 60 --- .../templates/webserver-hpa.yaml | 32 -- .../templates/webserver-service.yaml | 21 - .../charts/danswer-stack/values.yaml | 488 ------------------ deployment/kubernetes/persistent-volumes.yaml | 21 - 49 files changed, 296 insertions(+), 1698 deletions(-) delete mode 100644 deployment/helm/templates/NOTES.txt delete mode 100644 deployment/helm/templates/connector-pvc.yaml rename deployment/{kubernetes/charts/danswer-stack => helm}/templates/danswer-secret.yaml (100%) delete mode 100644 deployment/helm/templates/dynamic-pvc.yaml rename deployment/{kubernetes/charts/danswer-stack => helm}/templates/indexing-model-deployment.yaml (100%) rename deployment/{kubernetes/charts/danswer-stack => helm}/templates/indexing-model-pvc.yaml (100%) rename deployment/{kubernetes/charts/danswer-stack => helm}/templates/indexing-model-service.yaml (100%) rename deployment/{kubernetes/charts/danswer-stack => helm}/templates/inference-model-deployment.yaml (100%) rename deployment/{kubernetes/charts/danswer-stack => helm}/templates/inference-model-pvc.yaml (100%) rename deployment/{kubernetes/charts/danswer-stack => helm}/templates/inference-model-service.yaml (100%) delete mode 100644 deployment/helm/templates/ingress.yaml rename deployment/{kubernetes/charts/danswer-stack => helm}/templates/nginx-conf.yaml (92%) delete mode 100755 deployment/helm/templates/secret.yaml delete mode 100644 deployment/helm/templates/vespa-service.yaml delete mode 100644 deployment/helm/templates/vespa-statefulset.yaml delete mode 100644 deployment/kubernetes/charts/danswer-stack/.gitignore delete mode 100644 deployment/kubernetes/charts/danswer-stack/.helmignore delete mode 100644 deployment/kubernetes/charts/danswer-stack/Chart.lock delete mode 100644 deployment/kubernetes/charts/danswer-stack/Chart.yaml delete mode 100644 deployment/kubernetes/charts/danswer-stack/templates/_helpers.tpl delete mode 100644 deployment/kubernetes/charts/danswer-stack/templates/api-connector-pvc.yaml delete mode 100644 deployment/kubernetes/charts/danswer-stack/templates/api-deployment.yaml delete mode 100644 deployment/kubernetes/charts/danswer-stack/templates/api-hpa.yaml delete mode 100644 deployment/kubernetes/charts/danswer-stack/templates/api-pvc.yaml delete mode 100644 deployment/kubernetes/charts/danswer-stack/templates/api-service.yaml delete mode 100644 deployment/kubernetes/charts/danswer-stack/templates/background-connector-pvc.yaml delete mode 100644 deployment/kubernetes/charts/danswer-stack/templates/background-deployment.yaml delete mode 100644 deployment/kubernetes/charts/danswer-stack/templates/background-dynamic-pvc.yaml delete mode 100644 deployment/kubernetes/charts/danswer-stack/templates/background-hpa.yaml delete mode 100755 deployment/kubernetes/charts/danswer-stack/templates/configmap.yaml delete mode 100644 deployment/kubernetes/charts/danswer-stack/templates/serviceaccount.yaml delete mode 100644 deployment/kubernetes/charts/danswer-stack/templates/tests/test-connection.yaml delete mode 100644 deployment/kubernetes/charts/danswer-stack/templates/webserver-deployment.yaml delete mode 100644 deployment/kubernetes/charts/danswer-stack/templates/webserver-hpa.yaml delete mode 100644 deployment/kubernetes/charts/danswer-stack/templates/webserver-service.yaml delete mode 100644 deployment/kubernetes/charts/danswer-stack/values.yaml delete mode 100644 deployment/kubernetes/persistent-volumes.yaml diff --git a/deployment/helm/Chart.lock b/deployment/helm/Chart.lock index 7486bf317..918b44f6e 100644 --- a/deployment/helm/Chart.lock +++ b/deployment/helm/Chart.lock @@ -1,6 +1,12 @@ dependencies: - name: postgresql repository: https://charts.bitnami.com/bitnami - version: 14.1.0 -digest: sha256:526d286ca7143959104d8a7f9b196706efdbd89dcc37943a1b54016f224d4b4d -generated: "2024-02-16T12:21:42.36744+01:00" + version: 14.3.1 +- name: vespa + repository: https://unoplat.github.io/vespa-helm-charts + version: 0.2.3 +- name: nginx + repository: oci://registry-1.docker.io/bitnamicharts + version: 15.14.0 +digest: sha256:ab17b5d2c3883055cb4a26bf530043521be5220c24f804e954bb428273d16ba8 +generated: "2024-05-24T16:55:30.598279-07:00" diff --git a/deployment/helm/Chart.yaml b/deployment/helm/Chart.yaml index a36131be1..7763f33be 100644 --- a/deployment/helm/Chart.yaml +++ b/deployment/helm/Chart.yaml @@ -5,20 +5,31 @@ home: https://www.danswer.ai/ sources: - "https://github.com/danswer-ai/danswer" type: application -version: 0.1.0 -appVersion: "v0.3.42" +version: 0.2.0 +appVersion: "latest" annotations: category: Productivity licenses: MIT images: | - name: webserver - image: docker.io/danswer/danswer-web-server:v0.3.42 + image: docker.io/danswer/danswer-web-server:latest - name: background - image: docker.io/danswer/danswer-backend:v0.3.42 + image: docker.io/danswer/danswer-backend:latest - name: vespa image: vespaengine/vespa:8.277.17 dependencies: - name: postgresql - version: "14.1.0" + version: 14.3.1 repository: https://charts.bitnami.com/bitnami - condition: postgresql.enabled \ No newline at end of file + condition: postgresql.enabled + - name: vespa + version: 0.2.3 + repository: https://unoplat.github.io/vespa-helm-charts + condition: vespa.enabled + - name: nginx + version: 15.14.0 + repository: oci://registry-1.docker.io/bitnamicharts + condition: nginx.enabled + + + \ No newline at end of file diff --git a/deployment/helm/templates/NOTES.txt b/deployment/helm/templates/NOTES.txt deleted file mode 100644 index 41703407b..000000000 --- a/deployment/helm/templates/NOTES.txt +++ /dev/null @@ -1,22 +0,0 @@ -1. Get the application URL by running these commands: -{{- if .Values.ingress.enabled }} -{{- range $host := .Values.ingress.hosts }} - {{- range .paths }} - http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} - {{- end }} -{{- end }} -{{- else if contains "NodePort" .Values.webserver.service.type }} - export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "danswer-stack.fullname" . }}) - export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") - echo http://$NODE_IP:$NODE_PORT -{{- else if contains "LoadBalancer" .Values.webserver.service.type }} - NOTE: It may take a few minutes for the LoadBalancer IP to be available. - You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "danswer-stack.fullname" . }}' - export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "danswer-stack.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") - echo http://$SERVICE_IP:{{ .Values.webserver.service.port }} -{{- else if contains "ClusterIP" .Values.webserver.service.type }} - export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "danswer-stack.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") - export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") - echo "Visit http://127.0.0.1:8080 to use your application" - kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT -{{- end }} diff --git a/deployment/helm/templates/_helpers.tpl b/deployment/helm/templates/_helpers.tpl index 4e6672fd6..483a5b5e5 100644 --- a/deployment/helm/templates/_helpers.tpl +++ b/deployment/helm/templates/_helpers.tpl @@ -60,3 +60,24 @@ Create the name of the service account to use {{- default "default" .Values.serviceAccount.name }} {{- end }} {{- end }} + +{{/* +Set secret name +*/}} +{{- define "danswer-stack.secretName" -}} +{{- default (default "danswer-secrets" .Values.auth.secretName) .Values.auth.existingSecret }} +{{- end }} + +{{/* +Create env vars from secrets +*/}} +{{- define "danswer-stack.envSecrets" -}} + {{- range $name, $key := .Values.auth.secretKeys }} +- name: {{ $name | upper | replace "-" "_" | quote }} + valueFrom: + secretKeyRef: + name: {{ include "danswer-stack.secretName" $ }} + key: {{ default $name $key }} + {{- end }} +{{- end }} + diff --git a/deployment/helm/templates/api-deployment.yaml b/deployment/helm/templates/api-deployment.yaml index 8c40f3408..7f10bffaf 100644 --- a/deployment/helm/templates/api-deployment.yaml +++ b/deployment/helm/templates/api-deployment.yaml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: {{ include "danswer-stack.fullname" . }}-api + name: {{ include "danswer-stack.fullname" . }}-api-deployment labels: {{- include "danswer-stack.labels" . | nindent 4 }} spec: @@ -11,6 +11,9 @@ spec: selector: matchLabels: {{- include "danswer-stack.selectorLabels" . | nindent 6 }} + {{- if .Values.api.deploymentLabels }} + {{- toYaml .Values.api.deploymentLabels | nindent 6 }} + {{- end }} template: metadata: {{- with .Values.api.podAnnotations }} @@ -31,7 +34,7 @@ spec: securityContext: {{- toYaml .Values.api.podSecurityContext | nindent 8 }} containers: - - name: {{ .Chart.Name }} + - name: api-server securityContext: {{- toYaml .Values.api.securityContext | nindent 12 }} image: "{{ .Values.api.image.repository }}:{{ .Values.api.image.tag | default .Chart.AppVersion }}" @@ -51,60 +54,6 @@ spec: {{- toYaml .Values.api.resources | nindent 12 }} envFrom: - configMapRef: - name: {{ include "danswer-stack.fullname" . }} + name: {{ .Values.config.envConfigMapName }} env: - - name: INTERNAL_URL - value: {{ (list "http://" (include "danswer-stack.fullname" .) "-api:" .Values.api.service.port | join "") | quote }} - - name: VESPA_HOST - value: {{ (list (include "danswer-stack.fullname" .) "vespa" | join "-") }} - {{- if .Values.postgresql.enabled }} - - name: POSTGRES_HOST - value: {{ (list .Release.Name "postgresql" | join "-") }} - - name: POSTGRES_DB - value: {{ .Values.postgresql.auth.database }} - - name: POSTGRES_USER - value: {{ .Values.postgresql.auth.username }} - - name: POSTGRES_PASSWORD - valueFrom: - secretKeyRef: - name: {{ (list .Release.Name "postgresql" | join "-") }} - key: password - {{- end }} - volumeMounts: - - name: dynamic-storage - mountPath: /home/storage - - name: connector-storage - mountPath: /home/file_connector_storage - {{- if .Values.api.volumeMounts }} - {{- .Values.api.volumeMounts | toYaml | nindent 12}} - {{- end }} - volumes: - - name: dynamic-storage - {{- if .Values.persistence.dynamic.enabled }} - persistentVolumeClaim: - claimName: {{ .Values.persistence.dynamic.existingClaim | default (list (include "danswer-stack.fullname" .) "dynamic" | join "-") }} - {{- else }} - emptyDir: { } - {{- end }} - - name: connector-storage - {{- if .Values.persistence.connector.enabled }} - persistentVolumeClaim: - claimName: {{ .Values.persistence.connector.existingClaim | default (list (include "danswer-stack.fullname" .) "connector" | join "-") }} - {{- else }} - emptyDir: { } - {{- end }} - {{- if .Values.api.volumes }} - {{- .Values.api.volumes | toYaml | nindent 8}} - {{- end }} - {{- with .Values.api.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.api.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.api.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} + {{- include "danswer-stack.envSecrets" . | nindent 12}} diff --git a/deployment/helm/templates/api-service.yaml b/deployment/helm/templates/api-service.yaml index f4e4e0be6..1fd74d4dd 100644 --- a/deployment/helm/templates/api-service.yaml +++ b/deployment/helm/templates/api-service.yaml @@ -1,9 +1,13 @@ apiVersion: v1 kind: Service metadata: - name: {{ include "danswer-stack.fullname" . }}-api + # INTERNAL_URL env variable depends on this, don't change without changing INTERNAL_URL + name: {{ include "danswer-stack.fullname" . }}-api-service labels: {{- include "danswer-stack.labels" . | nindent 4 }} + {{- if .Values.api.deploymentLabels }} + {{- toYaml .Values.api.deploymentLabels | nindent 4 }} + {{- end }} spec: type: {{ .Values.api.service.type }} ports: @@ -13,3 +17,6 @@ spec: name: api-server-port selector: {{- include "danswer-stack.selectorLabels" . | nindent 4 }} + {{- if .Values.api.deploymentLabels }} + {{- toYaml .Values.api.deploymentLabels | nindent 4 }} + {{- end }} diff --git a/deployment/helm/templates/background-deployment.yaml b/deployment/helm/templates/background-deployment.yaml index 59cfc5246..3cd65a99a 100644 --- a/deployment/helm/templates/background-deployment.yaml +++ b/deployment/helm/templates/background-deployment.yaml @@ -11,6 +11,9 @@ spec: selector: matchLabels: {{- include "danswer-stack.selectorLabels" . | nindent 6 }} + {{- if .Values.background.deploymentLabels }} + {{- toYaml .Values.background.deploymentLabels | nindent 6 }} + {{- end }} template: metadata: {{- with .Values.background.podAnnotations }} @@ -31,7 +34,7 @@ spec: securityContext: {{- toYaml .Values.background.podSecurityContext | nindent 8 }} containers: - - name: {{ .Chart.Name }} + - name: background securityContext: {{- toYaml .Values.background.securityContext | nindent 12 }} image: "{{ .Values.background.image.repository }}:{{ .Values.background.image.tag | default .Chart.AppVersion }}" @@ -41,60 +44,8 @@ spec: {{- toYaml .Values.background.resources | nindent 12 }} envFrom: - configMapRef: - name: {{ include "danswer-stack.fullname" . }} + name: {{ .Values.config.envConfigMapName }} env: - - name: INTERNAL_URL - value: {{ (list "http://" (include "danswer-stack.fullname" .) "-api:" .Values.api.service.port | join "") | quote }} - - name: VESPA_HOST - value: {{ (list (include "danswer-stack.fullname" .) "vespa" | join "-") }} - {{- if .Values.postgresql.enabled }} - - name: POSTGRES_HOST - value: {{ (list .Release.Name "postgresql" | join "-") }} - - name: POSTGRES_DB - value: {{ .Values.postgresql.auth.database }} - - name: POSTGRES_USER - value: {{ .Values.postgresql.auth.username }} - - name: POSTGRES_PASSWORD - valueFrom: - secretKeyRef: - name: {{ (list .Release.Name "postgresql" | join "-") }} - key: password - {{- end }} - volumeMounts: - - name: dynamic-storage - mountPath: /home/storage - - name: connector-storage - mountPath: /home/file_connector_storage - {{- if .Values.background.volumeMounts }} - {{- .Values.background.volumeMounts | toYaml | nindent 12}} - {{- end }} - volumes: - - name: dynamic-storage - {{- if .Values.persistence.dynamic.enabled }} - persistentVolumeClaim: - claimName: {{ .Values.persistence.dynamic.existingClaim | default (list (include "danswer-stack.fullname" .) "dynamic" | join "-") }} - {{- else }} - emptyDir: { } - {{- end }} - - name: connector-storage - {{- if .Values.persistence.connector.enabled }} - persistentVolumeClaim: - claimName: {{ .Values.persistence.connector.existingClaim | default (list (include "danswer-stack.fullname" .) "connector" | join "-") }} - {{- else }} - emptyDir: { } - {{- end }} - {{- if .Values.background.volumes }} - {{- .Values.background.volumes | toYaml | nindent 8}} - {{- end }} - {{- with .Values.background.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.background.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.background.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} + - name: ENABLE_MINI_CHUNK + value: "{{ .Values.background.enableMiniChunk }}" + {{- include "danswer-stack.envSecrets" . | nindent 12}} diff --git a/deployment/helm/templates/configmap.yaml b/deployment/helm/templates/configmap.yaml index a39397798..8119ae045 100755 --- a/deployment/helm/templates/configmap.yaml +++ b/deployment/helm/templates/configmap.yaml @@ -1,11 +1,15 @@ apiVersion: v1 kind: ConfigMap metadata: - name: {{ include "danswer-stack.fullname" . }} + name: {{ .Values.config.envConfigMapName }} labels: {{- include "danswer-stack.labels" . | nindent 4 }} data: -{{- range $key, $value := .Values.config }} - {{ $key }}: |- - {{- $value | nindent 4 }} -{{- end }} + INTERNAL_URL: "http://{{ include "danswer-stack.fullname" . }}-api-service:{{ .Values.api.service.port | default 8080 }}" + POSTGRES_HOST: {{ .Release.Name }}-postgresql + VESPA_HOST: "document-index-service" + MODEL_SERVER_HOST: "{{ include "danswer-stack.fullname" . }}-inference-model-service" + INDEXING_MODEL_SERVER_HOST: "{{ include "danswer-stack.fullname" . }}-indexing-model-service" +{{- range $key, $value := .Values.configMap }} + {{ $key }}: "{{ $value }}" +{{- end }} \ No newline at end of file diff --git a/deployment/helm/templates/connector-pvc.yaml b/deployment/helm/templates/connector-pvc.yaml deleted file mode 100644 index 41c41c3cf..000000000 --- a/deployment/helm/templates/connector-pvc.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- if and .Values.persistence.connector.enabled (not .Values.persistence.connector.existingClaim)}} -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: {{ include "danswer-stack.fullname" . }}-connector - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} -spec: - accessModes: - {{- range .Values.persistence.connector.accessModes }} - - {{ . | quote }} - {{- end }} - resources: - requests: - storage: {{ .Values.persistence.connector.size | quote }} - {{- with .Values.persistence.connector.storageClassName }} - storageClassName: {{ . }} - {{- end }} -{{- end }} \ No newline at end of file diff --git a/deployment/kubernetes/charts/danswer-stack/templates/danswer-secret.yaml b/deployment/helm/templates/danswer-secret.yaml similarity index 100% rename from deployment/kubernetes/charts/danswer-stack/templates/danswer-secret.yaml rename to deployment/helm/templates/danswer-secret.yaml diff --git a/deployment/helm/templates/dynamic-pvc.yaml b/deployment/helm/templates/dynamic-pvc.yaml deleted file mode 100644 index 703b33acb..000000000 --- a/deployment/helm/templates/dynamic-pvc.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- if and .Values.persistence.dynamic.enabled (not .Values.persistence.dynamic.existingClaim)}} -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: {{ include "danswer-stack.fullname" . }}-dynamic - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} -spec: - accessModes: - {{- range .Values.persistence.dynamic.accessModes }} - - {{ . | quote }} - {{- end }} - resources: - requests: - storage: {{ .Values.persistence.dynamic.size | quote }} - {{- with .Values.persistence.dynamic.storageClassName }} - storageClassName: {{ . }} - {{- end }} -{{- end }} \ No newline at end of file diff --git a/deployment/kubernetes/charts/danswer-stack/templates/indexing-model-deployment.yaml b/deployment/helm/templates/indexing-model-deployment.yaml similarity index 100% rename from deployment/kubernetes/charts/danswer-stack/templates/indexing-model-deployment.yaml rename to deployment/helm/templates/indexing-model-deployment.yaml diff --git a/deployment/kubernetes/charts/danswer-stack/templates/indexing-model-pvc.yaml b/deployment/helm/templates/indexing-model-pvc.yaml similarity index 100% rename from deployment/kubernetes/charts/danswer-stack/templates/indexing-model-pvc.yaml rename to deployment/helm/templates/indexing-model-pvc.yaml diff --git a/deployment/kubernetes/charts/danswer-stack/templates/indexing-model-service.yaml b/deployment/helm/templates/indexing-model-service.yaml similarity index 100% rename from deployment/kubernetes/charts/danswer-stack/templates/indexing-model-service.yaml rename to deployment/helm/templates/indexing-model-service.yaml diff --git a/deployment/kubernetes/charts/danswer-stack/templates/inference-model-deployment.yaml b/deployment/helm/templates/inference-model-deployment.yaml similarity index 100% rename from deployment/kubernetes/charts/danswer-stack/templates/inference-model-deployment.yaml rename to deployment/helm/templates/inference-model-deployment.yaml diff --git a/deployment/kubernetes/charts/danswer-stack/templates/inference-model-pvc.yaml b/deployment/helm/templates/inference-model-pvc.yaml similarity index 100% rename from deployment/kubernetes/charts/danswer-stack/templates/inference-model-pvc.yaml rename to deployment/helm/templates/inference-model-pvc.yaml diff --git a/deployment/kubernetes/charts/danswer-stack/templates/inference-model-service.yaml b/deployment/helm/templates/inference-model-service.yaml similarity index 100% rename from deployment/kubernetes/charts/danswer-stack/templates/inference-model-service.yaml rename to deployment/helm/templates/inference-model-service.yaml diff --git a/deployment/helm/templates/ingress.yaml b/deployment/helm/templates/ingress.yaml deleted file mode 100644 index cfbef35dd..000000000 --- a/deployment/helm/templates/ingress.yaml +++ /dev/null @@ -1,60 +0,0 @@ -{{- if .Values.ingress.enabled -}} -{{- $fullName := include "danswer-stack.fullname" . -}} -{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} - {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} - {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} - {{- end }} -{{- end }} -{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} -apiVersion: networking.k8s.io/v1 -{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} -apiVersion: networking.k8s.io/v1beta1 -{{- else -}} -apiVersion: extensions/v1beta1 -{{- end }} -kind: Ingress -metadata: - name: {{ $fullName }} - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} - {{- with .Values.ingress.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} - ingressClassName: {{ .Values.ingress.className }} - {{- end }} - {{- if .Values.ingress.tls }} - tls: - {{- range .Values.ingress.tls }} - - hosts: - {{- range .hosts }} - - {{ . | quote }} - {{- end }} - secretName: {{ .secretName }} - {{- end }} - {{- end }} - rules: - {{- range .Values.ingress.hosts }} - - host: {{ .host | quote }} - http: - paths: - {{- range .paths }} - - path: {{ .path }} - {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} - pathType: {{ .pathType }} - {{- end }} - backend: - {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} - service: - name: {{ (list $fullName .service) | join "-" }} - port: - number: {{ .servicePort }} - {{- else }} - serviceName: {{ (list $fullName .service) | join "-" }} - servicePort: {{ .servicePort }} - {{- end }} - {{- end }} - {{- end }} -{{- end }} diff --git a/deployment/kubernetes/charts/danswer-stack/templates/nginx-conf.yaml b/deployment/helm/templates/nginx-conf.yaml similarity index 92% rename from deployment/kubernetes/charts/danswer-stack/templates/nginx-conf.yaml rename to deployment/helm/templates/nginx-conf.yaml index 383151ea1..81ecbaaa2 100644 --- a/deployment/kubernetes/charts/danswer-stack/templates/nginx-conf.yaml +++ b/deployment/helm/templates/nginx-conf.yaml @@ -5,7 +5,7 @@ metadata: data: nginx.conf: | upstream api_server { - server {{ include "danswer-stack.fullname" . }}-api:{{ .Values.api.service.port }} fail_timeout=0; + server {{ include "danswer-stack.fullname" . }}-api-service:{{ .Values.api.service.port }} fail_timeout=0; } upstream web_server { diff --git a/deployment/helm/templates/secret.yaml b/deployment/helm/templates/secret.yaml deleted file mode 100755 index 58bfba87d..000000000 --- a/deployment/helm/templates/secret.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: {{ include "danswer-stack.fullname" . }} - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} -data: -{{- range $key, $value := .Values.secrets }} - {{ $key }}: '{{ $value | b64enc }}' -{{- end }} diff --git a/deployment/helm/templates/vespa-service.yaml b/deployment/helm/templates/vespa-service.yaml deleted file mode 100644 index 01216a289..000000000 --- a/deployment/helm/templates/vespa-service.yaml +++ /dev/null @@ -1,23 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ include "danswer-stack.fullname" . }}-vespa - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} -spec: - type: ClusterIP - ports: - - name: vespa-tenant-port - protocol: TCP - port: 19070 - targetPort: 19070 - - name: vespa-tenant-port-2 - protocol: TCP - port: 19071 - targetPort: 19071 - - name: vespa-port - protocol: TCP - port: 8080 - targetPort: 8080 - selector: - {{- include "danswer-stack.selectorLabels" . | nindent 4 }} diff --git a/deployment/helm/templates/vespa-statefulset.yaml b/deployment/helm/templates/vespa-statefulset.yaml deleted file mode 100644 index 674b52bc4..000000000 --- a/deployment/helm/templates/vespa-statefulset.yaml +++ /dev/null @@ -1,83 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: {{ include "danswer-stack.fullname" . }}-vespa - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} -spec: - replicas: {{ .Values.vespa.replicaCount }} - selector: - matchLabels: - {{- include "danswer-stack.selectorLabels" . | nindent 6 }} - template: - metadata: - {{- with .Values.vespa.podAnnotations }} - annotations: - {{- toYaml . | nindent 8 }} - {{- end }} - labels: - {{- include "danswer-stack.labels" . | nindent 8 }} - {{- with .Values.vespa.podLabels }} - {{- toYaml . | nindent 8 }} - {{- end }} - spec: - {{- with .Values.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - serviceAccountName: {{ include "danswer-stack.serviceAccountName" . }} - securityContext: - {{- toYaml .Values.vespa.podSecurityContext | nindent 8 }} - containers: - - name: {{ .Chart.Name }} - securityContext: - {{- toYaml .Values.vespa.securityContext | nindent 12 }} - image: "{{ .Values.vespa.image.repository }}:{{ .Values.vespa.image.tag }}" - imagePullPolicy: {{ .Values.vespa.image.pullPolicy }} - ports: - - containerPort: 19070 - - containerPort: 19071 - - containerPort: 8081 - livenessProbe: - httpGet: - path: /state/v1/health - port: 19071 - scheme: HTTP - readinessProbe: - httpGet: - path: /state/v1/health - port: 19071 - scheme: HTTP - resources: - {{- toYaml .Values.vespa.resources | nindent 12 }} - volumeMounts: - - name: vespa-storage - mountPath: /opt/vespa/var/ - {{- with .Values.vespa.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.vespa.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.vespa.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- if .Values.persistence.vespa.enabled }} - volumeClaimTemplates: - - metadata: - name: vespa-storage - spec: - accessModes: - {{- range .Values.persistence.vespa.accessModes }} - - {{ . | quote }} - {{- end }} - resources: - requests: - storage: {{ .Values.persistence.vespa.size | quote }} - {{- with .Values.persistence.vespa.storageClassName }} - storageClassName: {{ . }} - {{- end }} - {{- end }} \ No newline at end of file diff --git a/deployment/helm/templates/webserver-deployment.yaml b/deployment/helm/templates/webserver-deployment.yaml index c679e6e0a..c3505248f 100644 --- a/deployment/helm/templates/webserver-deployment.yaml +++ b/deployment/helm/templates/webserver-deployment.yaml @@ -11,6 +11,9 @@ spec: selector: matchLabels: {{- include "danswer-stack.selectorLabels" . | nindent 6 }} + {{- if .Values.webserver.deploymentLabels }} + {{- toYaml .Values.webserver.deploymentLabels | nindent 6 }} + {{- end }} template: metadata: {{- with .Values.webserver.podAnnotations }} @@ -31,7 +34,7 @@ spec: securityContext: {{- toYaml .Values.webserver.podSecurityContext | nindent 8 }} containers: - - name: {{ .Chart.Name }} + - name: web-server securityContext: {{- toYaml .Values.webserver.securityContext | nindent 12 }} image: "{{ .Values.webserver.image.repository }}:{{ .Values.webserver.image.tag | default .Chart.AppVersion }}" @@ -40,37 +43,13 @@ spec: - name: http containerPort: {{ .Values.webserver.service.port }} protocol: TCP - livenessProbe: - httpGet: - path: / - port: http - readinessProbe: - httpGet: - path: / - port: http resources: {{- toYaml .Values.webserver.resources | nindent 12 }} envFrom: - configMapRef: - name: {{ include "danswer-stack.fullname" . }} + name: {{ .Values.config.envConfigMapName }} env: - - name: INTERNAL_URL - value: {{ (list "http://" (include "danswer-stack.fullname" .) "-api:" .Values.api.service.port | join "") | quote }} - - name: VESPA_HOST - value: {{ (list (include "danswer-stack.fullname" .) "vespa" | join "-") }} - {{- if .Values.postgresql.enabled }} - - name: POSTGRES_HOST - value: {{ (list .Release.Name "postgresql" | join "-") }} - - name: POSTGRES_DB - value: {{ .Values.postgresql.auth.database }} - - name: POSTGRES_USER - value: {{ .Values.postgresql.auth.username }} - - name: POSTGRES_PASSWORD - valueFrom: - secretKeyRef: - name: {{ (list .Release.Name "postgresql" | join "-") }} - key: password - {{- end }} + {{- include "danswer-stack.envSecrets" . | nindent 12}} {{- with .Values.webserver.volumeMounts }} volumeMounts: {{- toYaml . | nindent 12 }} @@ -79,15 +58,3 @@ spec: volumes: {{- toYaml . | nindent 8 }} {{- end }} - {{- with .Values.webserver.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.webserver.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.webserver.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} diff --git a/deployment/helm/templates/webserver-service.yaml b/deployment/helm/templates/webserver-service.yaml index 776b65f8f..3e33566fc 100644 --- a/deployment/helm/templates/webserver-service.yaml +++ b/deployment/helm/templates/webserver-service.yaml @@ -4,6 +4,9 @@ metadata: name: {{ include "danswer-stack.fullname" . }}-webserver labels: {{- include "danswer-stack.labels" . | nindent 4 }} + {{- if .Values.webserver.deploymentLabels }} + {{- toYaml .Values.webserver.deploymentLabels | nindent 4 }} + {{- end }} spec: type: {{ .Values.webserver.service.type }} ports: @@ -13,3 +16,6 @@ spec: name: http selector: {{- include "danswer-stack.selectorLabels" . | nindent 4 }} + {{- if .Values.webserver.deploymentLabels }} + {{- toYaml .Values.webserver.deploymentLabels | nindent 4 }} + {{- end }} diff --git a/deployment/helm/values.yaml b/deployment/helm/values.yaml index 8d994b55f..68a477835 100644 --- a/deployment/helm/values.yaml +++ b/deployment/helm/values.yaml @@ -6,9 +6,68 @@ 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: true + create: false # Automatically mount a ServiceAccount's API credentials? automount: true # Annotations to add to the service account @@ -17,6 +76,31 @@ serviceAccount: # 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 @@ -25,10 +109,11 @@ webserver: pullPolicy: IfNotPresent # Overrides the image tag whose default is the chart appVersion. tag: "" - + deploymentLabels: + app: web-server podAnnotations: {} - podLabels: {} - + podLabels: + app: web-server podSecurityContext: {} # fsGroup: 2000 @@ -87,10 +172,12 @@ api: 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 @@ -113,11 +200,11 @@ api: # 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: 1500m - memory: 2Gi - # limits: - # cpu: 100m - # memory: 128Mi + cpu: 500m + memory: 128Mi + limits: + cpu: 900m + memory: 512Mi autoscaling: enabled: false @@ -141,16 +228,7 @@ api: nodeSelector: {} tolerations: [] - affinity: - podAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchExpressions: - - key: scope - operator: In - values: - - danswer-backend - topologyKey: "kubernetes.io/hostname" + background: replicaCount: 1 @@ -158,11 +236,13 @@ background: repository: danswer/danswer-backend pullPolicy: IfNotPresent # Overrides the image tag whose default is the chart appVersion. - tag: "" + tag: latest podAnnotations: {} podLabels: scope: danswer-backend - + app: background + deploymentLabels: + app: background podSecurityContext: {} # fsGroup: 2000 @@ -173,18 +253,18 @@ background: # 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: 2500m - memory: 5Gi - # limits: - # cpu: 100m - # memory: 128Mi + cpu: 500m + memory: 500Mi + limits: + cpu: 900m + memory: 800Mi autoscaling: enabled: false @@ -208,25 +288,19 @@ background: nodeSelector: {} tolerations: [] - affinity: - podAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchExpressions: - - key: scope - operator: In - values: - - danswer-backend - topologyKey: "kubernetes.io/hostname" vespa: replicaCount: 1 image: - repository: vespaengine/vespa + repository: vespa pullPolicy: IfNotPresent tag: "8.277.17" podAnnotations: {} - podLabels: {} + podLabels: + app: vespa + app.kubernetes.io/instance: danswer-stack-kn + app.kubernetes.io/name: vespa + enabled: true podSecurityContext: {} # fsGroup: 2000 @@ -246,12 +320,12 @@ vespa: # 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: 2500m - memory: 5Gi - # limits: - # cpu: 100m - # memory: 128Mi + # requests: + # cpu: 1500m + # memory: 4000Mi + # # limits: + # # cpu: 100m + # # memory: 128Mi nodeSelector: {} tolerations: [] @@ -281,97 +355,99 @@ persistence: storageClassName: "" accessModes: - ReadWriteOnce - size: 1Gi - connector: - enabled: true - existingClaim: "" - storageClassName: "" - accessModes: - - ReadWriteOnce - size: 1Gi - dynamic: - enabled: true - existingClaim: "" - storageClassName: "" - accessModes: - - ReadWriteOnce - size: 1Gi + size: 5Gi -postgresql: - enabled: false - auth: - postgresPassword: "" - username: danswer - password: danswer - database: danswer +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: "" -config: - # Auth Setting, also check the secrets file - #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 +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: "openai" - #GEN_AI_MODEL_VERSION: "gpt-4" # "gpt-3.5-turbo-0125" # Use GPT-4 if you have it - #FAST_GEN_AI_MODEL_VERSION: "gpt-3.5-turbo-0125" - #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_FILTER_EXTRACTION: "" - #DISABLE_LLM_CHUNK_FILTER: "" - #DISABLE_LLM_CHOOSE_SEARCH: "" + 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_FILTER_EXTRACTION: "" + DISABLE_LLM_CHUNK_FILTER: "" + DISABLE_LLM_CHOOSE_SEARCH: "" + DISABLE_LLM_QUERY_REPHRASE: "" # Query Options - #DOC_TIME_DECAY: "" - #HYBRID_ALPHA: "" - #EDIT_KEYWORD_QUERY: "" - #MULTILINGUAL_QUERY_EXPANSION: "" - #QA_PROMPT_OVERRIDE: "" + DOC_TIME_DECAY: "" + HYBRID_ALPHA: "" + EDIT_KEYWORD_QUERY: "" + MULTILINGUAL_QUERY_EXPANSION: "" + QA_PROMPT_OVERRIDE: "" # 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_HOST: "" - #MODEL_SERVER_PORT: "" - #INDEXING_MODEL_SERVER_HOST: "" - #MIN_THREADS_ML_MODELS: "" + 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: "" - #DASK_JOB_CLIENT_ENABLED: "" - #CONTINUE_ON_CONNECTOR_FAILURE: "" - #EXPERIMENTAL_CHECKPOINTING_ENABLED: "" - #CONFLUENCE_CONNECTOR_LABELS_TO_SKIP: "" - #GONG_CONNECTOR_START_TIME: "" - #NOTION_CONNECTOR_ENABLE_RECURSIVE_PAGE_LOOKUP: "" + 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: "" + # 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_VESPA_TIMING_INFORMATION: "" + DISABLE_TELEMETRY: "" + LOG_LEVEL: "" + LOG_ALL_MODEL_INTERACTIONS: "" + LOG_VESPA_TIMING_INFORMATION: "" # Shared or Non-backend Related - #INTERNAL_URL: "http://api-server-service:80" # for web server WEB_DOMAIN: "http://localhost:3000" # for web server and api server - # Other Services - #POSTGRES_HOST: "relational-db-service" - #VESPA_HOST: "document-index-service" \ No newline at end of file + DOMAIN: "localhost" # for nginx diff --git a/deployment/kubernetes/api_server-service-deployment.yaml b/deployment/kubernetes/api_server-service-deployment.yaml index 63d86ded5..5853a3609 100644 --- a/deployment/kubernetes/api_server-service-deployment.yaml +++ b/deployment/kubernetes/api_server-service-deployment.yaml @@ -44,15 +44,3 @@ spec: envFrom: - configMapRef: name: env-configmap - volumeMounts: - - name: dynamic-storage - mountPath: /home/storage - - name: file-connector-storage - mountPath: /home/file_connector_storage - volumes: - - name: dynamic-storage - persistentVolumeClaim: - claimName: dynamic-pvc - - name: file-connector-storage - persistentVolumeClaim: - claimName: file-connector-pvc diff --git a/deployment/kubernetes/background-deployment.yaml b/deployment/kubernetes/background-deployment.yaml index 77bfc65fe..82369e6d3 100644 --- a/deployment/kubernetes/background-deployment.yaml +++ b/deployment/kubernetes/background-deployment.yaml @@ -22,15 +22,3 @@ spec: envFrom: - configMapRef: name: env-configmap - volumeMounts: - - name: dynamic-storage - mountPath: /home/storage - - name: file-connector-storage - mountPath: /home/file_connector_storage - volumes: - - name: dynamic-storage - persistentVolumeClaim: - claimName: dynamic-pvc - - name: file-connector-storage - persistentVolumeClaim: - claimName: file-connector-pvc diff --git a/deployment/kubernetes/charts/danswer-stack/.gitignore b/deployment/kubernetes/charts/danswer-stack/.gitignore deleted file mode 100644 index b442275d6..000000000 --- a/deployment/kubernetes/charts/danswer-stack/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -### Helm ### -# Chart dependencies -**/charts/*.tgz diff --git a/deployment/kubernetes/charts/danswer-stack/.helmignore b/deployment/kubernetes/charts/danswer-stack/.helmignore deleted file mode 100644 index 0e8a0eb36..000000000 --- a/deployment/kubernetes/charts/danswer-stack/.helmignore +++ /dev/null @@ -1,23 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/deployment/kubernetes/charts/danswer-stack/Chart.lock b/deployment/kubernetes/charts/danswer-stack/Chart.lock deleted file mode 100644 index 918b44f6e..000000000 --- a/deployment/kubernetes/charts/danswer-stack/Chart.lock +++ /dev/null @@ -1,12 +0,0 @@ -dependencies: -- name: postgresql - repository: https://charts.bitnami.com/bitnami - version: 14.3.1 -- name: vespa - repository: https://unoplat.github.io/vespa-helm-charts - version: 0.2.3 -- name: nginx - repository: oci://registry-1.docker.io/bitnamicharts - version: 15.14.0 -digest: sha256:ab17b5d2c3883055cb4a26bf530043521be5220c24f804e954bb428273d16ba8 -generated: "2024-05-24T16:55:30.598279-07:00" diff --git a/deployment/kubernetes/charts/danswer-stack/Chart.yaml b/deployment/kubernetes/charts/danswer-stack/Chart.yaml deleted file mode 100644 index 8026ab130..000000000 --- a/deployment/kubernetes/charts/danswer-stack/Chart.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: v2 -name: danswer-stack -description: A Helm chart for Kubernetes -home: https://www.danswer.ai/ -sources: - - "https://github.com/danswer-ai/danswer" -type: application -version: 0.2.0 -appVersion: "v0.3.72" -annotations: - category: Productivity - licenses: MIT - images: | - - name: webserver - image: docker.io/danswer/danswer-web-server:v0.3.72 - - name: background - image: docker.io/danswer/danswer-backend:v0.3.72 - - name: vespa - image: vespaengine/vespa:8.277.17 -dependencies: - - name: postgresql - version: 14.3.1 - repository: https://charts.bitnami.com/bitnami - condition: postgresql.enabled - - name: vespa - version: 0.2.3 - repository: https://unoplat.github.io/vespa-helm-charts - condition: vespa.enabled - - name: nginx - version: 15.14.0 - repository: oci://registry-1.docker.io/bitnamicharts - condition: nginx.enabled - - - \ No newline at end of file diff --git a/deployment/kubernetes/charts/danswer-stack/templates/_helpers.tpl b/deployment/kubernetes/charts/danswer-stack/templates/_helpers.tpl deleted file mode 100644 index 483a5b5e5..000000000 --- a/deployment/kubernetes/charts/danswer-stack/templates/_helpers.tpl +++ /dev/null @@ -1,83 +0,0 @@ -{{/* -Expand the name of the chart. -*/}} -{{- define "danswer-stack.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "danswer-stack.fullname" -}} -{{- if .Values.fullnameOverride }} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- $name := default .Chart.Name .Values.nameOverride }} -{{- if contains $name .Release.Name }} -{{- .Release.Name | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} -{{- end }} -{{- end }} -{{- end }} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "danswer-stack.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Common labels -*/}} -{{- define "danswer-stack.labels" -}} -helm.sh/chart: {{ include "danswer-stack.chart" . }} -{{ include "danswer-stack.selectorLabels" . }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end }} - -{{/* -Selector labels -*/}} -{{- define "danswer-stack.selectorLabels" -}} -app.kubernetes.io/name: {{ include "danswer-stack.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end }} - -{{/* -Create the name of the service account to use -*/}} -{{- define "danswer-stack.serviceAccountName" -}} -{{- if .Values.serviceAccount.create }} -{{- default (include "danswer-stack.fullname" .) .Values.serviceAccount.name }} -{{- else }} -{{- default "default" .Values.serviceAccount.name }} -{{- end }} -{{- end }} - -{{/* -Set secret name -*/}} -{{- define "danswer-stack.secretName" -}} -{{- default (default "danswer-secrets" .Values.auth.secretName) .Values.auth.existingSecret }} -{{- end }} - -{{/* -Create env vars from secrets -*/}} -{{- define "danswer-stack.envSecrets" -}} - {{- range $name, $key := .Values.auth.secretKeys }} -- name: {{ $name | upper | replace "-" "_" | quote }} - valueFrom: - secretKeyRef: - name: {{ include "danswer-stack.secretName" $ }} - key: {{ default $name $key }} - {{- end }} -{{- end }} - diff --git a/deployment/kubernetes/charts/danswer-stack/templates/api-connector-pvc.yaml b/deployment/kubernetes/charts/danswer-stack/templates/api-connector-pvc.yaml deleted file mode 100644 index 7dee7f368..000000000 --- a/deployment/kubernetes/charts/danswer-stack/templates/api-connector-pvc.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- if and .Values.persistence.api.connector.enabled}} -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: {{ include "danswer-stack.fullname" . }}-api-connector - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} -spec: - accessModes: - {{- range .Values.persistence.api.connector.accessModes }} - - {{ . | quote }} - {{- end }} - resources: - requests: - storage: {{ .Values.persistence.api.connector.size | quote }} - {{- with .Values.persistence.api.connector.storageClassName }} - storageClassName: {{ . }} - {{- end }} -{{- end }} \ No newline at end of file diff --git a/deployment/kubernetes/charts/danswer-stack/templates/api-deployment.yaml b/deployment/kubernetes/charts/danswer-stack/templates/api-deployment.yaml deleted file mode 100644 index 5823571c7..000000000 --- a/deployment/kubernetes/charts/danswer-stack/templates/api-deployment.yaml +++ /dev/null @@ -1,81 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "danswer-stack.fullname" . }}-api - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} -spec: - {{- if not .Values.api.autoscaling.enabled }} - replicas: {{ .Values.api.replicaCount }} - {{- end }} - selector: - matchLabels: - {{- include "danswer-stack.selectorLabels" . | nindent 6 }} - {{- if .Values.api.deploymentLabels }} - {{- toYaml .Values.api.deploymentLabels | nindent 6 }} - {{- end }} - template: - metadata: - {{- with .Values.api.podAnnotations }} - annotations: - {{- toYaml . | nindent 8 }} - {{- end }} - labels: - {{- include "danswer-stack.labels" . | nindent 8 }} - {{- with .Values.api.podLabels }} - {{- toYaml . | nindent 8 }} - {{- end }} - spec: - {{- with .Values.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - serviceAccountName: {{ include "danswer-stack.serviceAccountName" . }} - securityContext: - {{- toYaml .Values.api.podSecurityContext | nindent 8 }} - containers: - - name: api-server - securityContext: - {{- toYaml .Values.api.securityContext | nindent 12 }} - image: "{{ .Values.api.image.repository }}:{{ .Values.api.image.tag | default .Chart.AppVersion }}" - imagePullPolicy: {{ .Values.api.image.pullPolicy }} - command: - - "/bin/sh" - - "-c" - - | - alembic upgrade head && - echo "Starting Danswer Api Server" && - uvicorn danswer.main:app --host 0.0.0.0 --port 8080 - ports: - - name: api-server-port - containerPort: {{ .Values.api.service.port }} - protocol: TCP - resources: - {{- toYaml .Values.api.resources | nindent 12 }} - envFrom: - - configMapRef: - name: {{ .Values.config.envConfigMapName }} - env: - {{- include "danswer-stack.envSecrets" . | nindent 12}} - volumeMounts: - - name: dynamic-storage - mountPath: /home/storage - - name: file-connector-storage - mountPath: /home/file_connector_storage - {{- if .Values.api.volumeMounts }} - {{- .Values.api.volumeMounts | toYaml | nindent 12}} - {{- end }} - volumes: - - name: dynamic-storage - persistentVolumeClaim: - claimName: {{ include "danswer-stack.fullname" . }}-api-dynamic - - name: file-connector-storage - {{- if .Values.persistence.api.connector.enabled }} - persistentVolumeClaim: - claimName: {{ include "danswer-stack.fullname" . }}-api-connector - {{- else }} - emptyDir: { } - {{- end }} - {{- if .Values.api.volumes }} - {{- .Values.api.volumes | toYaml | nindent 8}} - {{- end }} diff --git a/deployment/kubernetes/charts/danswer-stack/templates/api-hpa.yaml b/deployment/kubernetes/charts/danswer-stack/templates/api-hpa.yaml deleted file mode 100644 index 378c39715..000000000 --- a/deployment/kubernetes/charts/danswer-stack/templates/api-hpa.yaml +++ /dev/null @@ -1,32 +0,0 @@ -{{- if .Values.api.autoscaling.enabled }} -apiVersion: autoscaling/v2 -kind: HorizontalPodAutoscaler -metadata: - name: {{ include "danswer-stack.fullname" . }}-api - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} -spec: - scaleTargetRef: - apiVersion: apps/v1 - kind: Deployment - name: {{ include "danswer-stack.fullname" . }} - minReplicas: {{ .Values.api.autoscaling.minReplicas }} - maxReplicas: {{ .Values.api.autoscaling.maxReplicas }} - metrics: - {{- if .Values.api.autoscaling.targetCPUUtilizationPercentage }} - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: {{ .Values.api.autoscaling.targetCPUUtilizationPercentage }} - {{- end }} - {{- if .Values.api.autoscaling.targetMemoryUtilizationPercentage }} - - type: Resource - resource: - name: memory - target: - type: Utilization - averageUtilization: {{ .Values.api.autoscaling.targetMemoryUtilizationPercentage }} - {{- end }} -{{- end }} diff --git a/deployment/kubernetes/charts/danswer-stack/templates/api-pvc.yaml b/deployment/kubernetes/charts/danswer-stack/templates/api-pvc.yaml deleted file mode 100644 index 8d155d0ca..000000000 --- a/deployment/kubernetes/charts/danswer-stack/templates/api-pvc.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- if and .Values.persistence.api.dynamic.enabled}} -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: {{ include "danswer-stack.fullname" . }}-api-dynamic - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} -spec: - accessModes: - {{- range .Values.persistence.api.dynamic.accessModes }} - - {{ . | quote }} - {{- end }} - resources: - requests: - storage: {{ .Values.persistence.api.dynamic.size | quote }} - {{- with .Values.persistence.api.dynamic.storageClassName }} - storageClassName: {{ . }} - {{- end }} -{{- end }} \ No newline at end of file diff --git a/deployment/kubernetes/charts/danswer-stack/templates/api-service.yaml b/deployment/kubernetes/charts/danswer-stack/templates/api-service.yaml deleted file mode 100644 index 820e53d10..000000000 --- a/deployment/kubernetes/charts/danswer-stack/templates/api-service.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ include "danswer-stack.fullname" . }}-api - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} - {{- if .Values.api.deploymentLabels }} - {{- toYaml .Values.api.deploymentLabels | nindent 4 }} - {{- end }} -spec: - type: {{ .Values.api.service.type }} - ports: - - port: {{ .Values.api.service.port }} - targetPort: api-server-port - protocol: TCP - name: api-server-port - selector: - {{- include "danswer-stack.selectorLabels" . | nindent 4 }} - {{- if .Values.api.deploymentLabels }} - {{- toYaml .Values.api.deploymentLabels | nindent 4 }} - {{- end }} diff --git a/deployment/kubernetes/charts/danswer-stack/templates/background-connector-pvc.yaml b/deployment/kubernetes/charts/danswer-stack/templates/background-connector-pvc.yaml deleted file mode 100644 index 3bf009057..000000000 --- a/deployment/kubernetes/charts/danswer-stack/templates/background-connector-pvc.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- if and .Values.persistence.api.connector.enabled}} -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: {{ include "danswer-stack.fullname" . }}-bg-connector - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} -spec: - accessModes: - {{- range .Values.persistence.background.connector.accessModes }} - - {{ . | quote }} - {{- end }} - resources: - requests: - storage: {{ .Values.persistence.background.connector.size | quote }} - {{- with .Values.persistence.background.connector.storageClassName }} - storageClassName: {{ . }} - {{- end }} -{{- end }} \ No newline at end of file diff --git a/deployment/kubernetes/charts/danswer-stack/templates/background-deployment.yaml b/deployment/kubernetes/charts/danswer-stack/templates/background-deployment.yaml deleted file mode 100644 index 6e3a10106..000000000 --- a/deployment/kubernetes/charts/danswer-stack/templates/background-deployment.yaml +++ /dev/null @@ -1,77 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "danswer-stack.fullname" . }}-background - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} -spec: - {{- if not .Values.background.autoscaling.enabled }} - replicas: {{ .Values.background.replicaCount }} - {{- end }} - selector: - matchLabels: - {{- include "danswer-stack.selectorLabels" . | nindent 6 }} - {{- if .Values.background.deploymentLabels }} - {{- toYaml .Values.background.deploymentLabels | nindent 6 }} - {{- end }} - template: - metadata: - {{- with .Values.background.podAnnotations }} - annotations: - {{- toYaml . | nindent 8 }} - {{- end }} - labels: - {{- include "danswer-stack.labels" . | nindent 8 }} - {{- with .Values.background.podLabels }} - {{- toYaml . | nindent 8 }} - {{- end }} - spec: - {{- with .Values.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - serviceAccountName: {{ include "danswer-stack.serviceAccountName" . }} - securityContext: - {{- toYaml .Values.background.podSecurityContext | nindent 8 }} - containers: - - name: background - securityContext: - {{- toYaml .Values.background.securityContext | nindent 12 }} - image: "{{ .Values.background.image.repository }}:{{ .Values.background.image.tag | default .Chart.AppVersion }}" - imagePullPolicy: {{ .Values.background.image.pullPolicy }} - command: ["/usr/bin/supervisord"] - resources: - {{- toYaml .Values.background.resources | nindent 12 }} - envFrom: - - configMapRef: - name: {{ .Values.config.envConfigMapName }} - env: - - name: ENABLE_MINI_CHUNK - value: "{{ .Values.background.enableMiniChunk }}" - {{- include "danswer-stack.envSecrets" . | nindent 12}} - volumeMounts: - - name: dynamic-storage - mountPath: /home/storage - - name: connector-storage - mountPath: /home/file_connector_storage - {{- if .Values.background.volumeMounts }} - {{- .Values.background.volumeMounts | toYaml | nindent 12}} - {{- end }} - volumes: - - name: dynamic-storage - {{- if .Values.persistence.background.dynamic.enabled }} - persistentVolumeClaim: - claimName: {{ include "danswer-stack.fullname" . }}-bg-dynamic - {{- else }} - emptyDir: { } - {{- end }} - - name: connector-storage - {{- if .Values.persistence.background.connector.enabled }} - persistentVolumeClaim: - claimName: {{ include "danswer-stack.fullname" . }}-bg-connector - {{- else }} - emptyDir: { } - {{- end }} - {{- if .Values.background.volumes }} - {{- .Values.background.volumes | toYaml | nindent 8}} - {{- end }} \ No newline at end of file diff --git a/deployment/kubernetes/charts/danswer-stack/templates/background-dynamic-pvc.yaml b/deployment/kubernetes/charts/danswer-stack/templates/background-dynamic-pvc.yaml deleted file mode 100644 index 8cbadd40a..000000000 --- a/deployment/kubernetes/charts/danswer-stack/templates/background-dynamic-pvc.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- if and .Values.persistence.api.dynamic.enabled}} -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: {{ include "danswer-stack.fullname" . }}-bg-dynamic - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} -spec: - accessModes: - {{- range .Values.persistence.background.dynamic.accessModes }} - - {{ . | quote }} - {{- end }} - resources: - requests: - storage: {{ .Values.persistence.background.dynamic.size | quote }} - {{- with .Values.persistence.background.dynamic.storageClassName }} - storageClassName: {{ . }} - {{- end }} -{{- end }} \ No newline at end of file diff --git a/deployment/kubernetes/charts/danswer-stack/templates/background-hpa.yaml b/deployment/kubernetes/charts/danswer-stack/templates/background-hpa.yaml deleted file mode 100644 index 009daf10f..000000000 --- a/deployment/kubernetes/charts/danswer-stack/templates/background-hpa.yaml +++ /dev/null @@ -1,32 +0,0 @@ -{{- if .Values.background.autoscaling.enabled }} -apiVersion: autoscaling/v2 -kind: HorizontalPodAutoscaler -metadata: - name: {{ include "danswer-stack.fullname" . }}-background - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} -spec: - scaleTargetRef: - apiVersion: apps/v1 - kind: Deployment - name: {{ include "danswer-stack.fullname" . }} - minReplicas: {{ .Values.background.autoscaling.minReplicas }} - maxReplicas: {{ .Values.background.autoscaling.maxReplicas }} - metrics: - {{- if .Values.background.autoscaling.targetCPUUtilizationPercentage }} - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: {{ .Values.background.autoscaling.targetCPUUtilizationPercentage }} - {{- end }} - {{- if .Values.background.autoscaling.targetMemoryUtilizationPercentage }} - - type: Resource - resource: - name: memory - target: - type: Utilization - averageUtilization: {{ .Values.background.autoscaling.targetMemoryUtilizationPercentage }} - {{- end }} -{{- end }} diff --git a/deployment/kubernetes/charts/danswer-stack/templates/configmap.yaml b/deployment/kubernetes/charts/danswer-stack/templates/configmap.yaml deleted file mode 100755 index 1bc0749dd..000000000 --- a/deployment/kubernetes/charts/danswer-stack/templates/configmap.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ .Values.config.envConfigMapName }} - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} -data: - INTERNAL_URL: "{{ include "danswer-stack.fullname" . }}-api:80" - POSTGRES_HOST: {{ .Release.Name }}-postgresql - VESPA_HOST: "document-index-service" - MODEL_SERVER_HOST: "{{ include "danswer-stack.fullname" . }}-inference-model-service" - INDEXING_MODEL_SERVER_HOST: "{{ include "danswer-stack.fullname" . }}-indexing-model-service" -{{- range $key, $value := .Values.configMap }} - {{ $key }}: "{{ $value }}" -{{- end }} \ No newline at end of file diff --git a/deployment/kubernetes/charts/danswer-stack/templates/serviceaccount.yaml b/deployment/kubernetes/charts/danswer-stack/templates/serviceaccount.yaml deleted file mode 100644 index afd351217..000000000 --- a/deployment/kubernetes/charts/danswer-stack/templates/serviceaccount.yaml +++ /dev/null @@ -1,13 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "danswer-stack.serviceAccountName" . }} - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} - {{- with .Values.serviceAccount.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -automountServiceAccountToken: {{ .Values.serviceAccount.automount }} -{{- end }} diff --git a/deployment/kubernetes/charts/danswer-stack/templates/tests/test-connection.yaml b/deployment/kubernetes/charts/danswer-stack/templates/tests/test-connection.yaml deleted file mode 100644 index 60fbd1054..000000000 --- a/deployment/kubernetes/charts/danswer-stack/templates/tests/test-connection.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: "{{ include "danswer-stack.fullname" . }}-test-connection" - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} - annotations: - "helm.sh/hook": test -spec: - containers: - - name: wget - image: busybox - command: ['wget'] - args: ['{{ include "danswer-stack.fullname" . }}:{{ .Values.webserver.service.port }}'] - restartPolicy: Never diff --git a/deployment/kubernetes/charts/danswer-stack/templates/webserver-deployment.yaml b/deployment/kubernetes/charts/danswer-stack/templates/webserver-deployment.yaml deleted file mode 100644 index c3505248f..000000000 --- a/deployment/kubernetes/charts/danswer-stack/templates/webserver-deployment.yaml +++ /dev/null @@ -1,60 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "danswer-stack.fullname" . }}-webserver - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} -spec: - {{- if not .Values.webserver.autoscaling.enabled }} - replicas: {{ .Values.webserver.replicaCount }} - {{- end }} - selector: - matchLabels: - {{- include "danswer-stack.selectorLabels" . | nindent 6 }} - {{- if .Values.webserver.deploymentLabels }} - {{- toYaml .Values.webserver.deploymentLabels | nindent 6 }} - {{- end }} - template: - metadata: - {{- with .Values.webserver.podAnnotations }} - annotations: - {{- toYaml . | nindent 8 }} - {{- end }} - labels: - {{- include "danswer-stack.labels" . | nindent 8 }} - {{- with .Values.webserver.podLabels }} - {{- toYaml . | nindent 8 }} - {{- end }} - spec: - {{- with .Values.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - serviceAccountName: {{ include "danswer-stack.serviceAccountName" . }} - securityContext: - {{- toYaml .Values.webserver.podSecurityContext | nindent 8 }} - containers: - - name: web-server - securityContext: - {{- toYaml .Values.webserver.securityContext | nindent 12 }} - image: "{{ .Values.webserver.image.repository }}:{{ .Values.webserver.image.tag | default .Chart.AppVersion }}" - imagePullPolicy: {{ .Values.webserver.image.pullPolicy }} - ports: - - name: http - containerPort: {{ .Values.webserver.service.port }} - protocol: TCP - resources: - {{- toYaml .Values.webserver.resources | nindent 12 }} - envFrom: - - configMapRef: - name: {{ .Values.config.envConfigMapName }} - env: - {{- include "danswer-stack.envSecrets" . | nindent 12}} - {{- with .Values.webserver.volumeMounts }} - volumeMounts: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.webserver.volumes }} - volumes: - {{- toYaml . | nindent 8 }} - {{- end }} diff --git a/deployment/kubernetes/charts/danswer-stack/templates/webserver-hpa.yaml b/deployment/kubernetes/charts/danswer-stack/templates/webserver-hpa.yaml deleted file mode 100644 index b46820a7f..000000000 --- a/deployment/kubernetes/charts/danswer-stack/templates/webserver-hpa.yaml +++ /dev/null @@ -1,32 +0,0 @@ -{{- if .Values.webserver.autoscaling.enabled }} -apiVersion: autoscaling/v2 -kind: HorizontalPodAutoscaler -metadata: - name: {{ include "danswer-stack.fullname" . }}-webserver - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} -spec: - scaleTargetRef: - apiVersion: apps/v1 - kind: Deployment - name: {{ include "danswer-stack.fullname" . }} - minReplicas: {{ .Values.webserver.autoscaling.minReplicas }} - maxReplicas: {{ .Values.webserver.autoscaling.maxReplicas }} - metrics: - {{- if .Values.webserver.autoscaling.targetCPUUtilizationPercentage }} - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: {{ .Values.webserver.autoscaling.targetCPUUtilizationPercentage }} - {{- end }} - {{- if .Values.webserver.autoscaling.targetMemoryUtilizationPercentage }} - - type: Resource - resource: - name: memory - target: - type: Utilization - averageUtilization: {{ .Values.webserver.autoscaling.targetMemoryUtilizationPercentage }} - {{- end }} -{{- end }} diff --git a/deployment/kubernetes/charts/danswer-stack/templates/webserver-service.yaml b/deployment/kubernetes/charts/danswer-stack/templates/webserver-service.yaml deleted file mode 100644 index 3e33566fc..000000000 --- a/deployment/kubernetes/charts/danswer-stack/templates/webserver-service.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ include "danswer-stack.fullname" . }}-webserver - labels: - {{- include "danswer-stack.labels" . | nindent 4 }} - {{- if .Values.webserver.deploymentLabels }} - {{- toYaml .Values.webserver.deploymentLabels | nindent 4 }} - {{- end }} -spec: - type: {{ .Values.webserver.service.type }} - ports: - - port: {{ .Values.webserver.service.port }} - targetPort: http - protocol: TCP - name: http - selector: - {{- include "danswer-stack.selectorLabels" . | nindent 4 }} - {{- if .Values.webserver.deploymentLabels }} - {{- toYaml .Values.webserver.deploymentLabels | nindent 4 }} - {{- end }} diff --git a/deployment/kubernetes/charts/danswer-stack/values.yaml b/deployment/kubernetes/charts/danswer-stack/values.yaml deleted file mode 100644 index 4e775704b..000000000 --- a/deployment/kubernetes/charts/danswer-stack/values.yaml +++ /dev/null @@ -1,488 +0,0 @@ -# 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 - - - -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: "" - -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" - -postgresql: - primary: - persistence: - size: 1Gi - 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: 500m - memory: 128Mi - limits: - cpu: 900m - memory: 512Mi - - 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: 500m - memory: 500Mi - limits: - cpu: 900m - memory: 800Mi - - 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-stack-kn - 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: - # 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: 1500m - # memory: 4000Mi - # # limits: - # # cpu: 100m - # # memory: 128Mi - - 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: 1Gi - connector: - enabled: true - existingClaim: "" - storageClassName: "" - accessModes: - - ReadWriteOnce - size: 1Gi - api: - connector: - enabled: true - storageClassName: "" - accessModes: - - ReadWriteOnce - size: 1Gi - dynamic: - enabled: true - storageClassName: "" - accessModes: - - ReadWriteOnce - size: 1Gi - background: - connector: - enabled: true - storageClassName: "" - accessModes: - - ReadWriteOnce - size: 1Gi - dynamic: - enabled: true - storageClassName: "" - accessModes: - - ReadWriteOnce - size: 1Gi - -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: "" - 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: "" - 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_FILTER_EXTRACTION: "" - DISABLE_LLM_CHUNK_FILTER: "" - DISABLE_LLM_CHOOSE_SEARCH: "" - DISABLE_LLM_QUERY_REPHRASE: "" - # Query Options - DOC_TIME_DECAY: "" - HYBRID_ALPHA: "" - EDIT_KEYWORD_QUERY: "" - MULTILINGUAL_QUERY_EXPANSION: "" - QA_PROMPT_OVERRIDE: "" - # 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_VESPA_TIMING_INFORMATION: "" - # Shared or Non-backend Related - WEB_DOMAIN: "http://localhost:3000" # for web server and api server - DOMAIN: "localhost" # for nginx diff --git a/deployment/kubernetes/persistent-volumes.yaml b/deployment/kubernetes/persistent-volumes.yaml deleted file mode 100644 index 8376b98e6..000000000 --- a/deployment/kubernetes/persistent-volumes.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: dynamic-pvc -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 1Gi ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: file-connector-pvc -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 1Gi