split ollama deployment to files
This commit is contained in:
@@ -3,5 +3,5 @@ kind: Kustomization
|
|||||||
resources:
|
resources:
|
||||||
- gitea
|
- gitea
|
||||||
- renovate.yaml
|
- renovate.yaml
|
||||||
- ollama.yaml
|
- ollama
|
||||||
- librechat.yaml
|
- librechat.yaml
|
||||||
|
|||||||
157
apps/ollama.yaml
157
apps/ollama.yaml
@@ -1,157 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: ollama
|
|
||||||
---
|
|
||||||
apiVersion: source.toolkit.fluxcd.io/v1
|
|
||||||
kind: HelmRepository
|
|
||||||
metadata:
|
|
||||||
name: ollama-helm
|
|
||||||
namespace: ollama
|
|
||||||
spec:
|
|
||||||
interval: 24h
|
|
||||||
url: https://otwld.github.io/ollama-helm/
|
|
||||||
---
|
|
||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: ollama
|
|
||||||
namespace: ollama
|
|
||||||
spec:
|
|
||||||
interval: 30m
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: ollama
|
|
||||||
version: 1.13.0
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: ollama-helm
|
|
||||||
namespace: ollama
|
|
||||||
interval: 12h
|
|
||||||
values:
|
|
||||||
ollama:
|
|
||||||
gpu:
|
|
||||||
enabled: false
|
|
||||||
persistentVolume:
|
|
||||||
enabled: true
|
|
||||||
storageClass: mayastor-single-hdd
|
|
||||||
size: 200Gi
|
|
||||||
# GPU support
|
|
||||||
# Rewrite of options in
|
|
||||||
# https://hub.docker.com/r/grinco/ollama-amd-apu
|
|
||||||
image:
|
|
||||||
repository: grinco/ollama-amd-apu
|
|
||||||
tag: vulkan
|
|
||||||
securityContext:
|
|
||||||
# Not ideal
|
|
||||||
privileged: true
|
|
||||||
capabilities:
|
|
||||||
add:
|
|
||||||
- PERFMON
|
|
||||||
volumeMounts:
|
|
||||||
- name: kfd
|
|
||||||
mountPath: /dev/kfd
|
|
||||||
- name: dri
|
|
||||||
mountPath: /dev/dri
|
|
||||||
volumes:
|
|
||||||
- name: kfd
|
|
||||||
hostPath:
|
|
||||||
path: /dev/kfd
|
|
||||||
type: CharDevice
|
|
||||||
- name: dri
|
|
||||||
hostPath:
|
|
||||||
path: /dev/dri
|
|
||||||
type: Directory
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: ollama-proxy
|
|
||||||
namespace: ollama
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app.kubernetes.io/name: ollama-proxy
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: ollama-proxy
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: caddy
|
|
||||||
image: caddy:2.9.1-alpine
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /etc/caddy
|
|
||||||
name: proxy-config
|
|
||||||
env:
|
|
||||||
- name: API_KEY
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: ollama-api-key
|
|
||||||
key: API_KEY
|
|
||||||
volumes:
|
|
||||||
- name: proxy-config
|
|
||||||
configMap:
|
|
||||||
name: ollama-proxy-config
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
namespace: ollama
|
|
||||||
name: ollama-proxy-config
|
|
||||||
data:
|
|
||||||
Caddyfile: |
|
|
||||||
http://ollama.lumpiasty.xyz {
|
|
||||||
|
|
||||||
@requireAuth {
|
|
||||||
not header Authorization "Bearer {env.API_KEY}"
|
|
||||||
}
|
|
||||||
|
|
||||||
respond @requireAuth "Unauthorized" 401
|
|
||||||
|
|
||||||
reverse_proxy ollama:11434
|
|
||||||
}
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
namespace: ollama
|
|
||||||
name: ollama-proxy
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
selector:
|
|
||||||
app.kubernetes.io/name: ollama-proxy
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
port: 80
|
|
||||||
targetPort: 80
|
|
||||||
protocol: TCP
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
namespace: ollama
|
|
||||||
name: ollama
|
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: letsencrypt
|
|
||||||
acme.cert-manager.io/http01-edit-in-place: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
rules:
|
|
||||||
- host: ollama.lumpiasty.xyz
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- backend:
|
|
||||||
service:
|
|
||||||
name: ollama-proxy
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
path: /
|
|
||||||
pathType: Prefix
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- ollama.lumpiasty.xyz
|
|
||||||
secretName: ollama-ingress
|
|
||||||
66
apps/ollama/auth-proxy.yaml
Normal file
66
apps/ollama/auth-proxy.yaml
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: ollama-proxy
|
||||||
|
namespace: ollama
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: ollama-proxy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: ollama-proxy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: caddy
|
||||||
|
image: caddy:2.9.1-alpine
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /etc/caddy
|
||||||
|
name: proxy-config
|
||||||
|
env:
|
||||||
|
- name: API_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: ollama-api-key
|
||||||
|
key: API_KEY
|
||||||
|
volumes:
|
||||||
|
- name: proxy-config
|
||||||
|
configMap:
|
||||||
|
name: ollama-proxy-config
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
namespace: ollama
|
||||||
|
name: ollama-proxy-config
|
||||||
|
data:
|
||||||
|
Caddyfile: |
|
||||||
|
http://ollama.lumpiasty.xyz {
|
||||||
|
|
||||||
|
@requireAuth {
|
||||||
|
not header Authorization "Bearer {env.API_KEY}"
|
||||||
|
}
|
||||||
|
|
||||||
|
respond @requireAuth "Unauthorized" 401
|
||||||
|
|
||||||
|
reverse_proxy ollama:11434
|
||||||
|
}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
namespace: ollama
|
||||||
|
name: ollama-proxy
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: ollama-proxy
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 80
|
||||||
|
targetPort: 80
|
||||||
|
protocol: TCP
|
||||||
26
apps/ollama/ingress.yaml
Normal file
26
apps/ollama/ingress.yaml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
namespace: ollama
|
||||||
|
name: ollama
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt
|
||||||
|
acme.cert-manager.io/http01-edit-in-place: "true"
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
|
rules:
|
||||||
|
- host: ollama.lumpiasty.xyz
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- backend:
|
||||||
|
service:
|
||||||
|
name: ollama-proxy
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
path: /
|
||||||
|
pathType: Prefix
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- ollama.lumpiasty.xyz
|
||||||
|
secretName: ollama-ingress
|
||||||
7
apps/ollama/kustomization.yaml
Normal file
7
apps/ollama/kustomization.yaml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- namespace.yaml
|
||||||
|
- release.yaml
|
||||||
|
- auth-proxy.yaml
|
||||||
|
- ingress.yaml
|
||||||
5
apps/ollama/namespace.yaml
Normal file
5
apps/ollama/namespace.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: ollama
|
||||||
60
apps/ollama/release.yaml
Normal file
60
apps/ollama/release.yaml
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
---
|
||||||
|
apiVersion: source.toolkit.fluxcd.io/v1
|
||||||
|
kind: HelmRepository
|
||||||
|
metadata:
|
||||||
|
name: ollama-helm
|
||||||
|
namespace: ollama
|
||||||
|
spec:
|
||||||
|
interval: 24h
|
||||||
|
url: https://otwld.github.io/ollama-helm/
|
||||||
|
---
|
||||||
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||||
|
kind: HelmRelease
|
||||||
|
metadata:
|
||||||
|
name: ollama
|
||||||
|
namespace: ollama
|
||||||
|
spec:
|
||||||
|
interval: 30m
|
||||||
|
chart:
|
||||||
|
spec:
|
||||||
|
chart: ollama
|
||||||
|
version: 1.13.0
|
||||||
|
sourceRef:
|
||||||
|
kind: HelmRepository
|
||||||
|
name: ollama-helm
|
||||||
|
namespace: ollama
|
||||||
|
interval: 12h
|
||||||
|
values:
|
||||||
|
ollama:
|
||||||
|
gpu:
|
||||||
|
enabled: false
|
||||||
|
persistentVolume:
|
||||||
|
enabled: true
|
||||||
|
storageClass: mayastor-single-hdd
|
||||||
|
size: 200Gi
|
||||||
|
# GPU support
|
||||||
|
# Rewrite of options in
|
||||||
|
# https://hub.docker.com/r/grinco/ollama-amd-apu
|
||||||
|
image:
|
||||||
|
repository: grinco/ollama-amd-apu
|
||||||
|
tag: vulkan
|
||||||
|
securityContext:
|
||||||
|
# Not ideal
|
||||||
|
privileged: true
|
||||||
|
capabilities:
|
||||||
|
add:
|
||||||
|
- PERFMON
|
||||||
|
volumeMounts:
|
||||||
|
- name: kfd
|
||||||
|
mountPath: /dev/kfd
|
||||||
|
- name: dri
|
||||||
|
mountPath: /dev/dri
|
||||||
|
volumes:
|
||||||
|
- name: kfd
|
||||||
|
hostPath:
|
||||||
|
path: /dev/kfd
|
||||||
|
type: CharDevice
|
||||||
|
- name: dri
|
||||||
|
hostPath:
|
||||||
|
path: /dev/dri
|
||||||
|
type: Directory
|
||||||
Reference in New Issue
Block a user