diff --git a/.github/workflows/helm-test-open-webui.yml b/.github/workflows/helm-test-open-webui.yml index e603832..62a29b4 100644 --- a/.github/workflows/helm-test-open-webui.yml +++ b/.github/workflows/helm-test-open-webui.yml @@ -30,6 +30,7 @@ jobs: helm repo add open-webui https://helm.openwebui.com/ helm repo add tika https://apache.jfrog.io/artifactory/tika/ helm repo add redis https://charts.bitnami.com/bitnami + helm repo add milvus https://zilliztech.github.io/milvus-helm - name: Build open-webui Helm dependencies run: | helm dependency build ./charts/open-webui diff --git a/charts/open-webui/Chart.lock b/charts/open-webui/Chart.lock index 382a989..f9b961d 100644 --- a/charts/open-webui/Chart.lock +++ b/charts/open-webui/Chart.lock @@ -10,6 +10,9 @@ dependencies: version: 2.9.0 - name: redis repository: https://charts.bitnami.com/bitnami - version: 20.9.0 -digest: sha256:d94d9a3b5d723c49a041c006020f0e935e9b61c1070c40310c0974386114b718 -generated: "2025-02-26T06:40:17.918812+09:00" + version: 20.10.0 +- name: milvus + repository: https://zilliztech.github.io/milvus-helm + version: 4.2.40 +digest: sha256:b9597e9cf5f89874a3c345562085ac3ba972b98ccf1b5e64425de0c17ec359f5 +generated: "2025-02-28T22:43:15.040921+09:00" diff --git a/charts/open-webui/Chart.yaml b/charts/open-webui/Chart.yaml index 4303693..e3feba1 100644 --- a/charts/open-webui/Chart.yaml +++ b/charts/open-webui/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: open-webui -version: 5.20.0 +version: 5.21.0 appVersion: 0.5.16 home: https://www.openwebui.com/ icon: >- @@ -43,3 +43,7 @@ dependencies: version: '>=20.6.2' alias: redis-cluster condition: redis-cluster.enabled + - name: milvus + repository: https://zilliztech.github.io/milvus-helm + version: '>=4.2.40' + condition: milvus.enabled diff --git a/charts/open-webui/README.md b/charts/open-webui/README.md index 7290dfa..2d3e5d0 100644 --- a/charts/open-webui/README.md +++ b/charts/open-webui/README.md @@ -1,6 +1,6 @@ # open-webui -![Version: 5.20.0](https://img.shields.io/badge/Version-5.20.0-informational?style=flat-square) ![AppVersion: 0.5.16](https://img.shields.io/badge/AppVersion-0.5.16-informational?style=flat-square) +![Version: 5.21.0](https://img.shields.io/badge/Version-5.21.0-informational?style=flat-square) ![AppVersion: 0.5.16](https://img.shields.io/badge/AppVersion-0.5.16-informational?style=flat-square) Open WebUI: A User-Friendly Web Interface for Chat Interactions 👋 @@ -37,6 +37,7 @@ helm upgrade --install open-webui open-webui/open-webui | https://charts.bitnami.com/bitnami | redis-cluster(redis) | >=20.6.2 | | https://helm.openwebui.com | pipelines | >=0.0.1 | | https://otwld.github.io/ollama-helm/ | ollama | >=0.24.0 | +| https://zilliztech.github.io/milvus-helm | milvus | >=4.2.40 | ## Values @@ -64,6 +65,11 @@ helm upgrade --install open-webui open-webui/open-webui | managedCertificate.domains[0] | string | `"chat.example.com"` | | | managedCertificate.enabled | bool | `false` | | | managedCertificate.name | string | `"mydomain-chat-cert"` | | +| milvus.db | string | `"default"` | Active Milvus database for RAG with env `MILVUS_DB` ref: https://docs.openwebui.com/getting-started/env-configuration#milvus_db | +| milvus.enabled | bool | `false` | Enable Milvus installation. Deploys a Milvus cluster/standalone with subchart 'milvus' from zilliztech ref: https://github.com/zilliztech/milvus-helm/tree/master/charts/milvus | +| milvus.fullnameOverride | string | `"open-webui-milvus"` | Milvus fullname override (recommended to be 'open-webui-milvus') - In this case, the Milvus uri will be 'http://[username:password@]open-webui-milvus:19530' | +| milvus.token | object | `{}` | Active Milvus token for RAG with env `MILVUS_TOKEN` ref: https://docs.openwebui.com/getting-started/env-configuration#milvus_token | +| milvus.uri | string | `"http://open-webui-milvus:19530"` | Active Milvus URI for RAG with env `MILVUS_URI`. If there is credentials in the uri, it will be used to connect to the Milvus server. ref: https://docs.openwebui.com/getting-started/env-configuration#milvus_uri | | nameOverride | string | `""` | | | namespaceOverride | string | `""` | | | nodeSelector | object | `{}` | Node labels for pod assignment. | @@ -87,6 +93,10 @@ helm upgrade --install open-webui open-webui/open-webui | podAnnotations | object | `{}` | | | podLabels | object | `{}` | | | podSecurityContext | object | `{}` | Configure pod security context ref: | +| rag.embeddingEngine | string | `""` | Embedding engine to use for RAG with env `RAG_EMBEDDING_ENGINE`: ""(empty), "ollama", "openai" ref: https://docs.openwebui.com/getting-started/env-configuration#rag_embedding_engine | +| rag.embeddingModel | string | `""` | Embedding model to use for RAG with env `RAG_EMBEDDING_MODEL` ref: https://docs.openwebui.com/getting-started/env-configuration#rag_embedding_model | +| rag.enabled | bool | `false` | Enable RAG ref: https://docs.openwebui.com/getting-started/env-configuration#retrieval-augmented-generation-rag | +| rag.vectorDB | string | `""` | Vector database configuration ref: https://docs.openwebui.com/getting-started/env-configuration#vector_db | | readinessProbe | object | `{}` | Probe for readiness of the Open WebUI container ref: | | redis-cluster | object | `{"auth":{"enabled":false},"enabled":false,"fullnameOverride":"open-webui-redis","replica":{"replicaCount":3}}` | Deploys a Redis cluster with subchart 'redis' from bitnami | | redis-cluster.auth | object | `{"enabled":false}` | Redis Authentication | diff --git a/charts/open-webui/charts/milvus-4.2.40.tgz b/charts/open-webui/charts/milvus-4.2.40.tgz new file mode 100644 index 0000000..eafc4d0 Binary files /dev/null and b/charts/open-webui/charts/milvus-4.2.40.tgz differ diff --git a/charts/open-webui/charts/redis-20.10.0.tgz b/charts/open-webui/charts/redis-20.10.0.tgz new file mode 100644 index 0000000..b923054 Binary files /dev/null and b/charts/open-webui/charts/redis-20.10.0.tgz differ diff --git a/charts/open-webui/charts/redis-20.9.0.tgz b/charts/open-webui/charts/redis-20.9.0.tgz deleted file mode 100644 index 92b356c..0000000 Binary files a/charts/open-webui/charts/redis-20.9.0.tgz and /dev/null differ diff --git a/charts/open-webui/templates/workload-manager.yaml b/charts/open-webui/templates/workload-manager.yaml index 4edcb8f..781ca89 100644 --- a/charts/open-webui/templates/workload-manager.yaml +++ b/charts/open-webui/templates/workload-manager.yaml @@ -141,6 +141,28 @@ spec: - name: "ENABLE_OPENAI_API" value: "False" {{- end }} + {{- if .Values.rag.enabled }} + - name: "VECTOR_DB" + value: {{ .Values.rag.vectorDB | default "croma" | quote }} + {{- if and .Values.rag.enabled .Values.rag.embeddingEngine }} + - name: "RAG_EMBEDDING_ENGINE" + value: {{ .Values.rag.embeddingEngine | quote }} + {{- end }} + {{- if and .Values.rag.enabled .Values.rag.embeddingModel }} + - name: "RAG_EMBEDDING_MODEL" + value: {{ .Values.rag.embeddingModel | quote }} + {{- end }} + {{- end }} + {{- if .Values.milvus.enabled }} + - name: "MILVUS_URI" + value: {{ .Values.milvus.uri | default "${DATA_DIR}/vector_db/milvus.db" | quote }} + - name: "MILVUS_DB" + value: {{ .Values.milvus.db | default "default" | quote }} + {{- if and .Values.milvus.enabled .Values.milvus.token }} + - name: "MILVUS_TOKEN" + value: {{ .Values.milvus.token | quote }} + {{- end }} + {{- end }} {{- if .Values.extraEnvVars }} {{- toYaml .Values.extraEnvVars | nindent 8 }} {{- end }} diff --git a/charts/open-webui/values-rag-milvus.yaml b/charts/open-webui/values-rag-milvus.yaml new file mode 100644 index 0000000..64745c3 --- /dev/null +++ b/charts/open-webui/values-rag-milvus.yaml @@ -0,0 +1,53 @@ +rag: + # -- Enable RAG + # ref: https://docs.openwebui.com/getting-started/env-configuration#retrieval-augmented-generation-rag + enabled: true + vectorDB: milvus + embeddingEngine: "" + embeddingModel: "" + +milvus: + # -- Enable Milvus installation. Deploys a Milvus cluster/standalone with subchart 'milvus' from zilliztech + # ref: https://github.com/zilliztech/milvus-helm/tree/master/charts/milvus + enabled: true + uri: "http://open-webui-milvus:19530" + db: default + token: {} + cluster: + enabled: false # This means that the Milvus runs with standalone mode + minio: + enabled: true + resources: + requests: + memory: 50Mi + persistence: + enabled: true + size: 1Gi + etcd: + enabled: true + pulsar: + enabled: false + pulsarv3: + enabled: false + kafka: + enabled: false + externalS3: + enabled: false + externalEtcd: + enabled: false + +livenessProbe: + httpGet: + path: /health + port: http +readinessProbe: + httpGet: + path: /health/db + port: http +startupProbe: + httpGet: + path: /health + port: http + initialDelaySeconds: 30 # Adjust this value according to the startup time of the application + periodSeconds: 10 # Adjust this value according to the startup time of the application + failureThreshold: 20 # Adjust this value according to the startup time of the application diff --git a/charts/open-webui/values.yaml b/charts/open-webui/values.yaml index 913baa8..3632f4f 100644 --- a/charts/open-webui/values.yaml +++ b/charts/open-webui/values.yaml @@ -106,6 +106,39 @@ redis-cluster: # -- Number of Redis replica instances replicaCount: 3 +rag: + # -- Enable RAG + # ref: https://docs.openwebui.com/getting-started/env-configuration#retrieval-augmented-generation-rag + enabled: false + # -- Vector database configuration + # ref: https://docs.openwebui.com/getting-started/env-configuration#vector_db + vectorDB: "" + # -- Embedding engine to use for RAG with env `RAG_EMBEDDING_ENGINE`: ""(empty), "ollama", "openai" + # ref: https://docs.openwebui.com/getting-started/env-configuration#rag_embedding_engine + embeddingEngine: "" + # -- Embedding model to use for RAG with env `RAG_EMBEDDING_MODEL` + # ref: https://docs.openwebui.com/getting-started/env-configuration#rag_embedding_model + embeddingModel: "" + +milvus: + # -- Enable Milvus installation. Deploys a Milvus cluster/standalone with subchart 'milvus' from zilliztech + # ref: https://github.com/zilliztech/milvus-helm/tree/master/charts/milvus + enabled: false + # -- Milvus fullname override (recommended to be 'open-webui-milvus') + # - In this case, the Milvus uri will be 'http://[username:password@]open-webui-milvus:19530' + fullnameOverride: open-webui-milvus + # -- Active Milvus URI for RAG with env `MILVUS_URI`. If there is credentials in the uri, it will be used to connect to the Milvus server. + # ref: https://docs.openwebui.com/getting-started/env-configuration#milvus_uri + uri: "http://open-webui-milvus:19530" + # -- Example `milvus.uri` with credentials (Not recommended for production. Use `env` with `secretKeyRef` instead) + # uri: "http://username:password@open-webui-milvus:19530" + # -- Active Milvus database for RAG with env `MILVUS_DB` + # ref: https://docs.openwebui.com/getting-started/env-configuration#milvus_db + db: default + # -- Active Milvus token for RAG with env `MILVUS_TOKEN` + # ref: https://docs.openwebui.com/getting-started/env-configuration#milvus_token + token: {} + # -- Value of cluster domain clusterDomain: cluster.local