mirror of
https://github.com/open-webui/helm-charts
synced 2025-06-26 18:16:14 +00:00
Compare commits
205 Commits
open-webui
...
open-webui
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
771687760a | ||
|
|
be4ab2c29d | ||
|
|
4ada4ac05a | ||
|
|
1e87660292 | ||
|
|
6ee6c9dc44 | ||
|
|
021e958b5d | ||
|
|
97d4e16f51 | ||
|
|
d23608a778 | ||
|
|
9c5db2ccd2 | ||
|
|
3d8db7dc34 | ||
|
|
0e865418e8 | ||
|
|
8acfa719fe | ||
|
|
59048fd177 | ||
|
|
921af38848 | ||
|
|
73268086eb | ||
|
|
2e13b26b94 | ||
|
|
32797850cd | ||
|
|
30750a96ae | ||
|
|
f187ecd6fc | ||
|
|
46068602fc | ||
|
|
e49bd4d041 | ||
|
|
b3c486f5e6 | ||
|
|
4421135184 | ||
|
|
9c9aae9660 | ||
|
|
15b9ccbf84 | ||
|
|
961d895fe4 | ||
|
|
972a24510c | ||
|
|
60864a365b | ||
|
|
64160c1750 | ||
|
|
1c9327eb4f | ||
|
|
464f194014 | ||
|
|
1b47d08288 | ||
|
|
ba068ee8c0 | ||
|
|
b894afc239 | ||
|
|
1e17c5651d | ||
|
|
0ccce3cf5f | ||
|
|
3b1bfc20d3 | ||
|
|
51aab38029 | ||
|
|
535985967d | ||
|
|
f06ddd9f2f | ||
|
|
9b13a7e2af | ||
|
|
added76a4c | ||
|
|
1c072ce5bf | ||
|
|
72a324248a | ||
|
|
069909c5f3 | ||
|
|
8ceb4ed675 | ||
|
|
5ae7d88c6d | ||
|
|
1c186f785c | ||
|
|
8d6a4745ca | ||
|
|
2a1dfd7c79 | ||
|
|
911da24970 | ||
|
|
aa8f48d65c | ||
|
|
299203bc14 | ||
|
|
669a7f4006 | ||
|
|
902852e161 | ||
|
|
35100e8c9b | ||
|
|
80eecb60b7 | ||
|
|
78358cdd0c | ||
|
|
2229cfaef1 | ||
|
|
44c982df2f | ||
|
|
5af2615a30 | ||
|
|
0e6bc2b733 | ||
|
|
38d7ecfe21 | ||
|
|
d826181995 | ||
|
|
fe387238e1 | ||
|
|
dc60612c27 | ||
|
|
3764c99690 | ||
|
|
3adaffd03d | ||
|
|
7c6aa4fc19 | ||
|
|
fe7d2bb946 | ||
|
|
aa0c381f01 | ||
|
|
de66118c42 | ||
|
|
2ef9234739 | ||
|
|
fc3a19b8d9 | ||
|
|
f70f12a720 | ||
|
|
905073b392 | ||
|
|
e2bb6c5ac4 | ||
|
|
3ac14d7ed7 | ||
|
|
f539153797 | ||
|
|
5a9e030548 | ||
|
|
357d167f76 | ||
|
|
3269b62733 | ||
|
|
373b4c8042 | ||
|
|
154753931e | ||
|
|
b9cc6a30cc | ||
|
|
db99d5cafe | ||
|
|
400512fc0e | ||
|
|
cf12b1d078 | ||
|
|
746fe34aa1 | ||
|
|
d0cf4abd11 | ||
|
|
2b83759321 | ||
|
|
67adcc38e6 | ||
|
|
831cc94d8d | ||
|
|
83c5a02a28 | ||
|
|
145a5f5933 | ||
|
|
1931f3ea06 | ||
|
|
45d5c2a26e | ||
|
|
b1e7ce6cea | ||
|
|
f71d21d5e4 | ||
|
|
30707d473d | ||
|
|
01fd07172c | ||
|
|
afcd804aaf | ||
|
|
afe30f15cb | ||
|
|
abc23d2ad4 | ||
|
|
5cf03b48a0 | ||
|
|
48ab03c9d6 | ||
|
|
1cdb232649 | ||
|
|
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 |
63
.github/workflows/helm-release.yml
vendored
63
.github/workflows/helm-release.yml
vendored
@@ -5,16 +5,52 @@ 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
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
@@ -23,15 +59,12 @@ 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/
|
||||
helm repo add redis https://charts.bitnami.com/bitnami
|
||||
|
||||
- name: Run chart-releaser
|
||||
uses: helm/chart-releaser-action@v1.6.0
|
||||
@@ -41,3 +74,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
|
||||
|
||||
54
.github/workflows/helm-test-open-webui.yml
vendored
Normal file
54
.github/workflows/helm-test-open-webui.yml
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
name: Check Open WebUI Helm Charts (open-webui)
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- "charts/open-webui/**"
|
||||
push:
|
||||
paths:
|
||||
- "charts/open-webui/**"
|
||||
|
||||
jobs:
|
||||
lint-chart:
|
||||
name: Lint Helm Chart
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Helm
|
||||
uses: azure/setup-helm@v4
|
||||
|
||||
- name: Lint open-webui Helm Chart
|
||||
run: |
|
||||
helm lint ./charts/open-webui
|
||||
|
||||
test-deploy:
|
||||
name: Test Chart Deployment
|
||||
runs-on: ubuntu-latest
|
||||
needs: lint-chart
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up kubectl
|
||||
uses: azure/setup-kubectl@v4
|
||||
|
||||
- name: Set up Helm
|
||||
uses: azure/setup-helm@v4
|
||||
|
||||
- name: Set up KinD Cluster
|
||||
uses: helm/kind-action@v1
|
||||
|
||||
- name: Template open-webui Helm Chart
|
||||
run: |
|
||||
helm template open-webui ./charts/open-webui \
|
||||
--namespace test-namespace --create-namespace > open-webui.yaml
|
||||
|
||||
- name: Verify open-webui
|
||||
run: |
|
||||
kubectl create namespace test-namespace
|
||||
kubectl apply --namespace test-namespace -f open-webui.yaml
|
||||
kubectl wait --namespace test-namespace pod/open-webui-0 --for=condition=Ready --timeout=600s
|
||||
55
.github/workflows/helm-test-pipelines.yml
vendored
Normal file
55
.github/workflows/helm-test-pipelines.yml
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
name: Check Open WebUI Helm Charts (pipelines)
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- "charts/pipelines/**"
|
||||
push:
|
||||
paths:
|
||||
- "charts/pipelines/**"
|
||||
|
||||
jobs:
|
||||
lint-chart:
|
||||
name: Lint Helm Chart
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Helm
|
||||
uses: azure/setup-helm@v4
|
||||
|
||||
- name: Lint pipelines Helm Chart
|
||||
run: |
|
||||
helm lint ./charts/pipelines
|
||||
|
||||
test-deploy:
|
||||
name: Test Chart Deployment
|
||||
runs-on: ubuntu-latest
|
||||
needs: lint-chart
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up kubectl
|
||||
uses: azure/setup-kubectl@v4
|
||||
|
||||
- name: Set up Helm
|
||||
uses: azure/setup-helm@v4
|
||||
|
||||
- name: Set up KinD Cluster
|
||||
uses: helm/kind-action@v1
|
||||
|
||||
- name: Template open-webui Helm Chart
|
||||
run: |
|
||||
helm template pipelines ./charts/pipelines \
|
||||
--namespace test-namespace --create-namespace > pipelines.yaml
|
||||
|
||||
- name: Verify pipelines
|
||||
run: |
|
||||
kubectl create namespace test-namespace
|
||||
kubectl apply --namespace test-namespace -f pipelines.yaml
|
||||
PIPELINE_POD=$(kubectl get --namespace test-namespace pod -L app.kubernetes.io/component=pipelines -o jsonpath='{.items[*].metadata.name}')
|
||||
kubectl wait --namespace test-namespace pod/${PIPELINE_POD} --for=condition=Ready --timeout=600s
|
||||
125
.gitignore
vendored
Normal file
125
.gitignore
vendored
Normal file
@@ -0,0 +1,125 @@
|
||||
# Created by https://www.toptal.com/developers/gitignore/api/macos,intellij+all,helm
|
||||
# Edit at https://www.toptal.com/developers/gitignore?templates=macos,intellij+all,helm
|
||||
|
||||
### Intellij+all ###
|
||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||
|
||||
# User-specific stuff
|
||||
.idea/**/workspace.xml
|
||||
.idea/**/tasks.xml
|
||||
.idea/**/usage.statistics.xml
|
||||
.idea/**/dictionaries
|
||||
.idea/**/shelf
|
||||
|
||||
# AWS User-specific
|
||||
.idea/**/aws.xml
|
||||
|
||||
# Generated files
|
||||
.idea/**/contentModel.xml
|
||||
|
||||
# Sensitive or high-churn files
|
||||
.idea/**/dataSources/
|
||||
.idea/**/dataSources.ids
|
||||
.idea/**/dataSources.local.xml
|
||||
.idea/**/sqlDataSources.xml
|
||||
.idea/**/dynamic.xml
|
||||
.idea/**/uiDesigner.xml
|
||||
.idea/**/dbnavigator.xml
|
||||
|
||||
# Gradle
|
||||
.idea/**/gradle.xml
|
||||
.idea/**/libraries
|
||||
|
||||
# Gradle and Maven with auto-import
|
||||
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||
# since they will be recreated, and may cause churn. Uncomment if using
|
||||
# auto-import.
|
||||
# .idea/artifacts
|
||||
# .idea/compiler.xml
|
||||
# .idea/jarRepositories.xml
|
||||
# .idea/modules.xml
|
||||
# .idea/*.iml
|
||||
# .idea/modules
|
||||
# *.iml
|
||||
# *.ipr
|
||||
|
||||
# CMake
|
||||
cmake-build-*/
|
||||
|
||||
# Mongo Explorer plugin
|
||||
.idea/**/mongoSettings.xml
|
||||
|
||||
# File-based project format
|
||||
*.iws
|
||||
|
||||
# IntelliJ
|
||||
out/
|
||||
|
||||
# mpeltonen/sbt-idea plugin
|
||||
.idea_modules/
|
||||
|
||||
# JIRA plugin
|
||||
atlassian-ide-plugin.xml
|
||||
|
||||
# Cursive Clojure plugin
|
||||
.idea/replstate.xml
|
||||
|
||||
# SonarLint plugin
|
||||
.idea/sonarlint/
|
||||
|
||||
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||
com_crashlytics_export_strings.xml
|
||||
crashlytics.properties
|
||||
crashlytics-build.properties
|
||||
fabric.properties
|
||||
|
||||
# Editor-based Rest Client
|
||||
.idea/httpRequests
|
||||
|
||||
# Android studio 3.1+ serialized cache file
|
||||
.idea/caches/build_file_checksums.ser
|
||||
|
||||
### Intellij+all Patch ###
|
||||
# Ignore everything but code style settings and run configurations
|
||||
# that are supposed to be shared within teams.
|
||||
|
||||
.idea/*
|
||||
|
||||
!.idea/codeStyles
|
||||
!.idea/runConfigurations
|
||||
|
||||
### macOS ###
|
||||
# General
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Icon must end with two \r
|
||||
Icon
|
||||
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear in the root of a volume
|
||||
.DocumentRevisions-V100
|
||||
.fseventsd
|
||||
.Spotlight-V100
|
||||
.TemporaryItems
|
||||
.Trashes
|
||||
.VolumeIcon.icns
|
||||
.com.apple.timemachine.donotpresent
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
.apdisk
|
||||
|
||||
### macOS Patch ###
|
||||
# iCloud generated files
|
||||
*.icloud
|
||||
|
||||
# End of https://www.toptal.com/developers/gitignore/api/macos,intellij+all,helm
|
||||
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
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -8,9 +8,10 @@
|
||||
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. **Commit your changes** using a descriptive commit message that follows the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification.
|
||||
5. **Push your changes** to your forked repository.
|
||||
6. **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.
|
||||
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
|
||||
|
||||
@@ -29,6 +30,8 @@
|
||||
|
||||
- **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.
|
||||
|
||||
- **Actions Updates**: If your Pull Request includes adding a new chart dependency, ensure to make the necessary updates to Github Actions to add the chart repo dependency, or else the release run will fail.
|
||||
|
||||
## Getting Help
|
||||
|
||||
If you need any help or have questions about contributing, feel free to reach out to the maintainers of the repository.
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
dependencies:
|
||||
- name: ollama
|
||||
repository: https://otwld.github.io/ollama-helm/
|
||||
version: 0.33.0
|
||||
version: 1.4.1
|
||||
- name: pipelines
|
||||
repository: https://helm.openwebui.com
|
||||
version: 0.0.1
|
||||
digest: sha256:1138e9fa48135fabda643adc69845284d4ba08745caeb958a646f10c7a6f9fe1
|
||||
generated: "2024-06-04T21:28:16.737572-06:00"
|
||||
version: 0.0.6
|
||||
- name: tika
|
||||
repository: https://apache.jfrog.io/artifactory/tika
|
||||
version: 2.9.0
|
||||
- name: redis
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 20.7.0
|
||||
digest: sha256:472d0e2ea428473915d0c0fa16072772baf217a98e1aec1424a2cbb1d00b8235
|
||||
generated: "2025-02-06T15:42:37.834162+01:00"
|
||||
|
||||
@@ -1,38 +1,45 @@
|
||||
apiVersion: v2
|
||||
name: open-webui
|
||||
version: 3.0.2
|
||||
appVersion: "v0.3.4"
|
||||
|
||||
version: 5.11.0
|
||||
appVersion: 0.5.11
|
||||
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
|
||||
|
||||
- open-webui
|
||||
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://charts.bitnami.com/bitnami
|
||||
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"
|
||||
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
|
||||
- name: redis
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: '>=20.6.2'
|
||||
alias: redis-cluster
|
||||
condition: redis-cluster.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://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 |
|
||||
|
||||
@@ -42,15 +44,23 @@ 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 | 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 |
|
||||
| containerSecurityContext | object | `{}` | Configure container security context ref: <https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-containe> |
|
||||
| copyAppData.resources | object | `{}` | |
|
||||
| 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 |
|
||||
| extraResources | list | `[]` | Extra resources to deploy with Open WebUI |
|
||||
| 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 |
|
||||
| imagePullSecrets | list | `[]` | Configure imagePullSecrets to use private registry ref: <https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry> |
|
||||
| ingress.additionalHosts | list | `[]` | |
|
||||
| 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` | |
|
||||
| ingress.existingSecret | string | `""` | |
|
||||
| ingress.host | string | `""` | |
|
||||
| ingress.tls | bool | `false` | |
|
||||
| livenessProbe | object | `{}` | Probe for liveness of the Open WebUI container ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes> |
|
||||
| nameOverride | string | `""` | |
|
||||
| namespaceOverride | 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 |
|
||||
@@ -63,13 +73,53 @@ helm upgrade --install open-webui open-webui/open-webui
|
||||
| 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[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 |
|
||||
| pipelines.extraEnvVars | list | `[]` | This section can be used to pass required environment variables to your pipelines (e.g. Langfuse hostname) |
|
||||
| podAnnotations | object | `{}` | |
|
||||
| podLabels | 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> |
|
||||
| readinessProbe | object | `{}` | Probe for readiness of the Open WebUI container ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes> |
|
||||
| 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 |
|
||||
| redis-cluster.auth.enabled | bool | `false` | Enable Redis authentication (disabled by default). For your security, we strongly suggest that you switch to 'auth.enabled=true' |
|
||||
| redis-cluster.enabled | bool | `false` | Enable Redis installation |
|
||||
| redis-cluster.fullnameOverride | string | `"open-webui-redis"` | Redis cluster name (recommended to be 'open-webui-redis') - In this case, redis url will be 'redis://open-webui-redis-master:6379/0' or 'redis://[:<password>@]open-webui-redis-master:6379/0' |
|
||||
| redis-cluster.replica | object | `{"replicaCount":3}` | Replica configuration for the Redis cluster |
|
||||
| redis-cluster.replica.replicaCount | int | `3` | Number of Redis replica instances |
|
||||
| replicaCount | int | `1` | |
|
||||
| resources | object | `{}` | |
|
||||
| service | object | `{"annotations":{},"containerPort":8080,"labels":{},"loadBalancerClass":"","nodePort":"","port":80,"type":"ClusterIP"}` | Service values to expose Open WebUI pods to cluster |
|
||||
| serviceAccount.annotations | object | `{}` | |
|
||||
| serviceAccount.automountServiceAccountToken | bool | `false` | |
|
||||
| serviceAccount.enable | bool | `true` | |
|
||||
| serviceAccount.name | string | `""` | |
|
||||
| startupProbe | object | `{}` | Probe for startup of the Open WebUI container ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes> |
|
||||
| strategy | object | `{}` | Strategy for updating the workload manager: deployment or statefulset |
|
||||
| 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/> |
|
||||
| websocket.enabled | bool | `false` | Enables websocket support in Open WebUI with env `ENABLE_WEBSOCKET_SUPPORT` |
|
||||
| websocket.manager | string | `"redis"` | Specifies the websocket manager to use with env `WEBSOCKET_MANAGER`: redis (default) |
|
||||
| websocket.redis | object | `{"annotations":{},"args":[],"command":[],"enabled":true,"image":{"pullPolicy":"IfNotPresent","repository":"redis","tag":"7.4.2-alpine3.21"},"labels":{},"name":"open-webui-redis","resources":{},"service":{"annotations":{},"containerPort":6379,"labels":{},"nodePort":"","port":6379,"type":"ClusterIP"}}` | Deploys a redis |
|
||||
| websocket.redis.annotations | object | `{}` | Redis annotations |
|
||||
| websocket.redis.args | list | `[]` | Redis arguments (overrides default) |
|
||||
| websocket.redis.command | list | `[]` | Redis command (overrides default) |
|
||||
| websocket.redis.enabled | bool | `true` | Enable redis installation |
|
||||
| websocket.redis.image | object | `{"pullPolicy":"IfNotPresent","repository":"redis","tag":"7.4.2-alpine3.21"}` | Redis image |
|
||||
| websocket.redis.labels | object | `{}` | Redis labels |
|
||||
| websocket.redis.name | string | `"open-webui-redis"` | Redis name |
|
||||
| websocket.redis.resources | object | `{}` | Redis resources |
|
||||
| websocket.redis.service | object | `{"annotations":{},"containerPort":6379,"labels":{},"nodePort":"","port":6379,"type":"ClusterIP"}` | Redis service |
|
||||
| websocket.redis.service.annotations | object | `{}` | Redis service annotations |
|
||||
| websocket.redis.service.containerPort | int | `6379` | Redis container/target port |
|
||||
| websocket.redis.service.labels | object | `{}` | Redis service labels |
|
||||
| websocket.redis.service.nodePort | string | `""` | Redis service node port. Valid only when type is `NodePort` |
|
||||
| websocket.redis.service.port | int | `6379` | Redis service port |
|
||||
| websocket.redis.service.type | string | `"ClusterIP"` | Redis service type |
|
||||
| websocket.url | string | `"redis://open-webui-redis:6379/0"` | Specifies the URL of the Redis instance for websocket communication. Template with `redis://[:<password>@]<hostname>:<port>/<db>` |
|
||||
|
||||
----------------------------------------------
|
||||
|
||||
|
||||
Binary file not shown.
BIN
charts/open-webui/charts/ollama-1.4.1.tgz
Normal file
BIN
charts/open-webui/charts/ollama-1.4.1.tgz
Normal file
Binary file not shown.
Binary file not shown.
BIN
charts/open-webui/charts/pipelines-0.0.6.tgz
Normal file
BIN
charts/open-webui/charts/pipelines-0.0.6.tgz
Normal file
Binary file not shown.
BIN
charts/open-webui/charts/redis-20.7.0.tgz
Normal file
BIN
charts/open-webui/charts/redis-20.7.0.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.
77
charts/open-webui/templates/NOTES.txt
Normal file
77
charts/open-webui/templates/NOTES.txt
Normal file
@@ -0,0 +1,77 @@
|
||||
{{- `
|
||||
🎉 Welcome to Open WebUI!!
|
||||
___ __ __ _ _ _ ___
|
||||
/ _ \ _ __ ___ _ __ \ \ / /__| |__ | | | |_ _|
|
||||
| | | | '_ \ / _ \ '_ \ \ \ /\ / / _ \ '_ \| | | || |
|
||||
| |_| | |_) | __/ | | | \ V V / __/ |_) | |_| || |
|
||||
\___/| .__/ \___|_| |_| \_/\_/ \___|_.__/ \___/|___|
|
||||
|_|
|
||||
` }}
|
||||
v{{ .Chart.AppVersion }} - building the best open-source AI user interface.
|
||||
- Chart Version: v{{ .Chart.Version }}
|
||||
- Project URL 1: {{ .Chart.Home }}
|
||||
- Project URL 2: https://github.com/open-webui/open-webui
|
||||
- Documentation: https://docs.openwebui.com/
|
||||
- Chart URL: https://github.com/open-webui/helm-charts
|
||||
|
||||
Open WebUI is a web-based user interface that works with Ollama, OpenAI, Claude 3, Gemini and more.
|
||||
This interface allows you to easily interact with local AI models.
|
||||
|
||||
1. Deployment Information:
|
||||
- Chart Name: {{ .Chart.Name }}
|
||||
- Release Name: {{ .Release.Name }}
|
||||
- Namespace: {{ .Release.Namespace }}
|
||||
|
||||
2. Access the Application:
|
||||
{{- if contains "ClusterIP" .Values.service.type }}
|
||||
Access via ClusterIP service:
|
||||
|
||||
export LOCAL_PORT=8080
|
||||
export POD_NAME=$(kubectl get pods -n {{ .Release.Namespace }} -l "app.kubernetes.io/component={{ include "open-webui.name" . }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
export CONTAINER_PORT=$(kubectl get pod -n {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
|
||||
kubectl -n {{ .Release.Namespace }} port-forward $POD_NAME $LOCAL_PORT:$CONTAINER_PORT
|
||||
echo "Visit http://127.0.0.1:$LOCAL_PORT to use your application"
|
||||
|
||||
Then, access the application at: http://127.0.0.1:$LOCAL_PORT or http://localhost:8080
|
||||
|
||||
{{- else if contains "NodePort" .Values.service.type }}
|
||||
Access via NodePort service:
|
||||
export NODE_PORT=$(kubectl get -n {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "open-webui.name" . }})
|
||||
export NODE_IP=$(kubectl get nodes -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT
|
||||
|
||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||
Access via LoadBalancer service:
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
NOTE: The external address format depends on your cloud provider:
|
||||
- AWS: Will return a hostname (e.g., xxx.elb.amazonaws.com)
|
||||
- GCP/Azure: Will return an IP address
|
||||
You can watch the status by running:
|
||||
|
||||
kubectl get -n {{ .Release.Namespace }} svc {{ include "open-webui.name" . }} --watch
|
||||
export EXTERNAL_IP=$(kubectl get -n {{ .Release.Namespace }} svc {{ include "open-webui.name" . }} -o jsonpath="{.status.loadBalancer.ingress[0].hostname:-.status.loadBalancer.ingress[0].ip}")
|
||||
echo http://$EXTERNAL_IP:{{ .Values.service.port }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.ingress.enabled }}
|
||||
|
||||
Ingress is enabled. Access the application at: http{{ if .Values.ingress.tls }}s{{ end }}://{{ .Values.ingress.host }}
|
||||
{{- end }}
|
||||
|
||||
3. Useful Commands:
|
||||
- Check deployment status:
|
||||
helm status {{ .Release.Name }} -n {{ .Release.Namespace }}
|
||||
|
||||
- Get detailed information:
|
||||
helm get all {{ .Release.Name }} -n {{ .Release.Namespace }}
|
||||
|
||||
- View logs:
|
||||
{{- if .Values.persistence.enabled }}
|
||||
kubectl logs -f statefulset/{{ include "open-webui.name" . }} -n {{ .Release.Namespace }}
|
||||
{{- else }}
|
||||
kubectl logs -f deployment/{{ include "open-webui.name" . }} -n {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
|
||||
4. Cleanup:
|
||||
- Uninstall the deployment:
|
||||
helm uninstall {{ .Release.Name }} -n {{ .Release.Namespace }}
|
||||
@@ -1,3 +1,14 @@
|
||||
{{/*
|
||||
Allow the release namespace to be overridden for multi-namespace deployments in combined charts
|
||||
*/}}
|
||||
{{- define "open-webui.namespace" -}}
|
||||
{{- if .Values.namespaceOverride -}}
|
||||
{{- .Values.namespaceOverride -}}
|
||||
{{- else -}}
|
||||
{{- .Release.Namespace -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Set the name of the Open WebUI resources
|
||||
*/}}
|
||||
@@ -141,4 +152,20 @@ Create the service endpoint to use for Pipelines if the subchart is used
|
||||
{{- $pipelinesServicePort := .Values.pipelines.service.port | toString }}
|
||||
{{- printf "http://%s.%s.svc.%s:%s" (include "pipelines.name" .) (.Release.Namespace) $clusterDomain $pipelinesServicePort }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create selector labels to include on chart all websocket resources
|
||||
*/}}
|
||||
{{- define "websocket.redis.selectorLabels" -}}
|
||||
{{ include "base.selectorLabels" . }}
|
||||
app.kubernetes.io/component: {{ .Values.websocket.redis.name }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create labels to include on chart all websocket resources
|
||||
*/}}
|
||||
{{- define "websocket.redis.labels" -}}
|
||||
{{ include "base.labels" . }}
|
||||
{{ include "websocket.redis.selectorLabels" . }}
|
||||
{{- end }}
|
||||
|
||||
6
charts/open-webui/templates/extra-resources.yaml
Normal file
6
charts/open-webui/templates/extra-resources.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
{{- if .Values.extraResources }}
|
||||
{{- range .Values.extraResources }}
|
||||
---
|
||||
{{ toYaml . | nindent 0 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -3,6 +3,7 @@ apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ include "open-webui.name" . }}
|
||||
namespace: {{ include "open-webui.namespace" . }}
|
||||
labels:
|
||||
{{- include "open-webui.labels" . | nindent 4 }}
|
||||
{{- with .Values.ingress.annotations }}
|
||||
@@ -17,6 +18,9 @@ spec:
|
||||
tls:
|
||||
- hosts:
|
||||
- {{ .Values.ingress.host | quote }}
|
||||
{{- range .Values.ingress.additionalHosts }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
secretName: {{ default (printf "%s-tls" .Release.Name) .Values.ingress.existingSecret }}
|
||||
{{- end }}
|
||||
rules:
|
||||
@@ -30,4 +34,16 @@ spec:
|
||||
name: {{ include "open-webui.name" . }}
|
||||
port:
|
||||
name: http
|
||||
{{- range .Values.ingress.additionalHosts }}
|
||||
- host: {{ . | quote }}
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: {{ include "open-webui.name" $ }}
|
||||
port:
|
||||
name: http
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
11
charts/open-webui/templates/managed-cert.yaml
Normal file
11
charts/open-webui/templates/managed-cert.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
{{- if .Values.managedCertificate.enabled }}
|
||||
apiVersion: networking.gke.io/v1
|
||||
kind: ManagedCertificate
|
||||
metadata:
|
||||
name: {{ .Values.managedCertificate.name | default "mydomain-cert" }}
|
||||
spec:
|
||||
domains:
|
||||
{{- range .Values.managedCertificate.domains }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -3,6 +3,7 @@ apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: {{ include "open-webui.name" . }}
|
||||
namespace: {{ include "open-webui.namespace" . }}
|
||||
labels:
|
||||
{{- include "open-webui.selectorLabels" . | nindent 4 }}
|
||||
{{- with .Values.persistence.annotations }}
|
||||
|
||||
14
charts/open-webui/templates/service-account.yaml
Normal file
14
charts/open-webui/templates/service-account.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
{{- if .Values.serviceAccount.enable }}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ .Values.serviceAccount.name | default (include "open-webui.name" .) }}
|
||||
namespace: {{ include "open-webui.namespace" . }}
|
||||
labels:
|
||||
{{- include "open-webui.labels" . | nindent 4 }}
|
||||
{{- with .Values.serviceAccount.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
automountServiceAccountToken: {{ .Values.serviceAccount.automountServiceAccountToken }}
|
||||
{{- end }}
|
||||
@@ -2,6 +2,7 @@ apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "open-webui.name" . }}
|
||||
namespace: {{ include "open-webui.namespace" . }}
|
||||
labels:
|
||||
{{- include "open-webui.labels" . | nindent 4 }}
|
||||
{{- with .Values.service.labels }}
|
||||
@@ -26,4 +27,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 }}
|
||||
|
||||
|
||||
75
charts/open-webui/templates/websocket-redis.yaml
Normal file
75
charts/open-webui/templates/websocket-redis.yaml
Normal file
@@ -0,0 +1,75 @@
|
||||
{{- if and .Values.websocket.enabled .Values.websocket.redis.enabled }}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ .Values.websocket.redis.name }}
|
||||
namespace: {{ include "open-webui.namespace" . }}
|
||||
labels:
|
||||
{{- include "websocket.redis.labels" . | nindent 4 }}
|
||||
{{- with .Values.websocket.redis.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- with .Values.websocket.redis.annotations }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "websocket.redis.selectorLabels" . | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "websocket.redis.labels" . | nindent 8 }}
|
||||
annotations:
|
||||
{{- with .Values.websocket.redis.pods.annotations }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
containers:
|
||||
- name: {{ .Values.websocket.redis.name }}
|
||||
image: "{{ .Values.websocket.redis.image.repository }}:{{ .Values.websocket.redis.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.websocket.redis.image.pullPolicy }}
|
||||
{{- with .Values.websocket.redis.command }}
|
||||
command:
|
||||
{{- toYaml . | nindent 10 }}
|
||||
{{- end }}
|
||||
{{- with .Values.websocket.redis.args }}
|
||||
args:
|
||||
{{- toYaml . | nindent 10 }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: {{ .Values.websocket.redis.service.containerPort }}
|
||||
{{- with .Values.websocket.redis.resources }}
|
||||
resources:
|
||||
{{- toYaml . | nindent 10 }}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ .Values.websocket.redis.name }}
|
||||
namespace: {{ include "open-webui.namespace" . }}
|
||||
labels:
|
||||
{{- include "websocket.redis.labels" . | nindent 4 }}
|
||||
{{- with .Values.websocket.redis.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- with .Values.websocket.redis.service.annotations }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
{{- include "websocket.redis.selectorLabels" . | nindent 4 }}
|
||||
type: {{ .Values.websocket.redis.service.type | default "ClusterIP" }}
|
||||
ports:
|
||||
- protocol: TCP
|
||||
name: http
|
||||
port: {{ .Values.websocket.redis.service.port }}
|
||||
targetPort: http
|
||||
{{- if .Values.websocket.redis.service.nodePort }}
|
||||
nodePort: {{ .Values.websocket.redis.service.nodePort | int }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -6,6 +6,7 @@ kind: Deployment
|
||||
{{- end }}
|
||||
metadata:
|
||||
name: {{ include "open-webui.name" . }}
|
||||
namespace: {{ include "open-webui.namespace" . }}
|
||||
labels:
|
||||
{{- include "open-webui.labels" . | nindent 4 }}
|
||||
{{- with .Values.annotations }}
|
||||
@@ -14,20 +15,69 @@ metadata:
|
||||
{{- end }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
{{- if .Values.persistence.enabled }}
|
||||
serviceName: {{ include "open-webui.name" . }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "open-webui.selectorLabels" . | nindent 6 }}
|
||||
{{- if .Values.strategy }}
|
||||
{{- if .Values.persistence.enabled }}
|
||||
updateStrategy:
|
||||
{{- toYaml .Values.strategy | nindent 4 }}
|
||||
{{- else }}
|
||||
strategy:
|
||||
{{- toYaml .Values.strategy | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "open-webui.labels" . | nindent 8 }}
|
||||
{{- with .Values.podLabels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- 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 }}
|
||||
{{- with .Values.copyAppData.resources }}
|
||||
resources: {{- 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
|
||||
automountServiceAccountToken: {{ .Values.serviceAccount.automountServiceAccountToken }}
|
||||
{{- if .Values.serviceAccount.enable }}
|
||||
serviceAccountName: {{ .Values.serviceAccount.name | default (include "open-webui.name" .) }}
|
||||
{{- end }}
|
||||
{{- with .Values.podSecurityContext }}
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
{{- with .Values.image }}
|
||||
@@ -37,28 +87,62 @@ spec:
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: {{ .Values.service.containerPort }}
|
||||
{{- with .Values.livenessProbe }}
|
||||
livenessProbe: {{- toYaml . | nindent 10 }}
|
||||
{{- end }}
|
||||
{{- with .Values.readinessProbe }}
|
||||
readinessProbe: {{- toYaml . | nindent 10 }}
|
||||
{{- end }}
|
||||
{{- with .Values.startupProbe }}
|
||||
startupProbe: {{- toYaml . | nindent 10 }}
|
||||
{{- end }}
|
||||
{{- 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:
|
||||
- name: OLLAMA_BASE_URLS
|
||||
{{- if or .Values.ollamaUrls .Values.ollama.enabled }}
|
||||
- name: "OLLAMA_BASE_URLS"
|
||||
value: {{ include "ollamaBaseUrls" . | quote }}
|
||||
{{ if .Values.pipelines.enabled }}
|
||||
- name: OPENAI_API_BASE_URL
|
||||
{{- 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 }}
|
||||
- name: OPENAI_API_BASE_URL
|
||||
value: {{ .Values.openaiBaseApiUrl }}
|
||||
{{ else }}
|
||||
- name: OPENAI_API_BASE_URL
|
||||
value: "https://api.openai.com/v1"
|
||||
{{ end }}
|
||||
{{- 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 }}
|
||||
{{- if .Values.websocket.enabled }}
|
||||
- name: "ENABLE_WEBSOCKET_SUPPORT"
|
||||
value: "True"
|
||||
- name: "WEBSOCKET_MANAGER"
|
||||
value: {{ .Values.websocket.manager | default "redis" | quote }}
|
||||
- name: "WEBSOCKET_REDIS_URL"
|
||||
value: {{ .Values.websocket.url | quote }}
|
||||
{{- end }}
|
||||
tty: true
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
@@ -72,6 +156,10 @@ spec:
|
||||
affinity:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.topologySpreadConstraints }}
|
||||
topologySpreadConstraints:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
{{- if and .Values.persistence.enabled .Values.persistence.existingClaim }}
|
||||
- name: data
|
||||
@@ -84,4 +172,7 @@ spec:
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ include "open-webui.name" . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- with .Values.volumes }}
|
||||
{{- toYaml . | nindent 6 }}
|
||||
{{- end }}
|
||||
|
||||
290
charts/open-webui/values-gke-min.yaml
Normal file
290
charts/open-webui/values-gke-min.yaml
Normal file
@@ -0,0 +1,290 @@
|
||||
nameOverride: ""
|
||||
namespaceOverride: ""
|
||||
|
||||
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: false
|
||||
# -- 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
|
||||
# type: 'nvidia'
|
||||
# number: 1
|
||||
# models:
|
||||
# - llama3
|
||||
# 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: false
|
||||
# -- 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: []
|
||||
|
||||
websocket:
|
||||
# -- Enables websocket support in Open WebUI with env `ENABLE_WEBSOCKET_SUPPORT`
|
||||
enabled: false
|
||||
# -- Specifies the websocket manager to use with env `WEBSOCKET_MANAGER`: redis (default)
|
||||
manager: redis
|
||||
# -- Specifies the URL of the Redis instance for websocket communication. Template with `redis://[:<password>@]<hostname>:<port>/<db>`
|
||||
url: redis://open-webui-redis:6379/0
|
||||
# -- Deploys a redis
|
||||
redis:
|
||||
# -- Enable redis installation
|
||||
enabled: true
|
||||
# -- Redis name
|
||||
name: open-webui-redis
|
||||
# -- Redis labels
|
||||
labels: {}
|
||||
# -- Redis annotations
|
||||
annotations: {}
|
||||
# -- Redis image
|
||||
image:
|
||||
repository: redis
|
||||
tag: 7.4.2-alpine3.21
|
||||
pullPolicy: IfNotPresent
|
||||
# -- Redis command (overrides default)
|
||||
command: []
|
||||
# -- Redis arguments (overrides default)
|
||||
args: []
|
||||
# -- Redis resources
|
||||
resources: {}
|
||||
# -- Redis service
|
||||
service:
|
||||
# -- Redis container/target port
|
||||
containerPort: 6379
|
||||
# -- Redis service type
|
||||
type: ClusterIP
|
||||
# -- Redis service labels
|
||||
labels: {}
|
||||
# -- Redis service annotations
|
||||
annotations: {}
|
||||
# -- Redis service port
|
||||
port: 6379
|
||||
# -- Redis service node port. Valid only when type is `NodePort`
|
||||
nodePort: ""
|
||||
|
||||
# -- Deploys a Redis cluster with subchart 'redis' from bitnami
|
||||
redis-cluster:
|
||||
# -- Enable Redis installation
|
||||
enabled: false
|
||||
# -- Redis cluster name (recommended to be 'open-webui-redis')
|
||||
# - In this case, redis url will be 'redis://open-webui-redis-master:6379/0' or 'redis://[:<password>@]open-webui-redis-master:6379/0'
|
||||
fullnameOverride: open-webui-redis
|
||||
# -- Redis Authentication
|
||||
auth:
|
||||
# -- Enable Redis authentication (disabled by default). For your security, we strongly suggest that you switch to 'auth.enabled=true'
|
||||
enabled: false
|
||||
# -- Replica configuration for the Redis cluster
|
||||
replica:
|
||||
# -- Number of Redis replica instances
|
||||
replicaCount: 3
|
||||
|
||||
# -- Value of cluster domain
|
||||
clusterDomain: cluster.local
|
||||
|
||||
annotations: {}
|
||||
podAnnotations: {}
|
||||
podLabels: {}
|
||||
replicaCount: 1
|
||||
# -- Strategy for updating the workload manager: deployment or statefulset
|
||||
strategy: {}
|
||||
# -- Open WebUI image tags can be found here: https://github.com/open-webui/open-webui
|
||||
image:
|
||||
repository: ghcr.io/open-webui/open-webui
|
||||
tag: ""
|
||||
pullPolicy: "IfNotPresent"
|
||||
|
||||
serviceAccount:
|
||||
enable: true
|
||||
name: ""
|
||||
annotations: {}
|
||||
automountServiceAccountToken: false
|
||||
|
||||
# -- Configure imagePullSecrets to use private registry
|
||||
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry>
|
||||
imagePullSecrets: []
|
||||
# imagePullSecrets:
|
||||
# - name: myRegistryKeySecretName
|
||||
|
||||
# -- Probe for liveness of the Open WebUI container
|
||||
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes>
|
||||
livenessProbe: {}
|
||||
# livenessProbe:
|
||||
# httpGet:
|
||||
# path: /health
|
||||
# port: http
|
||||
# failureThreshold: 1
|
||||
# periodSeconds: 10
|
||||
|
||||
# -- Probe for readiness of the Open WebUI container
|
||||
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes>
|
||||
readinessProbe: {}
|
||||
# readinessProbe:
|
||||
# httpGet:
|
||||
# path: /health/db
|
||||
# port: http
|
||||
# failureThreshold: 1
|
||||
# periodSeconds: 10
|
||||
|
||||
# -- Probe for startup of the Open WebUI container
|
||||
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes>
|
||||
startupProbe: {}
|
||||
# startupProbe:
|
||||
# httpGet:
|
||||
# path: /health
|
||||
# port: http
|
||||
# initialDelaySeconds: 30
|
||||
# periodSeconds: 5
|
||||
# failureThreshold: 20
|
||||
|
||||
resources: {}
|
||||
|
||||
copyAppData:
|
||||
resources: {}
|
||||
|
||||
managedCertificate:
|
||||
enabled: true
|
||||
name: "mydomain-chat-cert" # You can override this name if needed
|
||||
domains:
|
||||
- chat.example.com # update to your real domain
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
class: ""
|
||||
# -- Use appropriate annotations for your Ingress controller, e.g., for NGINX:
|
||||
annotations:
|
||||
# Example for GKE Ingress
|
||||
kubernetes.io/ingress.class: "gce"
|
||||
kubernetes.io/ingress.global-static-ip-name: "open-webui-external-ip" # you need to create this address in GCP console
|
||||
# Force HTTP to redirect to HTTPS
|
||||
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
nginx.ingress.kubernetes.io/permanent-redirect: "https://chat.example.com"
|
||||
networking.gke.io/managed-certificates: "mydomain-chat-cert"
|
||||
# nginx.ingress.kubernetes.io/rewrite-target: /
|
||||
host: "chat.example.com" # update to your real domain
|
||||
additionalHosts: []
|
||||
tls: false
|
||||
existingSecret: ""
|
||||
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
|
||||
storageClass: ""
|
||||
selector: {}
|
||||
annotations: {}
|
||||
|
||||
# -- Node labels for pod assignment.
|
||||
nodeSelector: {}
|
||||
|
||||
# -- Tolerations for pod assignment
|
||||
tolerations: []
|
||||
|
||||
# -- Affinity for pod assignment
|
||||
affinity: {}
|
||||
|
||||
# -- Topology Spread Constraints for pod assignment
|
||||
topologySpreadConstraints: []
|
||||
|
||||
# -- Service values to expose Open WebUI pods to cluster
|
||||
service:
|
||||
type: LoadBalancer # changed from ClusterIP to LoadBalancer for external access on GKE
|
||||
annotations: {}
|
||||
port: 80
|
||||
containerPort: 8080
|
||||
nodePort: ""
|
||||
labels: {}
|
||||
loadBalancerClass: ""
|
||||
|
||||
# -- 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"
|
||||
|
||||
# -- Extra resources to deploy with Open WebUI
|
||||
extraResources:
|
||||
[]
|
||||
# - apiVersion: v1
|
||||
# kind: ConfigMap
|
||||
# metadata:
|
||||
# name: example-configmap
|
||||
# data:
|
||||
# example-key: example-value
|
||||
@@ -1,4 +1,5 @@
|
||||
nameOverride: ""
|
||||
namespaceOverride: ""
|
||||
|
||||
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
|
||||
@@ -12,45 +13,176 @@ ollama:
|
||||
# type: 'nvidia'
|
||||
# number: 1
|
||||
# models:
|
||||
# - llama3
|
||||
# pull:
|
||||
# - llama3
|
||||
# run:
|
||||
# - llama3
|
||||
# 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
|
||||
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
|
||||
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: []
|
||||
|
||||
websocket:
|
||||
# -- Enables websocket support in Open WebUI with env `ENABLE_WEBSOCKET_SUPPORT`
|
||||
enabled: false
|
||||
# -- Specifies the websocket manager to use with env `WEBSOCKET_MANAGER`: redis (default)
|
||||
manager: redis
|
||||
# -- Specifies the URL of the Redis instance for websocket communication. Template with `redis://[:<password>@]<hostname>:<port>/<db>`
|
||||
url: redis://open-webui-redis:6379/0
|
||||
# -- Deploys a redis
|
||||
redis:
|
||||
# -- Enable redis installation
|
||||
enabled: true
|
||||
# -- Redis name
|
||||
name: open-webui-redis
|
||||
# -- Redis labels
|
||||
labels: {}
|
||||
# -- Redis annotations
|
||||
annotations: {}
|
||||
# -- Redis pod
|
||||
pods:
|
||||
# -- Redis pod annotations
|
||||
annotations: {}
|
||||
# -- Redis image
|
||||
image:
|
||||
repository: redis
|
||||
tag: 7.4.2-alpine3.21
|
||||
pullPolicy: IfNotPresent
|
||||
# -- Redis command (overrides default)
|
||||
command: []
|
||||
# -- Redis arguments (overrides default)
|
||||
args: []
|
||||
# -- Redis resources
|
||||
resources: {}
|
||||
# -- Redis service
|
||||
service:
|
||||
# -- Redis container/target port
|
||||
containerPort: 6379
|
||||
# -- Redis service type
|
||||
type: ClusterIP
|
||||
# -- Redis service labels
|
||||
labels: {}
|
||||
# -- Redis service annotations
|
||||
annotations: {}
|
||||
# -- Redis service port
|
||||
port: 6379
|
||||
# -- Redis service node port. Valid only when type is `NodePort`
|
||||
nodePort: ""
|
||||
|
||||
# -- Deploys a Redis cluster with subchart 'redis' from bitnami
|
||||
redis-cluster:
|
||||
# -- Enable Redis installation
|
||||
enabled: false
|
||||
# -- Redis cluster name (recommended to be 'open-webui-redis')
|
||||
# - In this case, redis url will be 'redis://open-webui-redis-master:6379/0' or 'redis://[:<password>@]open-webui-redis-master:6379/0'
|
||||
fullnameOverride: open-webui-redis
|
||||
# -- Redis Authentication
|
||||
auth:
|
||||
# -- Enable Redis authentication (disabled by default). For your security, we strongly suggest that you switch to 'auth.enabled=true'
|
||||
enabled: false
|
||||
# -- Replica configuration for the Redis cluster
|
||||
replica:
|
||||
# -- Number of Redis replica instances
|
||||
replicaCount: 3
|
||||
|
||||
# -- Value of cluster domain
|
||||
clusterDomain: cluster.local
|
||||
|
||||
annotations: {}
|
||||
podAnnotations: {}
|
||||
podLabels: {}
|
||||
replicaCount: 1
|
||||
# -- Open WebUI image tags can be found here: https://github.com/open-webui/open-webui/pkgs/container/open-webui
|
||||
# -- Strategy for updating the workload manager: deployment or statefulset
|
||||
strategy: {}
|
||||
# -- Open WebUI image tags can be found here: https://github.com/open-webui/open-webui
|
||||
image:
|
||||
repository: ghcr.io/open-webui/open-webui
|
||||
tag: "latest"
|
||||
pullPolicy: Always
|
||||
tag: ""
|
||||
pullPolicy: "IfNotPresent"
|
||||
|
||||
serviceAccount:
|
||||
enable: true
|
||||
name: ""
|
||||
annotations: {}
|
||||
automountServiceAccountToken: false
|
||||
|
||||
# -- Configure imagePullSecrets to use private registry
|
||||
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry>
|
||||
imagePullSecrets: []
|
||||
# imagePullSecrets:
|
||||
# - name: myRegistryKeySecretName
|
||||
|
||||
# -- Probe for liveness of the Open WebUI container
|
||||
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes>
|
||||
livenessProbe: {}
|
||||
# livenessProbe:
|
||||
# httpGet:
|
||||
# path: /health
|
||||
# port: http
|
||||
# failureThreshold: 1
|
||||
# periodSeconds: 10
|
||||
|
||||
# -- Probe for readiness of the Open WebUI container
|
||||
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes>
|
||||
readinessProbe: {}
|
||||
# readinessProbe:
|
||||
# httpGet:
|
||||
# path: /health/db
|
||||
# port: http
|
||||
# failureThreshold: 1
|
||||
# periodSeconds: 10
|
||||
|
||||
# -- Probe for startup of the Open WebUI container
|
||||
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes>
|
||||
startupProbe: {}
|
||||
# startupProbe:
|
||||
# httpGet:
|
||||
# path: /health
|
||||
# port: http
|
||||
# initialDelaySeconds: 30
|
||||
# periodSeconds: 5
|
||||
# failureThreshold: 20
|
||||
|
||||
resources: {}
|
||||
|
||||
copyAppData:
|
||||
resources: {}
|
||||
|
||||
managedCertificate:
|
||||
enabled: false
|
||||
name: "mydomain-chat-cert" # You can override this name if needed
|
||||
domains:
|
||||
- chat.example.com # update to your real domain
|
||||
|
||||
ingress:
|
||||
enabled: false
|
||||
class: ""
|
||||
# -- Use appropriate annotations for your Ingress controller, e.g., for NGINX:
|
||||
# nginx.ingress.kubernetes.io/rewrite-target: /
|
||||
# -- Use appropriate annotations for your Ingress controller, e.g., for NGINX:
|
||||
annotations: {}
|
||||
host: ""
|
||||
# # Example for GKE Ingress
|
||||
# kubernetes.io/ingress.class: "gce"
|
||||
# kubernetes.io/ingress.global-static-ip-name: "open-webui-external-ip" # you need to create this address in GCP console
|
||||
# # Force HTTP to redirect to HTTPS
|
||||
# nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||
# nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
# nginx.ingress.kubernetes.io/permanent-redirect: "https://chat.example.com"
|
||||
# networking.gke.io/managed-certificates: "mydomain-chat-cert"
|
||||
# # nginx.ingress.kubernetes.io/rewrite-target: /
|
||||
host: "chat.example.com" # update to your real domain
|
||||
additionalHosts: []
|
||||
tls: false
|
||||
existingSecret: ""
|
||||
persistence:
|
||||
@@ -58,6 +190,8 @@ persistence:
|
||||
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
|
||||
@@ -74,6 +208,9 @@ 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
|
||||
@@ -87,8 +224,15 @@ service:
|
||||
# -- 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/
|
||||
# -- 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:
|
||||
@@ -96,3 +240,58 @@ extraEnvVars:
|
||||
# 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"
|
||||
|
||||
# -- Extra resources to deploy with Open WebUI
|
||||
extraResources:
|
||||
[]
|
||||
# - apiVersion: v1
|
||||
# kind: ConfigMap
|
||||
# metadata:
|
||||
# name: example-configmap
|
||||
# data:
|
||||
# example-key: example-value
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
apiVersion: v2
|
||||
name: pipelines
|
||||
version: 0.0.3
|
||||
version: 0.1.0
|
||||
appVersion: "alpha"
|
||||
|
||||
home: https://github.com/open-webui/pipelines
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# pipelines
|
||||
|
||||
 
|
||||
 
|
||||
|
||||
Pipelines: UI-Agnostic OpenAI API Plugin Framework
|
||||
|
||||
@@ -35,9 +35,11 @@ helm upgrade --install open-webui open-webui/pipelines
|
||||
| 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 |
|
||||
| extraResources | list | `[]` | Extra resources to deploy with Open WebUI Pipelines |
|
||||
| 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` | |
|
||||
@@ -45,6 +47,7 @@ helm upgrade --install open-webui open-webui/pipelines
|
||||
| ingress.host | string | `""` | |
|
||||
| ingress.tls | bool | `false` | |
|
||||
| nameOverride | string | `""` | |
|
||||
| namespaceOverride | 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 | `{}` | |
|
||||
@@ -54,6 +57,7 @@ helm upgrade --install open-webui open-webui/pipelines
|
||||
| persistence.size | string | `"2Gi"` | |
|
||||
| persistence.storageClass | string | `""` | |
|
||||
| podAnnotations | object | `{}` | |
|
||||
| podLabels | object | `{}` | |
|
||||
| replicaCount | int | `1` | |
|
||||
| resources | object | `{}` | |
|
||||
| service.annotations | object | `{}` | |
|
||||
@@ -63,6 +67,8 @@ helm upgrade --install open-webui open-webui/pipelines
|
||||
| service.nodePort | string | `""` | |
|
||||
| service.port | int | `9099` | |
|
||||
| service.type | string | `"ClusterIP"` | |
|
||||
| serviceAccount.automountServiceAccountToken | bool | `false` | |
|
||||
| serviceAccount.enable | bool | `true` | |
|
||||
| tolerations | list | `[]` | Tolerations for pod assignment |
|
||||
|
||||
----------------------------------------------
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
{{/*
|
||||
Allow the release namespace to be overridden for multi-namespace deployments in combined charts
|
||||
*/}}
|
||||
{{- define "pipelines.namespace" -}}
|
||||
{{- if .Values.namespaceOverride -}}
|
||||
{{- .Values.namespaceOverride -}}
|
||||
{{- else -}}
|
||||
{{- .Release.Namespace -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Set the name of the Pipelines resources
|
||||
*/}}
|
||||
|
||||
@@ -2,6 +2,7 @@ apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "pipelines.name" . }}
|
||||
namespace: {{ include "pipelines.namespace" . }}
|
||||
labels:
|
||||
{{- include "pipelines.labels" . | nindent 4 }}
|
||||
{{- with .Values.annotations }}
|
||||
@@ -17,13 +18,23 @@ spec:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "pipelines.labels" . | nindent 8 }}
|
||||
{{- with .Values.podLabels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.podAnnotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
enableServiceLinks: false
|
||||
automountServiceAccountToken: false
|
||||
automountServiceAccountToken: {{ .Values.serviceAccount.automountServiceAccountToken | default false }}
|
||||
{{- if .Values.serviceAccount.enable }}
|
||||
serviceAccountName: {{ .Values.serviceAccount.name | default (include "pipelines.name" .) }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
{{- with .Values.image }}
|
||||
@@ -38,7 +49,7 @@ spec:
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
- name: data
|
||||
mountPath: /app/backend/data
|
||||
mountPath: /app/pipelines
|
||||
env:
|
||||
{{- if .Values.extraEnvVars }}
|
||||
{{- toYaml .Values.extraEnvVars | nindent 8 }}
|
||||
@@ -68,4 +79,4 @@ spec:
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ include "pipelines.name" . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
6
charts/pipelines/templates/extra-resources.yaml
Normal file
6
charts/pipelines/templates/extra-resources.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
{{- if .Values.extraResources }}
|
||||
{{- range .Values.extraResources }}
|
||||
---
|
||||
{{ toYaml . | nindent 0 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -3,6 +3,7 @@ apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: {{ include "pipelines.name" . }}
|
||||
namespace: {{ include "pipelines.namespace" . }}
|
||||
labels:
|
||||
{{- include "pipelines.selectorLabels" . | nindent 4 }}
|
||||
{{- with .Values.persistence.annotations }}
|
||||
|
||||
13
charts/pipelines/templates/service-account.yaml
Normal file
13
charts/pipelines/templates/service-account.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
{{- if .Values.serviceAccount.enable }}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ .Values.serviceAccount.name | default (include "pipelines.name" .) }}
|
||||
namespace: {{ include "pipelines.namespace" . }}
|
||||
labels:
|
||||
{{- include "pipelines.labels" . | nindent 4 }}
|
||||
{{- with .Values.serviceAccount.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -2,6 +2,7 @@ apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "pipelines.name" . }}
|
||||
namespace: {{ include "pipelines.namespace" . }}
|
||||
labels:
|
||||
{{- include "pipelines.labels" . | nindent 4 }}
|
||||
{{- with .Values.service.labels }}
|
||||
|
||||
@@ -1,15 +1,24 @@
|
||||
nameOverride: ""
|
||||
namespaceOverride: ""
|
||||
|
||||
# -- Value of cluster domain
|
||||
clusterDomain: cluster.local
|
||||
|
||||
annotations: {}
|
||||
podAnnotations: {}
|
||||
podLabels: {}
|
||||
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
|
||||
@@ -31,6 +40,10 @@ persistence:
|
||||
selector: {}
|
||||
annotations: {}
|
||||
|
||||
serviceAccount:
|
||||
enable: true
|
||||
automountServiceAccountToken: false
|
||||
|
||||
# -- Node labels for pod assignment.
|
||||
nodeSelector: {}
|
||||
|
||||
@@ -54,6 +67,11 @@ 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"
|
||||
@@ -69,3 +87,13 @@ extraEnvVars:
|
||||
# key: secret-key
|
||||
# - name: LANGFUSE_HOST
|
||||
# value: https://us.cloud.langfuse.com
|
||||
|
||||
# -- Extra resources to deploy with Open WebUI Pipelines
|
||||
extraResources:
|
||||
[]
|
||||
# - apiVersion: v1
|
||||
# kind: ConfigMap
|
||||
# metadata:
|
||||
# name: example-configmap
|
||||
# data:
|
||||
# example-key: example-value
|
||||
|
||||
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