Skip to content

Commit

Permalink
Merge pull request #28 from 0xThresh/feat-owui-0.2.4
Browse files Browse the repository at this point in the history
  • Loading branch information
0xThresh authored Jun 5, 2024
2 parents a9cd4a9 + f8f78c5 commit bf5c257
Show file tree
Hide file tree
Showing 15 changed files with 213 additions and 26 deletions.
1 change: 1 addition & 0 deletions .github/workflows/helm-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ jobs:
- name: Add Dependency Repos
run: |
helm repo add ollama https://otwld.github.io/ollama-helm/
helm repo add open-webui https://helm.openwebui.com/
- name: Run chart-releaser
uses: helm/[email protected]
Expand Down
24 changes: 24 additions & 0 deletions charts/open-webui/.helmignore
Original file line number Diff line number Diff line change
@@ -1 +1,25 @@
# 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/
.drone.yml
*.tmproj
.vscode/
values-minikube.yaml
9 changes: 6 additions & 3 deletions charts/open-webui/Chart.lock
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
dependencies:
- name: ollama
repository: https://otwld.github.io/ollama-helm/
version: 0.25.0
digest: sha256:3de991d818940927d9b459afba26af05ef24082dd3f123f462c72f7682665946
generated: "2024-05-09T08:11:03.438421-07:00"
version: 0.33.0
- name: pipelines
repository: https://helm.openwebui.com
version: 0.0.1
digest: sha256:1138e9fa48135fabda643adc69845284d4ba08745caeb958a646f10c7a6f9fe1
generated: "2024-06-04T21:28:16.737572-06:00"
11 changes: 9 additions & 2 deletions charts/open-webui/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
apiVersion: v2
name: open-webui
version: 2.1.0
appVersion: "latest"
version: 3.0.0
appVersion: "0.2.4"

home: https://www.openwebui.com/
icon: https://raw.githubusercontent.com/open-webui/open-webui/main/static/favicon.png
Expand Down Expand Up @@ -29,3 +29,10 @@ dependencies:
- child: service
parent: ollama.service
condition: ollama.enabled
- name: pipelines
repository: https://helm.openwebui.com
version: ">=0.0.1"
import-values:
- child: service
parent: pipelines.service
condition: pipelines.enabled
23 changes: 10 additions & 13 deletions charts/open-webui/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# open-webui

