mirror of
https://github.com/open-webui/helm-charts
synced 2025-06-26 18:16:14 +00:00
Compare commits
119 Commits
open-webui
...
v3.7.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
242bfa2827 | ||
|
|
7514e5a5d7 | ||
|
|
cba16a4f3f | ||
|
|
bc32f167f2 | ||
|
|
c70affc35c | ||
|
|
6a61802dab | ||
|
|
54961fc38b | ||
|
|
7fb97e6a35 | ||
|
|
008268d3fd | ||
|
|
4637db000e | ||
|
|
b0debd2d81 | ||
|
|
5ebf1e3593 | ||
|
|
125f67ec5c | ||
|
|
d919ea1b42 | ||
|
|
c30ab597bb | ||
|
|
941176514c | ||
|
|
7c753cf117 | ||
|
|
7605066b8e | ||
|
|
dfe63ed352 | ||
|
|
22d99dd349 | ||
|
|
b07888478a | ||
|
|
f93c4949c9 | ||
|
|
645edec699 | ||
|
|
5cc0d44aba | ||
|
|
8672c78ac5 | ||
|
|
5e3237a972 | ||
|
|
4f1fa4718e | ||
|
|
119fdd2f2d | ||
|
|
a16cdd4477 | ||
|
|
4ee3936555 | ||
|
|
09184d93d9 | ||
|
|
bb0f668201 | ||
|
|
6ebb3da9d2 | ||
|
|
6c7b42517d | ||
|
|
2062a5d4e6 | ||
|
|
63055b910d | ||
|
|
a3c255d9c3 | ||
|
|
3a339ccb8d | ||
|
|
056de60090 | ||
|
|
07fa518798 | ||
|
|
5b87076f92 | ||
|
|
f8a5fdfb61 | ||
|
|
338ecfd26c | ||
|
|
4d7ea6759e | ||
|
|
39bc3aaf4c | ||
|
|
0b637b28d6 | ||
|
|
450afb1c4d | ||
|
|
d234e766b2 | ||
|
|
e1b6ba25d3 | ||
|
|
35ce1ec7fc | ||
|
|
d72e66c82f | ||
|
|
dbacb4e63e | ||
|
|
4cd3137680 | ||
|
|
179bc9c08c | ||
|
|
73673db0c6 | ||
|
|
6475d5af98 | ||
|
|
20af7b89cf | ||
|
|
d0db4c5ca3 | ||
|
|
bda4bcfd48 | ||
|
|
13980b1fcc | ||
|
|
2f21841a00 | ||
|
|
7b564ed2f0 | ||
|
|
400052429b | ||
|
|
abe5ce38bc | ||
|
|
b4080434ea | ||
|
|
ad063a989d | ||
|
|
19527a43c7 | ||
|
|
93d318ce41 | ||
|
|
723c33e3f2 | ||
|
|
17e1e7d61a | ||
|
|
7f7aa04351 | ||
|
|
80be808ed1 | ||
|
|
4256a677f2 | ||
|
|
5c438db555 | ||
|
|
3003028420 | ||
|
|
c486164e97 | ||
|
|
a0ae9b172e | ||
|
|
d492339dd7 | ||
|
|
a1e073f557 | ||
|
|
3cf4514166 | ||
|
|
0b5fb66ac2 | ||
|
|
961bbcda2c | ||
|
|
803c99e135 | ||
|
|
de2f698c72 | ||
|
|
7273974943 | ||
|
|
b7b6bc2022 | ||
|
|
dd918f0216 | ||
|
|
62e5d9c95b | ||
|
|
587b93ecd4 | ||
|
|
309e0aa30c | ||
|
|
deaaef0147 | ||
|
|
881fe7140d | ||
|
|
2cb251504d | ||
|
|
5a54d7f998 | ||
|
|
d7a271013f | ||
|
|
95a7a220cc | ||
|
|
667cc5475a | ||
|
|
2ddceb06e7 | ||
|
|
4ced350783 | ||
|
|
72dad958af | ||
|
|
bb2bd2fdfe | ||
|
|
4ca08e3c9b | ||
|
|
3e1493fd69 | ||
|
|
1c5e7f0ca8 | ||
|
|
bf5c25749d | ||
|
|
f8f78c591f | ||
|
|
a3510edc50 | ||
|
|
fd33ad550f | ||
|
|
a9cd4a9494 | ||
|
|
d9c993a7db | ||
|
|
29e38c8d50 | ||
|
|
c989f5248d | ||
|
|
d6aa262b7f | ||
|
|
2c51864489 | ||
|
|
65c53ffa0e | ||
|
|
4bd88a241e | ||
|
|
cbdc9bf8c7 | ||
|
|
3ee67ea29f | ||
|
|
d0e695b57c |
61
.github/workflows/helm-release.yml
vendored
61
.github/workflows/helm-release.yml
vendored
@@ -5,12 +5,48 @@ on:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- "charts/*/Chart.yaml"
|
||||
- "charts/**"
|
||||
|
||||
jobs:
|
||||
semantic-release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# Checkout repo
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 'lts/*'
|
||||
- name: Install dependencies
|
||||
run: npm install
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: npx semantic-release
|
||||
|
||||
- name: Install yq
|
||||
run: |
|
||||
wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O yq &&\
|
||||
chmod +x yq
|
||||
|
||||
- name: Get version
|
||||
id: get_version
|
||||
run: |
|
||||
echo "VERSION=$(cat charts/open-webui/Chart.yaml | ./yq -r '.version')" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Commit Chart.yaml
|
||||
uses: stefanzweifel/git-auto-commit-action@v4
|
||||
with:
|
||||
commit_message: 'chore(release) bump version to ${{ steps.get_version.outputs.VERSION }}'
|
||||
file_pattern: 'charts/open-webui/Chart.yaml'
|
||||
|
||||
release:
|
||||
needs: semantic-release
|
||||
permissions:
|
||||
contents: write
|
||||
packages: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
@@ -23,14 +59,11 @@ jobs:
|
||||
git config user.name "$GITHUB_ACTOR"
|
||||
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
||||
|
||||
- name: Install Helm
|
||||
uses: azure/setup-helm@v4
|
||||
env:
|
||||
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
- name: Add Dependency Repos
|
||||
run: |
|
||||
helm repo add ollama https://otwld.github.io/ollama-helm/
|
||||
helm repo add open-webui https://helm.openwebui.com/
|
||||
helm repo add tika https://apache.jfrog.io/artifactory/tika/
|
||||
|
||||
- name: Run chart-releaser
|
||||
uses: helm/chart-releaser-action@v1.6.0
|
||||
@@ -40,3 +73,19 @@ jobs:
|
||||
charts_dir: charts/
|
||||
env:
|
||||
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
run: |
|
||||
echo "${GHCR_REGISTRY_PASSWORD}" | helm registry login ghcr.io --username ${{ github.actor }} --password-stdin
|
||||
env:
|
||||
GHCR_REGISTRY_PASSWORD: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
- name: Push Charts to ghcr.io
|
||||
run: |
|
||||
for pkg in .cr-release-packages/*; do
|
||||
if [ -z "${pkg:-}" ]; then
|
||||
echo "No charts to release"
|
||||
break
|
||||
fi
|
||||
helm push "${pkg}" oci://ghcr.io/${{ github.repository }}
|
||||
done
|
||||
|
||||
14
.releaserc
Normal file
14
.releaserc
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"name": "helm-charts",
|
||||
"branches": ["main"],
|
||||
"plugins": [
|
||||
[
|
||||
"semantic-release-helm",
|
||||
{
|
||||
chartPath: './charts/open-webui',
|
||||
crPublish: false,
|
||||
onlyUpdateVersion: true
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
37
CONTRIBUTING.md
Normal file
37
CONTRIBUTING.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# Contributing to the Open WebUI Helm Charts
|
||||
|
||||
## How to Contribute
|
||||
|
||||
> [!WARNING]
|
||||
> There is currently a bug in the Helm Chart Releaser Github Action that prevents you from deploying more than one chart on a single run. The best workaround for now is to ensure that pushes to `main` only include changes to a single chart. If you're contributing to more than one chart, please do it in separate PRs until the upstream issue is fixed, or until we can fork and fix the action ourselves.
|
||||
|
||||
1. **Fork the repository** and create your branch from `main`.
|
||||
2. **Make your changes** and ensure they follow the guidelines below.
|
||||
3. **Test your changes** locally to ensure everything works as expected. This should include deploying your updates to a live Kubernetes cluster (whether local or remote).
|
||||
4. **Run helm-docs** to ensure that the README is updated with the latest changes.
|
||||
5. **Commit your changes** using a descriptive commit message that follows the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification.
|
||||
6. **Push your changes** to your forked repository.
|
||||
7. **Create a Pull Request** and provide a detailed description of your changes. Please consider dropping us your redacted `values.yaml` file used during your testing in the PR so we can make sure we see consistent results.
|
||||
|
||||
## Guidelines
|
||||
|
||||
- **Semantic Versioning**: This repository follows [Semantic Versioning](https://semver.org/) for versioning the Helm Charts. When making changes, please ensure that you update the version in the `Chart.yaml` file according to the following rules:
|
||||
- `MAJOR` version increment for incompatible chart changes
|
||||
- `MINOR` version increment for backwards-compatible functionality additions
|
||||
- `PATCH` version increment for backwards-compatible bug fixes
|
||||
|
||||
- **Chart.yaml Updates**: When submitting a Pull Request, ensure that you have updated the `Chart.yaml` file with the appropriate version increment and a brief description of the changes in the `appVersion` field.
|
||||
|
||||
- **Code Style**: Follow the existing code style and conventions used in the repository.
|
||||
|
||||
- **Documentation**: If your changes require documentation updates, please include them in your Pull Request.
|
||||
|
||||
- **Testing**: Before submitting your Pull Request, ensure that your changes work as expected by testing them locally. This should include deploying your updates to a live Kubernetes cluster (whether local or remote).
|
||||
|
||||
- **Issues**: If you find any issues or have suggestions for improvements, please create a new issue in the repository before working on a Pull Request.
|
||||
|
||||
## Getting Help
|
||||
|
||||
If you need any help or have questions about contributing, feel free to reach out to the maintainers of the repository.
|
||||
|
||||
Thank you for your contributions!
|
||||
@@ -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
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
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.65.0
|
||||
- name: pipelines
|
||||
repository: https://helm.openwebui.com
|
||||
version: 0.0.4
|
||||
- name: tika
|
||||
repository: https://apache.jfrog.io/artifactory/tika
|
||||
version: 2.9.0
|
||||
digest: sha256:c9405bba567364144f432f81c1c7c77336002eb8d6d07ae4fc5362cf2e3471b6
|
||||
generated: "2024-11-10T14:18:47.252585-07:00"
|
||||
|
||||
@@ -1,32 +1,38 @@
|
||||
apiVersion: v2
|
||||
name: open-webui
|
||||
version: 2.0.2
|
||||
appVersion: "latest"
|
||||
|
||||
version: 1.0.0
|
||||
appVersion: 0.3.36
|
||||
home: https://www.openwebui.com/
|
||||
icon: https://raw.githubusercontent.com/open-webui/open-webui/main/static/favicon.png
|
||||
|
||||
description: "Open WebUI: A User-Friendly Web Interface for Chat Interactions 👋"
|
||||
icon: >-
|
||||
https://raw.githubusercontent.com/open-webui/open-webui/main/static/favicon.png
|
||||
description: 'Open WebUI: A User-Friendly Web Interface for Chat Interactions 👋'
|
||||
keywords:
|
||||
- llm
|
||||
- chat
|
||||
- web-ui
|
||||
|
||||
- llm
|
||||
- chat
|
||||
- web-ui
|
||||
sources:
|
||||
- https://github.com/open-webui/helm-charts
|
||||
- https://github.com/open-webui/open-webui/pkgs/container/open-webui
|
||||
- https://github.com/otwld/ollama-helm/
|
||||
- https://hub.docker.com/r/ollama/ollama
|
||||
|
||||
- https://github.com/open-webui/helm-charts
|
||||
- https://github.com/open-webui/open-webui/pkgs/container/open-webui
|
||||
- https://github.com/otwld/ollama-helm/
|
||||
- https://hub.docker.com/r/ollama/ollama
|
||||
annotations:
|
||||
licenses: MIT
|
||||
|
||||
dependencies:
|
||||
- name: ollama
|
||||
repository: https://otwld.github.io/ollama-helm/
|
||||
version: ">=0.24.0"
|
||||
version: '>=0.24.0'
|
||||
import-values:
|
||||
|
||||
- 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
|
||||
- name: tika
|
||||
repository: https://apache.jfrog.io/artifactory/tika
|
||||
version: '>=2.9.0'
|
||||
condition: tika.enabled
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# open-webui
|
||||
|
||||
 
|
||||
 
|
||||
|
||||
Open WebUI: A User-Friendly Web Interface for Chat Interactions 👋
|
||||
|
||||
@@ -32,6 +32,8 @@ helm upgrade --install open-webui open-webui/open-webui
|
||||
|
||||
| Repository | Name | Version |
|
||||
|------------|------|---------|
|
||||
| https://apache.jfrog.io/artifactory/tika | tika | >=2.9.0 |
|
||||
| https://helm.openwebui.com | pipelines | >=0.0.1 |
|
||||
| https://otwld.github.io/ollama-helm/ | ollama | >=0.24.0 |
|
||||
|
||||
## Values
|
||||
@@ -41,10 +43,11 @@ 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 | `""` | |
|
||||
| containerSecurityContext | object | `{}` | Configure container security context ref: <https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-containe> |
|
||||
| extraEnvVars | list | `[{"name":"OPENAI_API_KEY","value":"0p3n-w3bu!"}]` | Env vars added to the Open WebUI deployment. Most up-to-date environment variables can be found here: https://docs.openwebui.com/getting-started/env-configuration/ |
|
||||
| extraEnvVars[0] | object | `{"name":"OPENAI_API_KEY","value":"0p3n-w3bu!"}` | Default API key value for Pipelines. Should be updated in a production deployment, or be changed to the required API key if not using Pipelines |
|
||||
| image | object | `{"pullPolicy":"IfNotPresent","repository":"ghcr.io/open-webui/open-webui","tag":""}` | Open WebUI image tags can be found here: https://github.com/open-webui/open-webui/pkgs/container/open-webui |
|
||||
| imagePullSecrets | list | `[]` | Configure imagePullSecrets to use private registry ref: <https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry> |
|
||||
| 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` | |
|
||||
@@ -54,25 +57,29 @@ 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 | `""` | |
|
||||
| persistence.subPath | string | `""` | Subdirectory of Open WebUI PVC to mount. Useful if root directory is not empty. |
|
||||
| pipelines.enabled | bool | `true` | Automatically install Pipelines chart to extend Open WebUI functionality using Pipelines: https://github.com/open-webui/pipelines |
|
||||
| pipelines.extraEnvVars | list | `[]` | This section can be used to pass required environment variables to your pipelines (e.g. Langfuse hostname) |
|
||||
| podAnnotations | object | `{}` | |
|
||||
| podSecurityContext | object | `{}` | Configure pod security context ref: <https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-containe> |
|
||||
| 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 |
|
||||
| tika.enabled | bool | `false` | Automatically install Apache Tika to extend Open WebUI |
|
||||
| tolerations | list | `[]` | Tolerations for pod assignment |
|
||||
| topologySpreadConstraints | list | `[]` | Topology Spread Constraints for pod assignment |
|
||||
| volumeMounts | object | `{"container":[],"initContainer":[]}` | Configure container volume mounts ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-volume-storage/> |
|
||||
| volumes | list | `[]` | Configure pod volumes ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-volume-storage/> |
|
||||
|
||||
----------------------------------------------
|
||||
|
||||
|
||||
Binary file not shown.
BIN
charts/open-webui/charts/ollama-0.65.0.tgz
Normal file
BIN
charts/open-webui/charts/ollama-0.65.0.tgz
Normal file
Binary file not shown.
BIN
charts/open-webui/charts/pipelines-0.0.4.tgz
Normal file
BIN
charts/open-webui/charts/pipelines-0.0.4.tgz
Normal file
Binary file not shown.
BIN
charts/open-webui/charts/tika-2.9.0.tgz
Normal file
BIN
charts/open-webui/charts/tika-2.9.0.tgz
Normal file
Binary file not shown.
@@ -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" . }}
|
||||
@@ -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 }}
|
||||
@@ -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 }}
|
||||
@@ -26,4 +26,10 @@ spec:
|
||||
{{- if .Values.service.loadBalancerClass }}
|
||||
loadBalancerClass: {{ .Values.service.loadBalancerClass | quote }}
|
||||
{{- end }}
|
||||
|
||||
{{- if and (eq .Values.service.type "ClusterIP") (.Values.service.clusterIP) }}
|
||||
clusterIP: {{ .Values.service.clusterIP }}
|
||||
{{- end }}
|
||||
{{- if and (eq .Values.service.type "LoadBalancer") (.Values.service.loadBalancerIP) }}
|
||||
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
142
charts/open-webui/templates/workload-manager.yaml
Normal file
142
charts/open-webui/templates/workload-manager.yaml
Normal file
@@ -0,0 +1,142 @@
|
||||
apiVersion: apps/v1
|
||||
{{- if .Values.persistence.enabled }}
|
||||
kind: StatefulSet
|
||||
{{- else }}
|
||||
kind: Deployment
|
||||
{{- end }}
|
||||
metadata:
|
||||
name: {{ include "open-webui.name" . }}
|
||||
labels:
|
||||
{{- include "open-webui.labels" . | nindent 4 }}
|
||||
{{- with .Values.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
{{- if .Values.persistence.enabled }}
|
||||
serviceName: {{ include "open-webui.name" . }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "open-webui.selectorLabels" . | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "open-webui.labels" . | nindent 8 }}
|
||||
{{- with .Values.podAnnotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
initContainers:
|
||||
- name: copy-app-data
|
||||
{{- with .Values.image }}
|
||||
image: {{ .repository }}:{{ .tag | default $.Chart.AppVersion }}
|
||||
imagePullPolicy: {{ .pullPolicy }}
|
||||
{{- end }}
|
||||
command: ['sh', '-c', 'cp -R -n /app/backend/data/* /tmp/app-data/']
|
||||
{{- with .Values.containerSecurityContext }}
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 10 }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
- name: data
|
||||
mountPath: /tmp/app-data
|
||||
{{- if .Values.persistence.subPath }}
|
||||
subPath: {{ .Values.persistence.subPath }}
|
||||
{{- end }}
|
||||
{{- with .Values.volumeMounts.initContainer }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
enableServiceLinks: false
|
||||
automountServiceAccountToken: false
|
||||
{{- with .Values.podSecurityContext }}
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
{{- with .Values.image }}
|
||||
image: {{ .repository }}:{{ .tag | default $.Chart.AppVersion }}
|
||||
imagePullPolicy: {{ .pullPolicy }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: {{ .Values.service.containerPort }}
|
||||
{{- with .Values.resources }}
|
||||
resources: {{- toYaml . | nindent 10 }}
|
||||
{{- end }}
|
||||
{{- with .Values.containerSecurityContext }}
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 10 }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
- name: data
|
||||
mountPath: /app/backend/data
|
||||
{{- if .Values.persistence.subPath }}
|
||||
subPath: {{ .Values.persistence.subPath }}
|
||||
{{- end }}
|
||||
{{- with .Values.volumeMounts.container }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
env:
|
||||
{{- if or .Values.ollamaUrls .Values.ollama.enabled }}
|
||||
- name: "OLLAMA_BASE_URLS"
|
||||
value: {{ include "ollamaBaseUrls" . | quote }}
|
||||
{{- else }}
|
||||
- name: "ENABLE_OLLAMA_API"
|
||||
value: "False"
|
||||
{{- end }}
|
||||
- name: "OPENAI_API_BASE_URL"
|
||||
{{- if .Values.pipelines.enabled }}
|
||||
value: {{ include "pipelines.serviceEndpoint" . }}
|
||||
{{- else if .Values.openaiBaseApiUrl }}
|
||||
value: {{ .Values.openaiBaseApiUrl | quote }}
|
||||
{{- end }}
|
||||
{{- if .Values.extraEnvVars }}
|
||||
{{- toYaml .Values.extraEnvVars | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.tika.enabled }}
|
||||
- name: "CONTENT_EXTRACTION_ENGINE"
|
||||
value: "Tika"
|
||||
- name: "TIKA_SERVER_URL"
|
||||
value: http://{{ .Chart.Name }}-tika:9998
|
||||
{{- end }}
|
||||
tty: true
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.topologySpreadConstraints }}
|
||||
topologySpreadConstraints:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
{{- if and .Values.persistence.enabled .Values.persistence.existingClaim }}
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ .Values.persistence.existingClaim }}
|
||||
{{- else if not .Values.persistence.enabled }}
|
||||
- name: data
|
||||
emptyDir: {}
|
||||
{{- else if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ include "open-webui.name" . }}
|
||||
{{- end }}
|
||||
{{- with .Values.volumes }}
|
||||
{{- toYaml . | nindent 6 }}
|
||||
{{- end }}
|
||||
@@ -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
|
||||
@@ -14,7 +16,17 @@ ollama:
|
||||
# runtimeClassName: nvidia
|
||||
# persistentVolume:
|
||||
# enabled: true
|
||||
# volumeName: "example-pre-existing-pv-created-by-smb-csi"
|
||||
|
||||
pipelines:
|
||||
# -- Automatically install Pipelines chart to extend Open WebUI functionality using Pipelines: https://github.com/open-webui/pipelines
|
||||
enabled: true
|
||||
# -- This section can be used to pass required environment variables to your pipelines (e.g. Langfuse hostname)
|
||||
extraEnvVars: []
|
||||
|
||||
tika:
|
||||
# -- Automatically install Apache Tika to extend Open WebUI
|
||||
enabled: false
|
||||
|
||||
# -- 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: []
|
||||
@@ -25,10 +37,18 @@ 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: ""
|
||||
pullPolicy: Always
|
||||
pullPolicy: "IfNotPresent"
|
||||
|
||||
# -- Configure imagePullSecrets to use private registry
|
||||
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry>
|
||||
imagePullSecrets: []
|
||||
# imagePullSecrets:
|
||||
# - name: myRegistryKeySecretName
|
||||
|
||||
resources: {}
|
||||
ingress:
|
||||
enabled: false
|
||||
@@ -42,10 +62,13 @@ 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: ""
|
||||
# -- Subdirectory of Open WebUI PVC to mount. Useful if root directory is not empty.
|
||||
subPath: ""
|
||||
# -- If using multiple replicas, you must update accessModes to ReadWriteMany
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
- ReadWriteOnce
|
||||
storageClass: ""
|
||||
selector: {}
|
||||
annotations: {}
|
||||
@@ -59,6 +82,10 @@ tolerations: []
|
||||
# -- Affinity for pod assignment
|
||||
affinity: {}
|
||||
|
||||
# -- Topology Spread Constraints for pod assignment
|
||||
topologySpreadConstraints: []
|
||||
|
||||
# -- Service values to expose Open WebUI pods to cluster
|
||||
service:
|
||||
type: ClusterIP
|
||||
annotations: {}
|
||||
@@ -68,7 +95,66 @@ service:
|
||||
labels: {}
|
||||
loadBalancerClass: ""
|
||||
|
||||
# -- Additional environments variables on the output Deployment definition.
|
||||
extraEnvVars: []
|
||||
# - name: OLLAMA_DEBUG
|
||||
# value: "1"
|
||||
# -- 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: ""
|
||||
|
||||
# -- Env vars added to the Open WebUI deployment. Most up-to-date environment variables can be found here: https://docs.openwebui.com/getting-started/env-configuration/
|
||||
extraEnvVars:
|
||||
# -- Default API key value for Pipelines. Should be updated in a production deployment, or be changed to the required API key if not using Pipelines
|
||||
- name: OPENAI_API_KEY
|
||||
value: "0p3n-w3bu!"
|
||||
# valueFrom:
|
||||
# secretKeyRef:
|
||||
# name: pipelines-api-key
|
||||
# key: api-key
|
||||
# - name: OPENAI_API_KEY
|
||||
# valueFrom:
|
||||
# secretKeyRef:
|
||||
# name: openai-api-key
|
||||
# key: api-key
|
||||
# - name: OLLAMA_DEBUG
|
||||
# value: "1"
|
||||
|
||||
# -- Configure container volume mounts
|
||||
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-volume-storage/>
|
||||
volumeMounts:
|
||||
initContainer: []
|
||||
# - name: ""
|
||||
# mountPath: ""
|
||||
container: []
|
||||
# - name: ""
|
||||
# mountPath: ""
|
||||
|
||||
# -- Configure pod volumes
|
||||
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-volume-storage/>
|
||||
volumes: []
|
||||
# - name: ""
|
||||
# configMap:
|
||||
# name: ""
|
||||
# - name: ""
|
||||
# emptyDir: {}
|
||||
|
||||
# -- Configure pod security context
|
||||
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-containe>
|
||||
podSecurityContext:
|
||||
{}
|
||||
# fsGroupChangePolicy: Always
|
||||
# sysctls: []
|
||||
# supplementalGroups: []
|
||||
# fsGroup: 1001
|
||||
|
||||
# -- Configure container security context
|
||||
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-containe>
|
||||
containerSecurityContext:
|
||||
{}
|
||||
# runAsUser: 1001
|
||||
# runAsGroup: 1001
|
||||
# runAsNonRoot: true
|
||||
# privileged: false
|
||||
# allowPrivilegeEscalation: false
|
||||
# readOnlyRootFilesystem: false
|
||||
# capabilities:
|
||||
# drop:
|
||||
# - ALL
|
||||
# seccompProfile:
|
||||
# type: "RuntimeDefault"
|
||||
|
||||
24
charts/pipelines/.helmignore
Normal file
24
charts/pipelines/.helmignore
Normal file
@@ -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/
|
||||
20
charts/pipelines/Chart.yaml
Normal file
20
charts/pipelines/Chart.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
apiVersion: v2
|
||||
name: pipelines
|
||||
version: 0.0.4
|
||||
appVersion: "alpha"
|
||||
|
||||
home: https://github.com/open-webui/pipelines
|
||||
icon: https://github.com/open-webui/pipelines/raw/main/header.png
|
||||
|
||||
description: "Pipelines: UI-Agnostic OpenAI API Plugin Framework"
|
||||
keywords:
|
||||
- llm
|
||||
- chat
|
||||
- web-ui
|
||||
|
||||
sources:
|
||||
- https://github.com/open-webui/helm-charts
|
||||
- https://github.com/open-webui/pipelines/pkgs/container/pipelines
|
||||
|
||||
annotations:
|
||||
licenses: MIT
|
||||
71
charts/pipelines/README.md
Normal file
71
charts/pipelines/README.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# pipelines
|
||||
|
||||
 
|
||||
|
||||
Pipelines: UI-Agnostic OpenAI API Plugin Framework
|
||||
|
||||
**Homepage:** <https://github.com/open-webui/pipelines>
|
||||
|
||||
## Source Code
|
||||
|
||||
* <https://github.com/open-webui/helm-charts>
|
||||
* <https://github.com/open-webui/pipelines/pkgs/container/pipelines>
|
||||
|
||||
## Installing
|
||||
|
||||
Before you can install, you need to add the `open-webui` repo to [Helm](https://helm.sh)
|
||||
|
||||
```shell
|
||||
helm repo add open-webui https://helm.openwebui.com/
|
||||
helm repo update
|
||||
```
|
||||
|
||||
Now you can install the chart:
|
||||
|
||||
```shell
|
||||
helm upgrade --install open-webui open-webui/pipelines
|
||||
```
|
||||
|
||||
## Values
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
| affinity | object | `{}` | Affinity for pod assignment |
|
||||
| annotations | object | `{}` | |
|
||||
| clusterDomain | string | `"cluster.local"` | Value of cluster domain |
|
||||
| extraEnvVars | list | `[{"name":"PIPELINES_URLS","value":"https://github.com/open-webui/pipelines/blob/main/examples/filters/detoxify_filter_pipeline.py"}]` | Additional environments variables on the output Deployment definition. These are used to pull initial Pipeline files, and help configure Pipelines with required values (e.g. Langfuse API keys) |
|
||||
| extraEnvVars[0] | object | `{"name":"PIPELINES_URLS","value":"https://github.com/open-webui/pipelines/blob/main/examples/filters/detoxify_filter_pipeline.py"}` | Example pipeline to pull and load on deployment startup, see current pipelines here: https://github.com/open-webui/pipelines/blob/main/examples |
|
||||
| image.pullPolicy | string | `"Always"` | |
|
||||
| image.repository | string | `"ghcr.io/open-webui/pipelines"` | |
|
||||
| image.tag | string | `"main"` | |
|
||||
| imagePullSecrets | list | `[]` | Configure imagePullSecrets to use private registry ref: <https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry> |
|
||||
| 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 | `true` | |
|
||||
| ingress.existingSecret | string | `""` | |
|
||||
| ingress.host | string | `""` | |
|
||||
| ingress.tls | bool | `false` | |
|
||||
| nameOverride | string | `""` | |
|
||||
| nodeSelector | object | `{}` | Node labels for pod assignment. |
|
||||
| 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.selector | object | `{}` | |
|
||||
| persistence.size | string | `"2Gi"` | |
|
||||
| persistence.storageClass | string | `""` | |
|
||||
| podAnnotations | object | `{}` | |
|
||||
| replicaCount | int | `1` | |
|
||||
| resources | object | `{}` | |
|
||||
| service.annotations | object | `{}` | |
|
||||
| service.containerPort | int | `9099` | |
|
||||
| service.labels | object | `{}` | |
|
||||
| service.loadBalancerClass | string | `""` | |
|
||||
| service.nodePort | string | `""` | |
|
||||
| service.port | int | `9099` | |
|
||||
| service.type | string | `"ClusterIP"` | |
|
||||
| tolerations | list | `[]` | Tolerations for pod assignment |
|
||||
|
||||
----------------------------------------------
|
||||
|
||||
Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/helm-docs/).
|
||||
36
charts/pipelines/README.md.gotmpl
Normal file
36
charts/pipelines/README.md.gotmpl
Normal file
@@ -0,0 +1,36 @@
|
||||
{{ template "chart.header" . }}
|
||||
|
||||
{{ template "chart.deprecationWarning" . }}
|
||||
|
||||
{{ template "chart.badgesSection" . }}
|
||||
|
||||
{{ template "chart.description" . }}
|
||||
|
||||
{{ template "chart.homepageLine" . }}
|
||||
|
||||
{{ template "chart.maintainersSection" . }}
|
||||
|
||||
{{ template "chart.sourcesSection" . }}
|
||||
|
||||
## Installing
|
||||
|
||||
Before you can install, you need to add the `open-webui` repo to [Helm](https://helm.sh)
|
||||
|
||||
```shell
|
||||
helm repo add open-webui https://helm.openwebui.com/
|
||||
helm repo update
|
||||
```
|
||||
|
||||
Now you can install the chart:
|
||||
|
||||
```shell
|
||||
helm upgrade --install open-webui open-webui/pipelines
|
||||
```
|
||||
|
||||
{{ template "chart.requirementsSection" . }}
|
||||
|
||||
{{ template "chart.valuesSection" . }}
|
||||
|
||||
----------------------------------------------
|
||||
|
||||
Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/helm-docs/).
|
||||
54
charts/pipelines/templates/_helpers.tpl
Normal file
54
charts/pipelines/templates/_helpers.tpl
Normal file
@@ -0,0 +1,54 @@
|
||||
{{/*
|
||||
Set the name of the Pipelines resources
|
||||
*/}}
|
||||
{{- define "pipelines.name" -}}
|
||||
{{- default .Release.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- 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 }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
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 Pipelines resources
|
||||
*/}}
|
||||
{{- define "pipelines.selectorLabels" -}}
|
||||
{{ include "base.selectorLabels" . }}
|
||||
app.kubernetes.io/component: {{ .Chart.Name }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create labels to include on all Pipelines resources
|
||||
*/}}
|
||||
{{- define "pipelines.labels" -}}
|
||||
{{ include "base.labels" . }}
|
||||
{{ include "pipelines.selectorLabels" . }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create the default port to use on the service if none is defined in values
|
||||
*/}}
|
||||
{{- define "pipelines.servicePort" -}}
|
||||
{{- .Values.service.port | default 9099 }}
|
||||
{{- end }}
|
||||
@@ -1,9 +1,9 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "open-webui.name" . }}
|
||||
name: {{ include "pipelines.name" . }}
|
||||
labels:
|
||||
{{- include "open-webui.labels" . | nindent 4 }}
|
||||
{{- include "pipelines.labels" . | nindent 4 }}
|
||||
{{- with .Values.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
@@ -12,16 +12,20 @@ spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "open-webui.selectorLabels" . | nindent 6 }}
|
||||
{{- include "pipelines.selectorLabels" . | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "open-webui.labels" . | nindent 8 }}
|
||||
{{- include "pipelines.labels" . | nindent 8 }}
|
||||
{{- with .Values.podAnnotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
enableServiceLinks: false
|
||||
automountServiceAccountToken: false
|
||||
containers:
|
||||
@@ -40,13 +44,8 @@ spec:
|
||||
- name: data
|
||||
mountPath: /app/backend/data
|
||||
env:
|
||||
- name: OLLAMA_BASE_URLS
|
||||
value: {{ include "ollamaBaseUrls" . | quote }}
|
||||
{{- with .Values.extraEnvVars }}
|
||||
{{- range . }}
|
||||
- name: {{ .name }}
|
||||
value: {{ .value | quote }}
|
||||
{{- end }}
|
||||
{{- if .Values.extraEnvVars }}
|
||||
{{- toYaml .Values.extraEnvVars | nindent 8 }}
|
||||
{{- end }}
|
||||
tty: true
|
||||
{{- with .Values.nodeSelector }}
|
||||
@@ -72,5 +71,5 @@ spec:
|
||||
{{- else if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ include "open-webui.name" . }}
|
||||
{{- end }}
|
||||
claimName: {{ include "pipelines.name" . }}
|
||||
{{- end }}
|
||||
27
charts/pipelines/templates/pvc.yaml
Normal file
27
charts/pipelines/templates/pvc.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: {{ include "pipelines.name" . }}
|
||||
labels:
|
||||
{{- include "pipelines.selectorLabels" . | nindent 4 }}
|
||||
{{- with .Values.persistence.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
accessModes:
|
||||
{{- range .Values.persistence.accessModes }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.persistence.size }}
|
||||
{{- if .Values.persistence.storageClass }}
|
||||
storageClassName: {{ .Values.persistence.storageClass }}
|
||||
{{- end }}
|
||||
{{- with .Values.persistence.selector }}
|
||||
selector:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
29
charts/pipelines/templates/service.yaml
Normal file
29
charts/pipelines/templates/service.yaml
Normal file
@@ -0,0 +1,29 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "pipelines.name" . }}
|
||||
labels:
|
||||
{{- include "pipelines.labels" . | nindent 4 }}
|
||||
{{- with .Values.service.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.service.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
{{- include "pipelines.selectorLabels" . | nindent 4 }}
|
||||
type: {{ .Values.service.type | default "ClusterIP" }}
|
||||
ports:
|
||||
- protocol: TCP
|
||||
name: http
|
||||
port: {{ .Values.service.port }}
|
||||
targetPort: http
|
||||
{{- if .Values.service.nodePort }}
|
||||
nodePort: {{ .Values.service.nodePort | int }}
|
||||
{{- end }}
|
||||
{{- if .Values.service.loadBalancerClass }}
|
||||
loadBalancerClass: {{ .Values.service.loadBalancerClass | quote }}
|
||||
{{- end }}
|
||||
|
||||
83
charts/pipelines/values.yaml
Normal file
83
charts/pipelines/values.yaml
Normal file
@@ -0,0 +1,83 @@
|
||||
nameOverride: ""
|
||||
|
||||
# -- Value of cluster domain
|
||||
clusterDomain: cluster.local
|
||||
|
||||
annotations: {}
|
||||
podAnnotations: {}
|
||||
replicaCount: 1
|
||||
image:
|
||||
repository: ghcr.io/open-webui/pipelines
|
||||
tag: main
|
||||
pullPolicy: Always
|
||||
|
||||
# -- Configure imagePullSecrets to use private registry
|
||||
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry>
|
||||
imagePullSecrets: []
|
||||
# imagePullSecrets:
|
||||
# - name: myRegistryKeySecretName
|
||||
|
||||
resources: {}
|
||||
ingress:
|
||||
enabled: true
|
||||
class: ""
|
||||
# -- Use appropriate annotations for your Ingress controller, e.g., for NGINX:
|
||||
# nginx.ingress.kubernetes.io/rewrite-target: /
|
||||
annotations: {}
|
||||
host: ""
|
||||
tls: false
|
||||
existingSecret: ""
|
||||
persistence:
|
||||
enabled: true
|
||||
size: 2Gi
|
||||
existingClaim: ""
|
||||
# -- If using multiple replicas, you must update accessModes to ReadWriteMany
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
storageClass: ""
|
||||
selector: {}
|
||||
annotations: {}
|
||||
|
||||
# -- Node labels for pod assignment.
|
||||
nodeSelector: {}
|
||||
|
||||
# -- Tolerations for pod assignment
|
||||
tolerations: []
|
||||
|
||||
# -- Affinity for pod assignment
|
||||
affinity: {}
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
annotations: {}
|
||||
port: 9099
|
||||
containerPort: 9099
|
||||
nodePort: ""
|
||||
labels: {}
|
||||
loadBalancerClass: ""
|
||||
|
||||
# -- Additional environments variables on the output Deployment definition. These are used to pull initial Pipeline files, and help configure Pipelines with required values (e.g. Langfuse API keys)
|
||||
extraEnvVars:
|
||||
# -- Example pipeline to pull and load on deployment startup, see current pipelines here: https://github.com/open-webui/pipelines/blob/main/examples
|
||||
- name: PIPELINES_URLS
|
||||
value: "https://github.com/open-webui/pipelines/blob/main/examples/filters/detoxify_filter_pipeline.py"
|
||||
# - name: PIPELINES_API_KEY
|
||||
# valueFrom:
|
||||
# secretKeyRef:
|
||||
# name: pipelines-keys
|
||||
# key: pipelines-api-key
|
||||
# -- Langfuse example, including values used in Langfuse filter to connect
|
||||
# - name: PIPELINES_URLS
|
||||
# value: "https://github.com/open-webui/pipelines/blob/main/examples/filters/langfuse_filter_pipeline.py"
|
||||
# - name: LANGFUSE_PUBLIC_KEY
|
||||
# valueFrom:
|
||||
# secretKeyRef:
|
||||
# name: langfuse-keys
|
||||
# key: public-key
|
||||
# - name: LANGFUSE_SECRET_KEY
|
||||
# valueFrom:
|
||||
# secretKeyRef:
|
||||
# name: langfuse-keys
|
||||
# key: secret-key
|
||||
# - name: LANGFUSE_HOST
|
||||
# value: https://us.cloud.langfuse.com
|
||||
7
package.json
Normal file
7
package.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"devDependencies": {
|
||||
"@semantic-release/github": "^9.0.3",
|
||||
"semantic-release": "^21.0.5",
|
||||
"semantic-release-helm": "^2.2.0"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user