9 Commits

Author SHA1 Message Date
d20647c855 Update renovate/renovate Docker tag to v43.39.2 2026-02-26 00:00:50 +00:00
c7bc79f574 add Qwen3-Coder-Next model 2026-02-26 00:10:53 +01:00
6cba277b9d update llama-swap image 2026-02-25 19:07:10 +01:00
1ca79d5262 disable built in open-webui ingress 2026-02-25 18:20:27 +01:00
95ca2aa54f increase openwebui storage to 10Gi 2026-02-25 17:41:23 +01:00
bfb089aeff migrate llama models to ssd 2026-02-25 16:03:12 +01:00
ed83a66a83 add ssd volume for llama models 2026-02-25 15:43:42 +01:00
0d6c67fc27 add lvmpv ssd storage class 2026-02-25 15:23:55 +01:00
fa7b35326c add openwebui 2026-02-25 15:21:04 +01:00
14 changed files with 239 additions and 14 deletions

View File

@@ -10,3 +10,4 @@ resources:
- nas
- searxng
- ispeak3
- openwebui

View File

@@ -465,4 +465,19 @@ models:
--frequency-penalty 0.5
--presence-penalty 0.4
--no-warmup
--port ${PORT}
--port ${PORT}
"Qwen3-Coder-Next-GGUF:Q4_K_M":
ttl: 600
cmd: |
/app/llama-server
-hf unsloth/Qwen3-Coder-Next-GGUF:Q4_K_M
--ctx-size 32768
--predict 8192
--temp 1.0
--min-p 0.01
--top-p 0.95
--top-k 40
--repeat-penalty 1.0
--no-warmup
--port ${PORT}

View File

@@ -16,7 +16,8 @@ spec:
spec:
containers:
- name: llama-swap
image: ghcr.io/mostlygeek/llama-swap:v172-vulkan-b7062
# TODO: make renovate update the image tag
image: ghcr.io/mostlygeek/llama-swap:v195-vulkan-b8148
imagePullPolicy: IfNotPresent
command:
- /app/llama-swap
@@ -41,7 +42,7 @@ spec:
volumes:
- name: models
persistentVolumeClaim:
claimName: llama-models-lvmhdd
claimName: llama-models-lvmssd
- name: kfd
hostPath:
path: /dev/kfd

View File

@@ -5,7 +5,7 @@ resources:
- secret.yaml
- auth-proxy.yaml
- ingress.yaml
- pvc.yaml
- pvc-ssd.yaml
- deployment.yaml
configMapGenerator:
- name: llama-swap

46
apps/llama/pvc-ssd.yaml Normal file
View File

@@ -0,0 +1,46 @@
---
apiVersion: local.openebs.io/v1alpha1
kind: LVMVolume
metadata:
labels:
kubernetes.io/nodename: anapistula-delrosalae
name: llama-models-lvmssd
namespace: openebs
spec:
capacity: 200Gi
ownerNodeID: anapistula-delrosalae
shared: "yes"
thinProvision: "no"
vgPattern: ^openebs-ssd$
volGroup: openebs-ssd
---
kind: PersistentVolume
apiVersion: v1
metadata:
name: llama-models-lvmssd
spec:
capacity:
storage: 200Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: ssd-lvmpv
volumeMode: Filesystem
csi:
driver: local.csi.openebs.io
fsType: btrfs
volumeHandle: llama-models-lvmssd
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: llama-models-lvmssd
namespace: llama
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 200Gi
storageClassName: ssd-lvmpv
volumeName: llama-models-lvmssd

View File

@@ -0,0 +1,44 @@
---
apiVersion: v1
kind: Service
metadata:
namespace: openwebui
name: openwebui-web
spec:
type: ClusterIP
selector:
app.kubernetes.io/component: open-webui
app.kubernetes.io/instance: openwebui
ports:
- name: http
port: 80
targetPort: 8080
protocol: TCP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
namespace: openwebui
name: openwebui
annotations:
cert-manager.io/cluster-issuer: letsencrypt
nginx.ingress.kubernetes.io/proxy-body-size: "0"
nginx.ingress.kubernetes.io/proxy-buffering: "false"
nginx.ingress.kubernetes.io/proxy-read-timeout: 30m
spec:
ingressClassName: nginx-ingress
rules:
- host: openwebui.lumpiasty.xyz
http:
paths:
- backend:
service:
name: openwebui-web
port:
number: 80
path: /
pathType: Prefix
tls:
- hosts:
- openwebui.lumpiasty.xyz
secretName: openwebui-ingress