![Version: 2.0.2](https://img.shields.io/badge/Version-2.0.2-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square)
![Version: 3.0.0](https://img.shields.io/badge/Version-3.0.0-informational?style=flat-square) ![AppVersion: 0.2.2](https://img.shields.io/badge/AppVersion-0.2.2-informational?style=flat-square)

Open WebUI: A User-Friendly Web Interface for Chat Interactions 👋

Expand Down Expand Up @@ -32,6 +32,7 @@ helm upgrade --install open-webui open-webui/open-webui

| Repository | Name | Version |
|------------|------|---------|
| https://helm.openwebui.com | pipelines | >=0.0.1 |
| https://otwld.github.io/ollama-helm/ | ollama | >=0.24.0 |

## Values
Expand All @@ -41,10 +42,8 @@ helm upgrade --install open-webui open-webui/open-webui
| affinity | object | `{}` | Affinity for pod assignment |
| annotations | object | `{}` | |
| clusterDomain | string | `"cluster.local"` | Value of cluster domain |
| extraEnvVars | list | `[]` | Additional environments variables on the output Deployment definition. |
| image.pullPolicy | string | `"Always"` | |
| image.repository | string | `"ghcr.io/open-webui/open-webui"` | |
| image.tag | string | `""` | |
| extraEnvVars | string | `nil` | Additional environments variables on the output Deployment definition. Most up-to-date environment variables can be found here: https://docs.openwebui.com/getting-started/env-configuration/ |
| image | object | `{"pullPolicy":"Always","repository":"ghcr.io/open-webui/open-webui","tag":"latest"}` | Open WebUI image tags can be found here: https://github.com/open-webui/open-webui/pkgs/container/open-webui |
| ingress.annotations | object | `{}` | Use appropriate annotations for your Ingress controller, e.g., for NGINX: nginx.ingress.kubernetes.io/rewrite-target: / |
| ingress.class | string | `""` | |
| ingress.enabled | bool | `false` | |
Expand All @@ -54,24 +53,22 @@ helm upgrade --install open-webui open-webui/open-webui
| nameOverride | string | `""` | |
| nodeSelector | object | `{}` | Node labels for pod assignment. |
| ollama.enabled | bool | `true` | Automatically install Ollama Helm chart from https://otwld.github.io/ollama-helm/. Use [Helm Values](https://github.com/otwld/ollama-helm/#helm-values) to configure |
| ollama.fullnameOverride | string | `"open-webui-ollama"` | If enabling embedded Ollama, update fullnameOverride to your desired Ollama name value, or else it will use the default ollama.name value from the Ollama chart |
| ollamaUrls | list | `[]` | A list of Ollama API endpoints. These can be added in lieu of automatically installing the Ollama Helm chart, or in addition to it. |
| openaiBaseApiUrl | string | `""` | OpenAI base API URL to use. Defaults to the Pipelines service endpoint when Pipelines are enabled, and "https://api.openai.com/v1" if Pipelines are not enabled and this value is blank |
| persistence.accessModes | list | `["ReadWriteOnce"]` | If using multiple replicas, you must update accessModes to ReadWriteMany |
| persistence.annotations | object | `{}` | |
| persistence.enabled | bool | `true` | |
| persistence.existingClaim | string | `""` | |
| persistence.existingClaim | string | `""` | Use existingClaim if you want to re-use an existing Open WebUI PVC instead of creating a new one |
| persistence.selector | object | `{}` | |
| persistence.size | string | `"2Gi"` | |
| persistence.storageClass | string | `""` | |
| pipelines.enabled | bool | `true` | Automatically install Pipelines chart to extend Open WebUI functionality using Pipelines: https://github.com/open-webui/pipelines |
| pipelines.extraEnvVars[0] | object | `{"name":"PIPELINES_API_KEY","value":"0p3n-w3bu!"}` | This is a default password that can and should be updated on your production deployment, and should be stored in a K8s secret |
| podAnnotations | object | `{}` | |
| replicaCount | int | `1` | |
| resources | object | `{}` | |
| service.annotations | object | `{}` | |
| service.containerPort | int | `8080` | |
| service.labels | object | `{}` | |
| service.loadBalancerClass | string | `""` | |
| service.nodePort | string | `""` | |
| service.port | int | `80` | |
| service.type | string | `"ClusterIP"` | |
| service | object | `{"annotations":{},"containerPort":8080,"labels":{},"loadBalancerClass":"","nodePort":"","port":80,"type":"ClusterIP"}` | Service values to expose Open WebUI pods to cluster |
| tolerations | list | `[]` | Tolerations for pod assignment |

----------------------------------------------
Expand Down
Binary file removed charts/open-webui/charts/ollama-0.25.0.tgz
Binary file not shown.
Binary file added charts/open-webui/charts/ollama-0.33.0.tgz
Binary file not shown.
Binary file added charts/open-webui/charts/pipelines-0.0.1.tgz
Binary file not shown.
80 changes: 78 additions & 2 deletions charts/open-webui/templates/_helpers.tpl
Original file line number Diff line number Diff line change
@@ -1,24 +1,52 @@
{{/*
Set the name of the Open WebUI resources
*/}}
{{- define "open-webui.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end -}}

{{/*
Set the name of the integrated Ollama resources
*/}}
{{- define "ollama.name" -}}
ollama
open-webui-ollama
{{- end -}}

{{/*
Set the name of the integrated Pipelines resources
*/}}
{{- define "pipelines.name" -}}
open-webui-pipelines
{{- end -}}

{{/*
Constructs a semicolon-separated string of Ollama API endpoint URLs from the ollamaUrls list
defined in the values.yaml file
*/}}
{{- define "ollamaUrls" -}}
{{- if .Values.ollamaUrls }}
{{- join ";" .Values.ollamaUrls | trimSuffix "/" }}
{{- end }}
{{- end }}

{{/*
Generates the URL for accessing the Ollama service within the Kubernetes cluster when the
ollama.enabled value is set to true, which means that the Ollama Helm chart is being installed
as a dependency of the Open WebUI chart
*/}}
{{- define "ollamaLocalUrl" -}}
{{- if .Values.ollama.enabled -}}
{{- $clusterDomain := .Values.clusterDomain }}
{{- $ollamaServicePort := .Values.ollama.service.port | toString }}
{{- printf "http://open-webui-%s.%s.svc.%s:%s" (include "ollama.name" .) (.Release.Namespace) $clusterDomain $ollamaServicePort }}
{{- printf "http://%s.%s.svc.%s:%s" (default .Values.ollama.name .Values.ollama.fullnameOverride) (.Release.Namespace) $clusterDomain $ollamaServicePort }}
{{- end }}
{{- end }}

{{/*
Constructs a string containing the URLs of the Ollama API endpoints that the Open WebUI
application should use based on which values are set for Ollama/ whether the Ollama
subchart is in use
*/}}
{{- define "ollamaBaseUrls" -}}
{{- $ollamaLocalUrl := include "ollamaLocalUrl" . }}
{{- $ollamaUrls := include "ollamaUrls" . }}
Expand All @@ -31,10 +59,16 @@ ollama
{{- end }}
{{- end }}

{{/*
Create the chart name and version for the chart label
*/}}
{{- define "chart.name" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}

{{/*
Create the base labels to include on chart resources
*/}}
{{- define "base.labels" -}}
helm.sh/chart: {{ include "chart.name" . }}
{{- if .Chart.AppVersion }}
Expand All @@ -43,26 +77,68 @@ app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}

{{/*
Create selector labels to include on all resources
*/}}
{{- define "base.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}

{{/*
Create selector labels to include on all Open WebUI resources
*/}}
{{- define "open-webui.selectorLabels" -}}
{{ include "base.selectorLabels" . }}
app.kubernetes.io/component: {{ .Chart.Name }}
{{- end }}

{{/*
Create labels to include on chart all Open WebUI resources
*/}}
{{- define "open-webui.labels" -}}
{{ include "base.labels" . }}
{{ include "open-webui.selectorLabels" . }}
{{- end }}

{{/*
Create selector labels to include on chart all Ollama resources
*/}}
{{- define "ollama.selectorLabels" -}}
{{ include "base.selectorLabels" . }}
app.kubernetes.io/component: {{ include "ollama.name" . }}
{{- end }}

{{/*
Create labels to include on chart all Ollama resources
*/}}
{{- define "ollama.labels" -}}
{{ include "base.labels" . }}
{{ include "ollama.selectorLabels" . }}
{{- end }}

{{/*
Create selector labels to include on chart all Pipelines resources
*/}}
{{- define "pipelines.selectorLabels" -}}
{{ include "base.selectorLabels" . }}
app.kubernetes.io/component: {{ include "pipelines.name" . }}
{{- end }}

{{/*
Create labels to include on chart all Pipelines resources
*/}}
{{- define "pipelines.labels" -}}
{{ include "base.labels" . }}
{{ include "pipelines.selectorLabels" . }}
{{- end }}

{{/*
Create the service endpoint to use for Pipelines if the subchart is used
*/}}
{{- define "pipelines.serviceEndpoint" -}}
{{- if .Values.pipelines.enabled -}}
{{- $clusterDomain := .Values.clusterDomain }}
{{- $pipelinesServicePort := .Values.pipelines.service.port | toString }}
{{- printf "http://%s.%s.svc.%s:%s" (include "pipelines.name" .) (.Release.Namespace) $clusterDomain $pipelinesServicePort }}
{{- end }}
{{- end }}
10 changes: 10 additions & 0 deletions charts/open-webui/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,16 @@ spec:
env:
- name: OLLAMA_BASE_URLS
value: {{ include "ollamaBaseUrls" . | quote }}
{{ if .Values.pipelines.enabled }}
- name: OPENAI_API_BASE_URL
value: {{ include "pipelines.serviceEndpoint" . }}
{{ else if .Values.openaiBaseApiUrl }}
- name: OPENAI_API_BASE_URL
value: {{ .Values.openaiBaseApiUrl }}
{{ else }}
- name: OPENAI_API_BASE_URL
value: "https://api.openai.com/v1"
{{ end }}
{{- if .Values.extraEnvVars }}
{{- toYaml .Values.extraEnvVars | nindent 8 }}
{{- end }}
Expand Down
26 changes: 23 additions & 3 deletions charts/open-webui/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ nameOverride: ""
ollama:
# -- Automatically install Ollama Helm chart from https://otwld.github.io/ollama-helm/. Use [Helm Values](https://github.com/otwld/ollama-helm/#helm-values) to configure
enabled: true
# Example Ollama configuration with nvidia GPU enabled, automatically downloading a model, and deploying a PVC for model persistence
# -- If enabling embedded Ollama, update fullnameOverride to your desired Ollama name value, or else it will use the default ollama.name value from the Ollama chart
fullnameOverride: "open-webui-ollama"
# -- Example Ollama configuration with nvidia GPU enabled, automatically downloading a model, and deploying a PVC for model persistence
# ollama:
# gpu:
# enabled: true
Expand All @@ -15,6 +17,18 @@ ollama:
# persistentVolume:
# enabled: true

pipelines:
# -- Automatically install Pipelines chart to extend Open WebUI functionality using Pipelines: https://github.com/open-webui/pipelines
enabled: true
extraEnvVars:
# -- This is a default password that can and should be updated on your production deployment, and should be stored in a K8s secret
- name: PIPELINES_API_KEY
value: "0p3n-w3bu!"
# valueFrom:
# secretKeyRef:
# name: pipelines-api-key
# key: api-key

# -- A list of Ollama API endpoints. These can be added in lieu of automatically installing the Ollama Helm chart, or in addition to it.
ollamaUrls: []

Expand All @@ -24,9 +38,10 @@ clusterDomain: cluster.local
annotations: {}
podAnnotations: {}
replicaCount: 1
# -- Open WebUI image tags can be found here: https://github.com/open-webui/open-webui/pkgs/container/open-webui
image:
repository: ghcr.io/open-webui/open-webui
tag: ""
tag: "latest"
pullPolicy: Always
resources: {}
ingress:
Expand All @@ -41,6 +56,7 @@ ingress:
persistence:
enabled: true
size: 2Gi
# -- Use existingClaim if you want to re-use an existing Open WebUI PVC instead of creating a new one
existingClaim: ""
# -- If using multiple replicas, you must update accessModes to ReadWriteMany
accessModes:
Expand All @@ -58,6 +74,7 @@ tolerations: []
# -- Affinity for pod assignment
affinity: {}

# -- Service values to expose Open WebUI pods to cluster
service:
type: ClusterIP
annotations: {}
Expand All @@ -67,7 +84,10 @@ service:
labels: {}
loadBalancerClass: ""

# -- Additional environments variables on the output Deployment definition.
# -- OpenAI base API URL to use. Defaults to the Pipelines service endpoint when Pipelines are enabled, and "https://api.openai.com/v1" if Pipelines are not enabled and this value is blank
openaiBaseApiUrl: ""

# -- Additional environments variables on the output Deployment definition. Most up-to-date environment variables can be found here: https://docs.openwebui.com/getting-started/env-configuration/
extraEnvVars:
# - name: OPENAI_API_KEY
# valueFrom:
Expand Down
24 changes: 24 additions & 0 deletions charts/pipelines/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# 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/
.drone.yml
*.tmproj
.vscode/
2 changes: 1 addition & 1 deletion charts/pipelines/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
apiVersion: v2
name: pipelines
version: 0.0.1
version: 0.0.2
appVersion: "alpha"

home: https://github.com/open-webui/pipelines
Expand Down
2 changes: 1 addition & 1 deletion charts/pipelines/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# pipelines

![Version: 0.0.1](https://img.shields.io/badge/Version-0.0.1-informational?style=flat-square) ![AppVersion: alpha](https://img.shields.io/badge/AppVersion-alpha-informational?style=flat-square)
![Version: 0.0.2](https://img.shields.io/badge/Version-0.0.2-informational?style=flat-square) ![AppVersion: alpha](https://img.shields.io/badge/AppVersion-alpha-informational?style=flat-square)

Pipelines: UI-Agnostic OpenAI API Plugin Framework

Expand Down
Loading

0 comments on commit bf5c257

Please sign in to comment.