Compare commits
14 Commits
auto-updat
...
auto-updat
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
20c1fc14cd | ||
| 0c2ff6cc3b | |||
| 79d991da1e | |||
| 49b7e0a8c2 | |||
| 67b094ae70 | |||
| c9d29d91d2 | |||
| 8b12988aaf | |||
| f9943203fc | |||
| bbf2ea3911 | |||
| f62a196d1f | |||
| 23e5148814 | |||
| e1bd487ec9 | |||
| a88a08c972 | |||
| c83d69446b |
@@ -16,6 +16,7 @@ ArgoCD homelab project
|
|||||||
| **authentik** | [](https://ag.hexor.cy/applications/argocd/authentik) |
|
| **authentik** | [](https://ag.hexor.cy/applications/argocd/authentik) |
|
||||||
| **cert-manager** | [](https://ag.hexor.cy/applications/argocd/cert-manager) |
|
| **cert-manager** | [](https://ag.hexor.cy/applications/argocd/cert-manager) |
|
||||||
| **external-secrets** | [](https://ag.hexor.cy/applications/argocd/external-secrets) |
|
| **external-secrets** | [](https://ag.hexor.cy/applications/argocd/external-secrets) |
|
||||||
|
| **gpu** | [](https://ag.hexor.cy/applications/argocd/gpu) |
|
||||||
| **kube-system-custom** | [](https://ag.hexor.cy/applications/argocd/kube-system-custom) |
|
| **kube-system-custom** | [](https://ag.hexor.cy/applications/argocd/kube-system-custom) |
|
||||||
| **kubernetes-dashboard** | [](https://ag.hexor.cy/applications/argocd/kubernetes-dashboard) |
|
| **kubernetes-dashboard** | [](https://ag.hexor.cy/applications/argocd/kubernetes-dashboard) |
|
||||||
| **longhorn** | [](https://ag.hexor.cy/applications/argocd/longhorn) |
|
| **longhorn** | [](https://ag.hexor.cy/applications/argocd/longhorn) |
|
||||||
@@ -45,6 +46,7 @@ ArgoCD homelab project
|
|||||||
| **jellyfin** | [](https://ag.hexor.cy/applications/argocd/jellyfin) |
|
| **jellyfin** | [](https://ag.hexor.cy/applications/argocd/jellyfin) |
|
||||||
| **k8s-secrets** | [](https://ag.hexor.cy/applications/argocd/k8s-secrets) |
|
| **k8s-secrets** | [](https://ag.hexor.cy/applications/argocd/k8s-secrets) |
|
||||||
| **khm** | [](https://ag.hexor.cy/applications/argocd/khm) |
|
| **khm** | [](https://ag.hexor.cy/applications/argocd/khm) |
|
||||||
|
| **mtproxy** | [](https://ag.hexor.cy/applications/argocd/mtproxy) |
|
||||||
| **n8n** | [](https://ag.hexor.cy/applications/argocd/n8n) |
|
| **n8n** | [](https://ag.hexor.cy/applications/argocd/n8n) |
|
||||||
| **ollama** | [](https://ag.hexor.cy/applications/argocd/ollama) |
|
| **ollama** | [](https://ag.hexor.cy/applications/argocd/ollama) |
|
||||||
| **paperless** | [](https://ag.hexor.cy/applications/argocd/paperless) |
|
| **paperless** | [](https://ag.hexor.cy/applications/argocd/paperless) |
|
||||||
|
|||||||
@@ -77,6 +77,8 @@ spec:
|
|||||||
value: "external"
|
value: "external"
|
||||||
- name: N8N_RUNNERS_BROKER_LISTEN_ADDRESS
|
- name: N8N_RUNNERS_BROKER_LISTEN_ADDRESS
|
||||||
value: "0.0.0.0"
|
value: "0.0.0.0"
|
||||||
|
- name: N8N_LISTEN_ADDRESS
|
||||||
|
value: "0.0.0.0"
|
||||||
- name: N8N_RUNNERS_BROKER_PORT
|
- name: N8N_RUNNERS_BROKER_PORT
|
||||||
value: "5679"
|
value: "5679"
|
||||||
- name: EXECUTIONS_MODE
|
- name: EXECUTIONS_MODE
|
||||||
@@ -87,6 +89,8 @@ spec:
|
|||||||
value: "production"
|
value: "production"
|
||||||
- name: WEBHOOK_URL
|
- name: WEBHOOK_URL
|
||||||
value: "https://n8n.hexor.cy/"
|
value: "https://n8n.hexor.cy/"
|
||||||
|
- name: N8N_PROXY_HOPS
|
||||||
|
value: "1"
|
||||||
- name: GENERIC_TIMEZONE
|
- name: GENERIC_TIMEZONE
|
||||||
value: "Europe/Moscow"
|
value: "Europe/Moscow"
|
||||||
- name: TZ
|
- name: TZ
|
||||||
|
|||||||
@@ -3,19 +3,23 @@ kind: Kustomization
|
|||||||
|
|
||||||
resources:
|
resources:
|
||||||
- external-secrets.yaml
|
- external-secrets.yaml
|
||||||
|
- local-pv.yaml
|
||||||
|
|
||||||
helmCharts:
|
helmCharts:
|
||||||
- name: ollama
|
- name: ollama
|
||||||
repo: https://otwld.github.io/ollama-helm/
|
repo: https://otwld.github.io/ollama-helm/
|
||||||
version: 0.4.0
|
version: 1.49.0
|
||||||
releaseName: ollama
|
releaseName: ollama
|
||||||
namespace: ollama
|
namespace: ollama
|
||||||
valuesFile: ollama-values.yaml
|
valuesFile: ollama-values.yaml
|
||||||
includeCRDs: true
|
includeCRDs: true
|
||||||
- name: open-webui
|
- name: open-webui
|
||||||
repo: https://helm.openwebui.com/
|
repo: https://helm.openwebui.com/
|
||||||
version: 8.14.0
|
version: 12.8.1
|
||||||
releaseName: openweb-ui
|
releaseName: openweb-ui
|
||||||
namespace: ollama
|
namespace: ollama
|
||||||
valuesFile: openweb-ui-values.yaml
|
valuesFile: openweb-ui-values.yaml
|
||||||
includeCRDs: true
|
includeCRDs: true
|
||||||
|
|
||||||
|
patchesStrategicMerge:
|
||||||
|
- patch-runtimeclass.yaml
|
||||||
22
k8s/apps/ollama/local-pv.yaml
Normal file
22
k8s/apps/ollama/local-pv.yaml
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
name: ollama-local-pv
|
||||||
|
spec:
|
||||||
|
capacity:
|
||||||
|
storage: 100Gi
|
||||||
|
volumeMode: Filesystem
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
persistentVolumeReclaimPolicy: Retain
|
||||||
|
storageClassName: local-path
|
||||||
|
local:
|
||||||
|
path: /var/lib/ollama
|
||||||
|
nodeAffinity:
|
||||||
|
required:
|
||||||
|
nodeSelectorTerms:
|
||||||
|
- matchExpressions:
|
||||||
|
- key: kubernetes.io/hostname
|
||||||
|
operator: In
|
||||||
|
values:
|
||||||
|
- uk-desktop.tail2fe2d.ts.net
|
||||||
@@ -3,6 +3,20 @@ image:
|
|||||||
pullPolicy: Always
|
pullPolicy: Always
|
||||||
tag: "latest"
|
tag: "latest"
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
kubernetes.io/hostname: master.tail2fe2d.ts.net
|
kubernetes.io/hostname: uk-desktop.tail2fe2d.ts.net
|
||||||
|
tolerations:
|
||||||
|
- key: workload
|
||||||
|
operator: Equal
|
||||||
|
value: desktop
|
||||||
|
effect: NoSchedule
|
||||||
ingress:
|
ingress:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
ollama:
|
||||||
|
gpu:
|
||||||
|
enabled: true
|
||||||
|
type: 'nvidia'
|
||||||
|
number: 1
|
||||||
|
persistentVolume:
|
||||||
|
enabled: true
|
||||||
|
size: 100Gi
|
||||||
|
storageClass: "local-path"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
clusterDomain: ai.hexor.cy
|
clusterDomain: cluster.local
|
||||||
|
|
||||||
extraEnvVars:
|
extraEnvVars:
|
||||||
GLOBAL_LOG_LEVEL: debug
|
GLOBAL_LOG_LEVEL: debug
|
||||||
@@ -32,12 +32,22 @@ ollama:
|
|||||||
|
|
||||||
pipelines:
|
pipelines:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/hostname: master.tail2fe2d.ts.net
|
||||||
|
|
||||||
tika:
|
tika:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/hostname: master.tail2fe2d.ts.net
|
||||||
|
|
||||||
websocket:
|
websocket:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/hostname: master.tail2fe2d.ts.net
|
||||||
|
redis:
|
||||||
|
master:
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/hostname: master.tail2fe2d.ts.net
|
||||||
|
|
||||||
ingress:
|
ingress:
|
||||||
enabled: true
|
enabled: true
|
||||||
@@ -46,7 +56,5 @@ ingress:
|
|||||||
cert-manager.io/cluster-issuer: letsencrypt
|
cert-manager.io/cluster-issuer: letsencrypt
|
||||||
traefik.ingress.kubernetes.io/router.middlewares: kube-system-https-redirect@kubernetescrd
|
traefik.ingress.kubernetes.io/router.middlewares: kube-system-https-redirect@kubernetescrd
|
||||||
host: "ai.hexor.cy"
|
host: "ai.hexor.cy"
|
||||||
tls:
|
tls: true
|
||||||
- hosts:
|
existingSecret: ollama-tls
|
||||||
- '*.hexor.cy'
|
|
||||||
secretName: ollama-tls
|
|
||||||
8
k8s/apps/ollama/patch-runtimeclass.yaml
Normal file
8
k8s/apps/ollama/patch-runtimeclass.yaml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: ollama
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
runtimeClassName: nvidia
|
||||||
@@ -17,12 +17,16 @@ spec:
|
|||||||
{{ .username }}
|
{{ .username }}
|
||||||
AUTHENTIK_POSTGRESQL__PASSWORD: |-
|
AUTHENTIK_POSTGRESQL__PASSWORD: |-
|
||||||
{{ .password }}
|
{{ .password }}
|
||||||
|
AUTHENTIK_SECRET_KEY: |-
|
||||||
|
{{ .secret_key }}
|
||||||
POSTGRES_PASSWORD: |-
|
POSTGRES_PASSWORD: |-
|
||||||
{{ .password }}
|
{{ .password }}
|
||||||
POSTGRES_USER: |-
|
POSTGRES_USER: |-
|
||||||
{{ .username }}
|
{{ .username }}
|
||||||
AUTHENTIK_SECRET_KEY: |-
|
username: |-
|
||||||
{{ .secret_key }}
|
{{ .password }}
|
||||||
|
password: |-
|
||||||
|
{{ .username }}
|
||||||
data:
|
data:
|
||||||
- secretKey: password
|
- secretKey: password
|
||||||
sourceRef:
|
sourceRef:
|
||||||
|
|||||||
20
k8s/core/gpu/app.yaml
Normal file
20
k8s/core/gpu/app.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: gpu-system
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: core
|
||||||
|
destination:
|
||||||
|
namespace: gpu-system
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
source:
|
||||||
|
repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git
|
||||||
|
targetRevision: HEAD
|
||||||
|
path: k8s/core/gpu
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
selfHeal: true
|
||||||
|
prune: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
15
k8s/core/gpu/kustomization.yaml
Normal file
15
k8s/core/gpu/kustomization.yaml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- app.yaml
|
||||||
|
- runtime-class.yaml
|
||||||
|
|
||||||
|
helmCharts:
|
||||||
|
- name: nvidia-device-plugin
|
||||||
|
repo: https://nvidia.github.io/k8s-device-plugin
|
||||||
|
version: 0.17.0
|
||||||
|
releaseName: nvidia-device-plugin
|
||||||
|
namespace: gpu-system
|
||||||
|
valuesFile: values.yaml
|
||||||
|
includeCRDs: true
|
||||||
5
k8s/core/gpu/runtime-class.yaml
Normal file
5
k8s/core/gpu/runtime-class.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
apiVersion: node.k8s.io/v1
|
||||||
|
kind: RuntimeClass
|
||||||
|
metadata:
|
||||||
|
name: nvidia
|
||||||
|
handler: nvidia
|
||||||
12
k8s/core/gpu/values.yaml
Normal file
12
k8s/core/gpu/values.yaml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/hostname: uk-desktop.tail2fe2d.ts.net
|
||||||
|
|
||||||
|
tolerations:
|
||||||
|
- key: workload
|
||||||
|
operator: Equal
|
||||||
|
value: desktop
|
||||||
|
effect: NoSchedule
|
||||||
|
|
||||||
|
runtimeClassName: nvidia
|
||||||
|
|
||||||
|
setAsDefault: false
|
||||||
Reference in New Issue
Block a user