View File

@@ -0,0 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- namespace.yaml
- pvc.yaml
- pvc-pipelines.yaml
- release.yaml
- ingress.yaml

View File

@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: openwebui

View File

@@ -0,0 +1,46 @@
---
apiVersion: local.openebs.io/v1alpha1
kind: LVMVolume
metadata:
labels:
kubernetes.io/nodename: anapistula-delrosalae
name: openwebui-pipelines-lvmhdd
namespace: openebs
spec:
capacity: 1Gi
ownerNodeID: anapistula-delrosalae
shared: "yes"
thinProvision: "no"
vgPattern: ^openebs-hdd$
volGroup: openebs-hdd
---
kind: PersistentVolume
apiVersion: v1
metadata:
name: openwebui-pipelines-lvmhdd
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: hdd-lvmpv
volumeMode: Filesystem
csi:
driver: local.csi.openebs.io
fsType: btrfs
volumeHandle: openwebui-pipelines-lvmhdd
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: openwebui-pipelines-lvmhdd
namespace: openwebui
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: hdd-lvmpv
volumeName: openwebui-pipelines-lvmhdd

View File

@@ -4,10 +4,10 @@ kind: LVMVolume
metadata:
labels:
kubernetes.io/nodename: anapistula-delrosalae
name: llama-models-lvmhdd
name: openwebui-lvmhdd
namespace: openebs
spec:
capacity: 200Gi
capacity: 10Gi
ownerNodeID: anapistula-delrosalae
shared: "yes"
thinProvision: "no"
@@ -17,10 +17,10 @@ spec:
kind: PersistentVolume
apiVersion: v1
metadata:
name: llama-models-lvmhdd
name: openwebui-lvmhdd
spec:
capacity:
storage: 200Gi
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
@@ -29,18 +29,18 @@ spec:
csi:
driver: local.csi.openebs.io
fsType: btrfs
volumeHandle: llama-models-lvmhdd
volumeHandle: openwebui-lvmhdd
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: llama-models-lvmhdd
namespace: llama
name: openwebui-lvmhdd
namespace: openwebui
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 200Gi
storage: 10Gi
storageClassName: hdd-lvmpv
volumeName: llama-models-lvmhdd
volumeName: openwebui-lvmhdd

View File

@@ -0,0 +1,46 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: open-webui
namespace: openwebui
spec:
interval: 24h
url: https://open-webui.github.io/helm-charts
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: openwebui
namespace: openwebui
spec:
interval: 30m
chart:
spec:
chart: open-webui
version: 12.5.0
sourceRef:
kind: HelmRepository
name: open-webui
values:
# Disable built in ingress, service is broken in chart
# They have hard coded wrong target port
# Reimplementing that in ingress.yaml
ingress:
enabled: false
persistence:
enabled: true
existingClaim: openwebui-lvmhdd
enableOpenaiApi: true
openaiBaseApiUrl: "http://llama.llama.svc.cluster.local:11434/v1"
ollama:
enabled: false
pipelines:
enabled: true
persistence:
enabled: true
existingClaim: openwebui-pipelines-lvmhdd

View File

@@ -15,7 +15,7 @@ spec:
- name: renovate
# Update this to the latest available and then enable Renovate on
# the manifest
image: renovate/renovate:43.31.1-full
image: renovate/renovate:43.39.2-full
envFrom:
- secretRef:
name: renovate-gitea-token

View File

@@ -0,0 +1,13 @@
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ssd-lvmpv
parameters:
storage: "lvm"
volgroup: "openebs-ssd"
fsType: "btrfs"
shared: "yes"
provisioner: local.csi.openebs.io
allowVolumeExpansion: true
volumeBindingMode: Immediate

View File

@@ -18,6 +18,7 @@ resources:
- configs/bgp-cluster-config.yaml
- configs/loadbalancer-ippool.yaml
- configs/lvmpv-hdd-sc.yaml
- configs/lvmpv-ssd-sc.yaml
- configs/openbao-cert.yaml
- configs/ovh-cert-manager-secret.yaml