-
Notifications
You must be signed in to change notification settings - Fork 62
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #26 from 0xThresh/feat-pipelines
Add Pipelines chart
- Loading branch information
Showing
8 changed files
with
353 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
apiVersion: v2 | ||
name: pipelines | ||
version: 0.0.1 | ||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
# pipelines | ||
|
||
![Version: 0.0.1](https://img.shields.io/badge/Version-0.0.1-informational?style=flat-square) ![AppVersion: alpha](https://img.shields.io/badge/AppVersion-alpha-informational?style=flat-square) | ||
|
||
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"` | | | ||
| 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/). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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/). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
{{- define "pipelines.name" -}} | ||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} | ||
{{- end -}} | ||
|
||
{{- define "chart.name" -}} | ||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} | ||
{{- end }} | ||
|
||
{{- 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 }} | ||
|
||
{{- define "base.selectorLabels" -}} | ||
app.kubernetes.io/instance: {{ .Release.Name }} | ||
{{- end -}} | ||
|
||
{{- define "pipelines.selectorLabels" -}} | ||
{{ include "base.selectorLabels" . }} | ||
app.kubernetes.io/component: {{ .Chart.Name }} | ||
{{- end }} | ||
|
||
{{- define "pipelines.labels" -}} | ||
{{ include "base.labels" . }} | ||
{{ include "pipelines.selectorLabels" . }} | ||
{{- end }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
apiVersion: apps/v1 | ||
kind: Deployment | ||
metadata: | ||
name: {{ include "pipelines.name" . }} | ||
labels: | ||
{{- include "pipelines.labels" . | nindent 4 }} | ||
{{- with .Values.annotations }} | ||
annotations: | ||
{{- toYaml . | nindent 4 }} | ||
{{- end }} | ||
spec: | ||
replicas: {{ .Values.replicaCount }} | ||
selector: | ||
matchLabels: | ||
{{- include "pipelines.selectorLabels" . | nindent 6 }} | ||
template: | ||
metadata: | ||
labels: | ||
{{- include "pipelines.labels" . | nindent 8 }} | ||
{{- with .Values.podAnnotations }} | ||
annotations: | ||
{{- toYaml . | nindent 8 }} | ||
{{- end }} | ||
spec: | ||
enableServiceLinks: false | ||
automountServiceAccountToken: false | ||
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 }} | ||
volumeMounts: | ||
- name: data | ||
mountPath: /app/backend/data | ||
env: | ||
{{- if .Values.extraEnvVars }} | ||
{{- toYaml .Values.extraEnvVars | nindent 8 }} | ||
{{- 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 }} | ||
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 "pipelines.name" . }} | ||
{{- end }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 }} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
nameOverride: "" | ||
|
||
# -- Value of cluster domain | ||
clusterDomain: cluster.local | ||
|
||
annotations: {} | ||
podAnnotations: {} | ||
replicaCount: 1 | ||
image: | ||
repository: ghcr.io/open-webui/pipelines | ||
tag: main | ||
pullPolicy: Always | ||
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" | ||
# -- 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 |