Merge pull request #88 from MealCraft/feature/deploy_chaptgpt
Feature/deploy chaptgpt
This commit is contained in:
commit
de2ea14ddb
7 changed files with 156 additions and 10 deletions
35
ollama/ollama.yaml
Normal file
35
ollama/ollama.yaml
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: dev-juntekim-service
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 11434
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Endpoints
|
||||
metadata:
|
||||
name: dev-juntekim-service
|
||||
subsets:
|
||||
- addresses:
|
||||
- ip: 192.168.0.96 # ollama machine
|
||||
ports:
|
||||
- port: 11434
|
||||
---
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: dev-juntekim-ingress
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`ollama.juntekim.com`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: dev-juntekim-service
|
||||
port: 80
|
||||
tls:
|
||||
certResolver: myresolver
|
||||
49
open-webui/open-webui-deployment.yml
Normal file
49
open-webui/open-webui-deployment.yml
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: open-webui
|
||||
namespace: default
|
||||
labels:
|
||||
app: open-webui
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: open-webui
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: open-webui
|
||||
spec:
|
||||
nodeSelector:
|
||||
kubernetes.io/hostname: mist
|
||||
containers:
|
||||
- name: open-webui
|
||||
image: ghcr.io/open-webui/open-webui:main
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8080
|
||||
env:
|
||||
- name: OLLAMA_BASE_URL
|
||||
value: "https://ollama.juntekim.com"
|
||||
- name: ENABLE_SIGNUP
|
||||
value: "true"
|
||||
- name: DEFAULT_MODELS
|
||||
value: ""
|
||||
- name: DEFAULT_USER_ROLE
|
||||
value: "user"
|
||||
resources:
|
||||
requests:
|
||||
memory: "512Mi"
|
||||
cpu: "250m"
|
||||
limits:
|
||||
memory: "2Gi"
|
||||
cpu: "1000m"
|
||||
volumeMounts:
|
||||
- name: open-webui-data
|
||||
mountPath: /app/backend/data
|
||||
volumes:
|
||||
- name: open-webui-data
|
||||
persistentVolumeClaim:
|
||||
claimName: open-webui-data-pvc
|
||||
19
open-webui/open-webui-ingressroute.yml
Normal file
19
open-webui/open-webui-ingressroute.yml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: open-webui
|
||||
namespace: default
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`chatgpt.juntekim.com`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: open-webui
|
||||
port: 80
|
||||
tls:
|
||||
certResolver: myresolver
|
||||
domains:
|
||||
- main: chatgpt.juntekim.com
|
||||
22
open-webui/open-webui-pv.yml
Normal file
22
open-webui/open-webui-pv.yml
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: open-webui-data-pv
|
||||
spec:
|
||||
capacity:
|
||||
storage: 2Gi
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
persistentVolumeReclaimPolicy: Retain
|
||||
storageClassName: local-path
|
||||
local:
|
||||
path: /home/kimjunte/open-ai
|
||||
nodeAffinity:
|
||||
required:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: kubernetes.io/hostname
|
||||
operator: In
|
||||
values:
|
||||
- mist
|
||||
13
open-webui/open-webui-pvc.yml
Normal file
13
open-webui/open-webui-pvc.yml
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: open-webui-data-pvc
|
||||
namespace: default
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 2Gi
|
||||
storageClassName: local-path
|
||||
15
open-webui/open-webui-service.yml
Normal file
15
open-webui/open-webui-service.yml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: open-webui
|
||||
namespace: default
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- protocol: TCP
|
||||
name: http
|
||||
port: 80
|
||||
targetPort: 8080
|
||||
selector:
|
||||
app: open-webui
|
||||
|
|
@ -14,6 +14,8 @@ spec:
|
|||
app: traefik
|
||||
spec:
|
||||
serviceAccountName: traefik-ingress-controller
|
||||
nodeSelector:
|
||||
kubernetes.io/hostname: mist
|
||||
volumes:
|
||||
- name: acme
|
||||
persistentVolumeClaim:
|
||||
|
|
@ -36,24 +38,15 @@ spec:
|
|||
- "--api.insecure=true"
|
||||
- "--entrypoints.web.address=:80"
|
||||
- "--entrypoints.websecure.address=:443"
|
||||
|
||||
# Redirect HTTP → HTTPS
|
||||
- "--entrypoints.web.http.redirections.entrypoint.to=websecure"
|
||||
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
|
||||
|
||||
# Providers
|
||||
- "--providers.kubernetescrd=true"
|
||||
- "--providers.kubernetescrd.allowCrossNamespace=true"
|
||||
|
||||
|
||||
# TLS + ACME
|
||||
- "--certificatesresolvers.myresolver.acme.email=junte.kim@mealcraft.com"
|
||||
- "--certificatesresolvers.myresolver.acme.storage=/acme/acme.json"
|
||||
- "--certificatesresolvers.myresolver.acme.dnschallenge.provider=route53"
|
||||
|
||||
# STAGING (uncomment for first-time)
|
||||
# - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
|
||||
|
||||
env:
|
||||
- name: AWS_REGION
|
||||
valueFrom:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue