Compare commits
19 Commits
auto-updat
...
auto-updat
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
20c1fc14cd | ||
| 0c2ff6cc3b | |||
| 79d991da1e | |||
| 49b7e0a8c2 | |||
| 67b094ae70 | |||
| c9d29d91d2 | |||
| 8b12988aaf | |||
| f9943203fc | |||
| bbf2ea3911 | |||
| f62a196d1f | |||
| 23e5148814 | |||
| e1bd487ec9 | |||
| a88a08c972 | |||
| c83d69446b | |||
| 934860111f | |||
| 38f3fe57dc | |||
| 6b43f79fe2 | |||
| 84cca7223b | |||
|
|
47734f3447 |
@@ -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) |
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ spec:
|
|||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
containers:
|
containers:
|
||||||
- name: n8n
|
- name: n8n
|
||||||
image: docker.n8n.io/n8nio/n8n:latest
|
image: n8nio/n8n:latest
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 5678
|
- containerPort: 5678
|
||||||
name: http
|
name: http
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ spec:
|
|||||||
serviceAccountName: n8n
|
serviceAccountName: n8n
|
||||||
containers:
|
containers:
|
||||||
- name: n8n-runner
|
- name: n8n-runner
|
||||||
image: docker.n8n.io/n8nio/runners:latest
|
image: n8nio/runners:latest
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 5680
|
- containerPort: 5680
|
||||||
name: health
|
name: health
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
image:
|
image:
|
||||||
tag: 2.20.3
|
tag: latest
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
memory: "1Gi"
|
memory: "1Gi"
|
||||||
@@ -9,7 +9,7 @@ resources:
|
|||||||
cpu: "3000m"
|
cpu: "3000m"
|
||||||
initContainers:
|
initContainers:
|
||||||
install-tesseract-langs:
|
install-tesseract-langs:
|
||||||
image: ghcr.io/paperless-ngx/paperless-ngx:2.18.2
|
image: ghcr.io/paperless-ngx/paperless-ngx:latest
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
memory: "256Mi"
|
memory: "256Mi"
|
||||||
|
|||||||
@@ -19,6 +19,14 @@ spec:
|
|||||||
{{ .password }}
|
{{ .password }}
|
||||||
AUTHENTIK_SECRET_KEY: |-
|
AUTHENTIK_SECRET_KEY: |-
|
||||||
{{ .secret_key }}
|
{{ .secret_key }}
|
||||||
|
POSTGRES_PASSWORD: |-
|
||||||
|
{{ .password }}
|
||||||
|
POSTGRES_USER: |-
|
||||||
|
{{ .username }}
|
||||||
|
username: |-
|
||||||
|
{{ .password }}
|
||||||
|
password: |-
|
||||||
|
{{ .username }}
|
||||||
data:
|
data:
|
||||||
- secretKey: password
|
- secretKey: password
|
||||||
sourceRef:
|
sourceRef:
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ resources:
|
|||||||
- app.yaml
|
- app.yaml
|
||||||
- external-secrets.yaml
|
- external-secrets.yaml
|
||||||
- https-middleware.yaml
|
- https-middleware.yaml
|
||||||
- worker-restart.yaml
|
# - worker-restart.yaml
|
||||||
|
|
||||||
helmCharts:
|
helmCharts:
|
||||||
- name: authentik
|
- name: authentik
|
||||||
repo: https://charts.goauthentik.io
|
repo: https://charts.goauthentik.io
|
||||||
version: 2025.10.1
|
version: 2026.2.0
|
||||||
releaseName: authentik
|
releaseName: authentik
|
||||||
namespace: authentik
|
namespace: authentik
|
||||||
valuesFile: values.yaml
|
valuesFile: values.yaml
|
||||||
|
|||||||
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