Compare commits
101 Commits
a4976a0162
...
renovate/r
| Author | SHA1 | Date | |
|---|---|---|---|
| 223642ca21 | |||
| 3a57ef6953 | |||
| f4a865ce7a | |||
| e7b3b220aa | |||
| 0642d29ed5 | |||
| 3f044670e0 | |||
| 122770b128 | |||
| d894d42129 | |||
| 3426b1215d | |||
| 73a189f4e8 | |||
| 4518cdda22 | |||
| 3682e4d5bf | |||
| 3135514f6d | |||
| 5e39cc9082 | |||
| 6eed078d30 | |||
| 0bb805eaaa | |||
| c0f9670837 | |||
| 69728501e1 | |||
| 0a516b3798 | |||
| c9bb63b373 | |||
| 5b5043755d | |||
| e0fcaeaad4 | |||
| 102efd1254 | |||
| 5400c69771 | |||
| b6c70c9931 | |||
| 2710996a19 | |||
| 32f8ccfeb8 | |||
| 12aab2bf0e | |||
| 957b6dab43 | |||
| d1b30c7e61 | |||
| d880c342a5 | |||
| ae38951164 | |||
| 1e363acfca | |||
| c78ca0933c | |||
| 9a31c6bf15 | |||
| 45aa92fe10 | |||
| 708ffe203c | |||
| e2c75d2f22 | |||
| 3ceec2f10c | |||
| 95cfbfbe66 | |||
| bf9aefb44a | |||
| 5ffb171821 | |||
| a35116aa31 | |||
| b32337a2ba | |||
| d27b43715c | |||
| 4b0ce7a2e3 | |||
| 7f2ef7270c | |||
| 73a9b275a7 | |||
| 8a61a936c6 | |||
| 1c2f77927f | |||
| 4f5b25d910 | |||
| 7c5fafd54e | |||
| de11ec0d1b | |||
| 07c32643e7 | |||
| 9c61d47fda | |||
| 0f24f1dd7b | |||
| 83e5cada3f | |||
| ccf6302924 | |||
| 5eb0362788 | |||
| 0985832c2d | |||
| db86abff25 | |||
| a1b40a6a21 | |||
| 444c4faf96 | |||
| 9f304af879 | |||
| c0524510b8 | |||
| a26a351396 | |||
| 9269f21692 | |||
| 9d6a9ff304 | |||
| 3cd094007e | |||
| 94a57daaf8 | |||
| 6fec8d29a6 | |||
| 3a94da6021 | |||
| 70511ff9bc | |||
| e8b37d90d8 | |||
| 30b7a78360 | |||
| 2561b354d1 | |||
| 949d8b11db | |||
| 6c46b20dba | |||
| f0f9cb4d34 | |||
| 8386e21722 | |||
| c871dae045 | |||
| 70e4967497 | |||
| 8e68c45573 | |||
| c4628523bc | |||
| 071e87ee44 | |||
| 9e17aadb56 | |||
| 3ca4ddc233 | |||
| 215a2ac1fb | |||
| 5b8a861daa | |||
| 319e3bafbe | |||
| ad1c60a049 | |||
| 41020f8c79 | |||
| 60c7dd4bdc | |||
| 0fde3108d6 | |||
| a299c2cc2b | |||
| a4ea45a39c | |||
| 30bae60308 | |||
| 2f3b7af0da | |||
| 30efd5ae6e | |||
| 0e1279473f | |||
| 718a0d7e33 |
@@ -107,8 +107,8 @@ spec:
|
||||
# Uparty false positive
|
||||
mask: 0.739,0.725,0.856,0.76,0.862,0.659,0.746,0.614
|
||||
|
||||
ffmpeg:
|
||||
hwaccel_args: preset-vaapi
|
||||
# ffmpeg:
|
||||
# hwaccel_args: preset-vaapi
|
||||
|
||||
detectors:
|
||||
ov_0:
|
||||
@@ -139,7 +139,7 @@ spec:
|
||||
skipuninstall: true
|
||||
config:
|
||||
enabled: true
|
||||
size: 1Gi
|
||||
size: 5Gi
|
||||
storageClass: mayastor-single-hdd
|
||||
skipuninstall: true
|
||||
envFromSecrets:
|
||||
@@ -147,9 +147,9 @@ spec:
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
ingressClassName: nginx-ingress
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt
|
||||
nginx.org/websocket-services: frigate
|
||||
hosts:
|
||||
- host: frigate.lumpiasty.xyz
|
||||
paths:
|
||||
@@ -164,16 +164,16 @@ spec:
|
||||
kubernetes.io/hostname: anapistula-delrosalae
|
||||
|
||||
# GPU access
|
||||
extraVolumes:
|
||||
- name: dri
|
||||
hostPath:
|
||||
path: /dev/dri/renderD128
|
||||
type: CharDevice
|
||||
# extraVolumes:
|
||||
# - name: dri
|
||||
# hostPath:
|
||||
# path: /dev/dri/renderD128
|
||||
# type: CharDevice
|
||||
|
||||
extraVolumeMounts:
|
||||
- name: dri
|
||||
mountPath: /dev/dri/renderD128
|
||||
# extraVolumeMounts:
|
||||
# - name: dri
|
||||
# mountPath: /dev/dri/renderD128
|
||||
|
||||
securityContext:
|
||||
# Not ideal
|
||||
privileged: true
|
||||
# securityContext:
|
||||
# # Not ideal
|
||||
# privileged: true
|
||||
|
||||
@@ -17,7 +17,7 @@ spec:
|
||||
chart:
|
||||
spec:
|
||||
chart: gitea
|
||||
version: 12.1.2
|
||||
version: 12.4.0
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: gitea-charts
|
||||
@@ -79,8 +79,8 @@ spec:
|
||||
ssh:
|
||||
annotations:
|
||||
lbipam.cilium.io/sharing-key: gitea
|
||||
lbipam.cilium.io/sharing-cross-namespace: nginx-ingress-controller
|
||||
lbipam.cilium.io/ips: 10.44.0.0,2001:470:61a3:400::1
|
||||
lbipam.cilium.io/sharing-cross-namespace: nginx-ingress
|
||||
lbipam.cilium.io/ips: 10.44.0.6,2001:470:61a3:400::6
|
||||
type: LoadBalancer
|
||||
port: 22
|
||||
# Requirement for sharing ip with other service
|
||||
@@ -89,7 +89,7 @@ spec:
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
className: nginx
|
||||
className: nginx-ingress
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt
|
||||
acme.cert-manager.io/http01-edit-in-place: "true"
|
||||
|
||||
9
apps/immich/kustomization.yaml
Normal file
9
apps/immich/kustomization.yaml
Normal file
@@ -0,0 +1,9 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- volume.yaml
|
||||
- redis.yaml
|
||||
- postgres-password.yaml
|
||||
- postgres-cluster.yaml
|
||||
- release.yaml
|
||||
4
apps/immich/namespace.yaml
Normal file
4
apps/immich/namespace.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: immich
|
||||
32
apps/immich/postgres-cluster.yaml
Normal file
32
apps/immich/postgres-cluster.yaml
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
apiVersion: postgresql.cnpg.io/v1
|
||||
kind: Cluster
|
||||
metadata:
|
||||
name: immich-db
|
||||
namespace: immich
|
||||
spec:
|
||||
imageName: ghcr.io/tensorchord/cloudnative-vectorchord:14-0.4.3
|
||||
|
||||
instances: 1
|
||||
|
||||
storage:
|
||||
size: 10Gi
|
||||
storageClass: mayastor-single-hdd
|
||||
bootstrap:
|
||||
initdb:
|
||||
# Defaults of immich chart
|
||||
database: immich
|
||||
owner: immich
|
||||
|
||||
# We need to create custom role because default one does not allow to set up
|
||||
# vectorchord extension
|
||||
managed:
|
||||
roles:
|
||||
- name: immich
|
||||
createdb: true
|
||||
login: true
|
||||
superuser: true
|
||||
# We need to manually create secret
|
||||
# https://github.com/cloudnative-pg/cloudnative-pg/issues/3788
|
||||
passwordSecret:
|
||||
name: immich-db-immich
|
||||
@@ -2,37 +2,37 @@
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: ollama-proxy
|
||||
namespace: ollama
|
||||
name: immich-password
|
||||
namespace: immich
|
||||
---
|
||||
apiVersion: secrets.hashicorp.com/v1beta1
|
||||
kind: VaultAuth
|
||||
metadata:
|
||||
name: ollama
|
||||
namespace: ollama
|
||||
name: immich
|
||||
namespace: immich
|
||||
spec:
|
||||
method: kubernetes
|
||||
mount: kubernetes
|
||||
kubernetes:
|
||||
role: ollama-proxy
|
||||
serviceAccount: ollama-proxy
|
||||
role: immich
|
||||
serviceAccount: immich-password
|
||||
---
|
||||
apiVersion: secrets.hashicorp.com/v1beta1
|
||||
kind: VaultStaticSecret
|
||||
metadata:
|
||||
name: ollama-api-key
|
||||
namespace: ollama
|
||||
name: immich-db
|
||||
namespace: immich
|
||||
spec:
|
||||
type: kv-v2
|
||||
|
||||
mount: secret
|
||||
path: ollama
|
||||
path: immich-db
|
||||
|
||||
destination:
|
||||
create: true
|
||||
name: ollama-api-key
|
||||
type: Opaque
|
||||
name: immich-db-immich
|
||||
type: kubernetes.io/basic-auth
|
||||
transformation:
|
||||
excludeRaw: true
|
||||
|
||||
vaultAuthRef: ollama
|
||||
vaultAuthRef: immich
|
||||
29
apps/immich/redis.yaml
Normal file
29
apps/immich/redis.yaml
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
apiVersion: source.toolkit.fluxcd.io/v1
|
||||
kind: HelmRepository
|
||||
metadata:
|
||||
name: bitnami
|
||||
namespace: immich
|
||||
spec:
|
||||
interval: 24h
|
||||
type: "oci"
|
||||
url: oci://registry-1.docker.io/bitnamicharts/
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: redis
|
||||
namespace: immich
|
||||
spec:
|
||||
interval: 30m
|
||||
chart:
|
||||
spec:
|
||||
chart: redis
|
||||
version: 23.1.3
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: bitnami
|
||||
values:
|
||||
global:
|
||||
defaultStorageClass: mayastor-single-hdd
|
||||
architecture: standalone
|
||||
69
apps/immich/release.yaml
Normal file
69
apps/immich/release.yaml
Normal file
@@ -0,0 +1,69 @@
|
||||
---
|
||||
apiVersion: source.toolkit.fluxcd.io/v1
|
||||
kind: HelmRepository
|
||||
metadata:
|
||||
name: secustor
|
||||
namespace: immich
|
||||
spec:
|
||||
interval: 24h
|
||||
url: https://secustor.dev/helm-charts
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: immich
|
||||
namespace: immich
|
||||
spec:
|
||||
interval: 30m
|
||||
chart:
|
||||
spec:
|
||||
chart: immich
|
||||
version: 1.0.2
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: secustor
|
||||
values:
|
||||
common:
|
||||
config:
|
||||
vecotrExtension: vectorchord
|
||||
postgres:
|
||||
host: immich-db-rw
|
||||
existingSecret:
|
||||
enabled: true
|
||||
secretName: immich-db-immich
|
||||
usernameKey: username
|
||||
passwordKey: password
|
||||
redis:
|
||||
host: redis-master
|
||||
existingSecret:
|
||||
enabled: true
|
||||
secretName: redis
|
||||
passwordKey: redis-password
|
||||
|
||||
server:
|
||||
volumeMounts:
|
||||
- mountPath: /usr/src/app/upload
|
||||
name: uploads
|
||||
volumes:
|
||||
- name: uploads
|
||||
persistentVolumeClaim:
|
||||
claimName: library
|
||||
|
||||
machineLearning:
|
||||
enabled: true
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
className: nginx-ingress
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt
|
||||
nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
||||
hosts:
|
||||
- host: immich.lumpiasty.xyz
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
tls:
|
||||
- hosts:
|
||||
- immich.lumpiasty.xyz
|
||||
secretName: immich-ingress
|
||||
13
apps/immich/volume.yaml
Normal file
13
apps/immich/volume.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: library
|
||||
namespace: immich
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 150Gi
|
||||
storageClassName: mayastor-single-hdd
|
||||
@@ -4,7 +4,9 @@ resources:
|
||||
- gitea
|
||||
- registry
|
||||
- renovate
|
||||
- ollama
|
||||
- librechat
|
||||
- frigate
|
||||
- llama
|
||||
- immich
|
||||
- nas
|
||||
- searxng
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
apiVersion: source.toolkit.fluxcd.io/v1
|
||||
kind: HelmRepository
|
||||
metadata:
|
||||
name: bat-librechat
|
||||
name: dynomite567-charts
|
||||
namespace: librechat
|
||||
spec:
|
||||
interval: 24h
|
||||
url: https://charts.blue-atlas.de
|
||||
url: https://dynomite567.github.io/helm-charts/
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
@@ -18,10 +18,10 @@ spec:
|
||||
chart:
|
||||
spec:
|
||||
chart: librechat
|
||||
version: 1.8.10
|
||||
version: 1.9.1
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: bat-librechat
|
||||
name: dynomite567-charts
|
||||
values:
|
||||
global:
|
||||
librechat:
|
||||
@@ -39,40 +39,30 @@ spec:
|
||||
|
||||
endpoints:
|
||||
custom:
|
||||
- name: "Ollama"
|
||||
apiKey: "ollama"
|
||||
baseURL: "http://ollama.ollama.svc.cluster.local:11434/v1/chat/completions"
|
||||
models:
|
||||
default: [
|
||||
"llama2",
|
||||
"mistral",
|
||||
"codellama",
|
||||
"dolphin-mixtral",
|
||||
"mistral-openorca"
|
||||
]
|
||||
# fetching list of models is supported but the `name` field must start
|
||||
# with `ollama` (case-insensitive), as it does in this example.
|
||||
fetch: true
|
||||
titleConvo: true
|
||||
titleModel: "current_model"
|
||||
summarize: false
|
||||
summaryModel: "current_model"
|
||||
forcePrompt: false
|
||||
modelDisplayLabel: "Ollama"
|
||||
- name: "Llama.cpp"
|
||||
apiKey: "llama"
|
||||
baseURL: "http://llama.llama.svc.cluster.local:11434/v1/chat/completions"
|
||||
baseURL: "http://llama.llama.svc.cluster.local:11434/v1"
|
||||
models:
|
||||
default: [
|
||||
"DeepSeek-R1-0528-Qwen3-8B-GGUF",
|
||||
"Qwen3-8B-GGUF",
|
||||
"Qwen3-8B-GGUF-no-thinking",
|
||||
"gemma3n"
|
||||
"gemma3n-e4b",
|
||||
"gemma3-12b",
|
||||
"gemma3-12b-q2",
|
||||
"gemma3-12b-novision",
|
||||
"gemma3-4b",
|
||||
"gemma3-4b-novision",
|
||||
"Qwen3-4B-Thinking-2507",
|
||||
"Qwen3-4B-Thinking-2507-long-ctx",
|
||||
"Qwen2.5-VL-7B-Instruct-GGUF",
|
||||
"Qwen2.5-VL-32B-Instruct-GGUF-IQ1_S",
|
||||
"Qwen2.5-VL-32B-Instruct-GGUF-Q2_K_L"
|
||||
]
|
||||
titleConvo: true
|
||||
titleModel: "current_model"
|
||||
titleModel: "gemma3-4b-novision"
|
||||
summarize: false
|
||||
summaryModel: "current_model"
|
||||
summaryModel: "gemma3-4b-novision"
|
||||
forcePrompt: false
|
||||
modelDisplayLabel: "Llama.cpp"
|
||||
imageVolume:
|
||||
@@ -82,9 +72,12 @@ spec:
|
||||
storageClassName: mayastor-single-hdd
|
||||
ingress:
|
||||
enabled: true
|
||||
className: nginx
|
||||
className: nginx-ingress
|
||||
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
|
||||
hosts:
|
||||
- host: librechat.lumpiasty.xyz
|
||||
paths:
|
||||
|
||||
@@ -16,7 +16,7 @@ spec:
|
||||
spec:
|
||||
containers:
|
||||
- name: caddy
|
||||
image: caddy:2.10.0-alpine
|
||||
image: caddy:2.10.2-alpine
|
||||
imagePullPolicy: IfNotPresent
|
||||
volumeMounts:
|
||||
- mountPath: /etc/caddy
|
||||
|
||||
@@ -1,24 +1,33 @@
|
||||
healthCheckTimeout: 600
|
||||
|
||||
models:
|
||||
"DeepSeek-R1-0528-Qwen3-8B-GGUF":
|
||||
ttl: 600
|
||||
cmd: |
|
||||
/app/llama-server
|
||||
-hf unsloth/DeepSeek-R1-0528-Qwen3-8B-GGUF:Q4_K_M
|
||||
-ngl 37 -c 16384
|
||||
--no-warmup
|
||||
--port ${PORT}
|
||||
"Qwen3-8B-GGUF":
|
||||
ttl: 600
|
||||
cmd: |
|
||||
/app/llama-server
|
||||
-hf unsloth/Qwen3-8B-GGUF:Q4_K_M
|
||||
-ngl 37 -c 16384
|
||||
--no-warmup
|
||||
--port ${PORT}
|
||||
"Qwen3-8B-GGUF-no-thinking":
|
||||
ttl: 600
|
||||
cmd: |
|
||||
/app/llama-server
|
||||
-hf unsloth/Qwen3-8B-GGUF:Q4_K_M
|
||||
-ngl 37 -c 16384
|
||||
--jinja --chat-template-file /config/qwen_nothink_chat_template.jinja
|
||||
--no-warmup
|
||||
--port ${PORT}
|
||||
"gemma3n":
|
||||
"gemma3n-e4b":
|
||||
ttl: 600
|
||||
cmd: |
|
||||
/app/llama-server
|
||||
-hf unsloth/gemma-3n-E4B-it-GGUF:UD-Q4_K_XL
|
||||
@@ -31,4 +40,177 @@ models:
|
||||
--min-p 0.00
|
||||
--top-k 64
|
||||
--top-p 0.95
|
||||
--no-warmup
|
||||
--port ${PORT}
|
||||
"gemma3-12b":
|
||||
ttl: 600
|
||||
cmd: |
|
||||
/app/llama-server
|
||||
-hf unsloth/gemma-3-12b-it-GGUF:Q4_K_M
|
||||
--ctx-size 16384
|
||||
--n-gpu-layers 99
|
||||
--prio 2
|
||||
--temp 1.0
|
||||
--repeat-penalty 1.0
|
||||
--min-p 0.00
|
||||
--top-k 64
|
||||
--top-p 0.95
|
||||
--no-warmup
|
||||
--port ${PORT}
|
||||
"gemma3-12b-novision":
|
||||
ttl: 600
|
||||
cmd: |
|
||||
/app/llama-server
|
||||
-hf unsloth/gemma-3-12b-it-GGUF:Q4_K_M
|
||||
--ctx-size 16384
|
||||
--n-gpu-layers 99
|
||||
--prio 2
|
||||
--temp 1.0
|
||||
--repeat-penalty 1.0
|
||||
--min-p 0.00
|
||||
--top-k 64
|
||||
--top-p 0.95
|
||||
--no-mmproj
|
||||
--no-warmup
|
||||
--port ${PORT}
|
||||
"gemma3-12b-q2":
|
||||
ttl: 600
|
||||
cmd: |
|
||||
/app/llama-server
|
||||
-hf unsloth/gemma-3-12b-it-GGUF:Q2_K_L
|
||||
--ctx-size 16384
|
||||
--n-gpu-layers 99
|
||||
--prio 2
|
||||
--temp 1.0
|
||||
--repeat-penalty 1.0
|
||||
--min-p 0.00
|
||||
--top-k 64
|
||||
--top-p 0.95
|
||||
--no-warmup
|
||||
--port ${PORT}
|
||||
"gemma3-4b":
|
||||
ttl: 600
|
||||
cmd: |
|
||||
/app/llama-server
|
||||
-hf unsloth/gemma-3-4b-it-GGUF:Q4_K_M
|
||||
--ctx-size 16384
|
||||
--n-gpu-layers 99
|
||||
--prio 2
|
||||
--temp 1.0
|
||||
--repeat-penalty 1.0
|
||||
--min-p 0.00
|
||||
--top-k 64
|
||||
--top-p 0.95
|
||||
--no-warmup
|
||||
--port ${PORT}
|
||||
"gemma3-4b-novision":
|
||||
ttl: 600
|
||||
cmd: |
|
||||
/app/llama-server
|
||||
-hf unsloth/gemma-3-4b-it-GGUF:Q4_K_M
|
||||
--ctx-size 16384
|
||||
--n-gpu-layers 99
|
||||
--prio 2
|
||||
--temp 1.0
|
||||
--repeat-penalty 1.0
|
||||
--min-p 0.00
|
||||
--top-k 64
|
||||
--top-p 0.95
|
||||
--no-mmproj
|
||||
--no-warmup
|
||||
--port ${PORT}
|
||||
"Qwen3-4B-Thinking-2507":
|
||||
ttl: 600
|
||||
cmd: |
|
||||
/app/llama-server
|
||||
-hf unsloth/Qwen3-4B-Thinking-2507-GGUF:Q4_K_M
|
||||
-ngl 99 -c 16384 --predict 8192
|
||||
--temp 0.6
|
||||
--min-p 0.00
|
||||
--top-p 0.95
|
||||
--top-k 20
|
||||
--repeat-penalty 1.0
|
||||
--no-warmup
|
||||
--port ${PORT}
|
||||
"Qwen3-4B-Thinking-2507-long-ctx":
|
||||
ttl: 600
|
||||
cmd: |
|
||||
/app/llama-server
|
||||
-hf unsloth/Qwen3-4B-Thinking-2507-GGUF:Q4_K_M
|
||||
-ngl 99 -c 262144 --predict 81920
|
||||
--temp 0.6
|
||||
--min-p 0.00
|
||||
--top-p 0.95
|
||||
--top-k 20
|
||||
--repeat-penalty 1.0
|
||||
--no-warmup
|
||||
--flash-attn
|
||||
--cache-type-k q8_0 --cache-type-v q8_0
|
||||
--port ${PORT}
|
||||
"Qwen3-4B-Instruct-2507":
|
||||
ttl: 600
|
||||
cmd: |
|
||||
/app/llama-server
|
||||
-hf unsloth/Qwen3-4B-Instruct-2507-GGUF:Q4_K_M
|
||||
-ngl 99 -c 16384 --predict 8192
|
||||
--temp 0.7
|
||||
--min-p 0.00
|
||||
--top-p 0.8
|
||||
--top-k 20
|
||||
--repeat-penalty 1.0
|
||||
--no-warmup
|
||||
--port ${PORT}
|
||||
"Qwen3-4B-Instruct-2507-long-ctx":
|
||||
ttl: 600
|
||||
cmd: |
|
||||
/app/llama-server
|
||||
-hf unsloth/Qwen3-4B-Instruct-2507-GGUF:Q4_K_M
|
||||
-ngl 99 -c 262144 --predict 81920
|
||||
--temp 0.7
|
||||
--min-p 0.00
|
||||
--top-p 0.8
|
||||
--top-k 20
|
||||
--repeat-penalty 1.0
|
||||
--no-warmup
|
||||
--flash-attn
|
||||
--cache-type-k q8_0 --cache-type-v q8_0
|
||||
--port ${PORT}
|
||||
"Qwen2.5-VL-32B-Instruct-GGUF-IQ1_S":
|
||||
ttl: 600
|
||||
cmd: |
|
||||
/app/llama-server
|
||||
-hf unsloth/Qwen2.5-VL-32B-Instruct-GGUF:IQ1_S
|
||||
-ngl 99 -c 16384 --predict 8192
|
||||
--temp 0.7
|
||||
--min-p 0.00
|
||||
--top-p 0.8
|
||||
--top-k 20
|
||||
--repeat-penalty 1.0
|
||||
--no-warmup
|
||||
--port ${PORT}
|
||||
"Qwen2.5-VL-32B-Instruct-GGUF-Q2_K_L":
|
||||
ttl: 600
|
||||
cmd: |
|
||||
/app/llama-server
|
||||
-hf unsloth/Qwen2.5-VL-32B-Instruct-GGUF:Q2_K_L
|
||||
-ngl 99 -c 16384 --predict 8192
|
||||
--temp 0.7
|
||||
--min-p 0.00
|
||||
--top-p 0.8
|
||||
--top-k 20
|
||||
--repeat-penalty 1.0
|
||||
--no-warmup
|
||||
--port ${PORT}
|
||||
"Qwen2.5-VL-7B-Instruct-GGUF":
|
||||
ttl: 600
|
||||
cmd: |
|
||||
/app/llama-server
|
||||
-hf unsloth/Qwen2.5-VL-7B-Instruct-GGUF:Q4_K_M
|
||||
-ngl 37 -c 16384 --predict 8192
|
||||
--temp 0.7
|
||||
--min-p 0.00
|
||||
--top-p 0.8
|
||||
--top-k 20
|
||||
--repeat-penalty 1.0
|
||||
--no-warmup
|
||||
--port ${PORT}
|
||||
|
||||
@@ -16,7 +16,7 @@ spec:
|
||||
spec:
|
||||
containers:
|
||||
- name: llama-swap
|
||||
image: ghcr.io/mostlygeek/llama-swap:v139-vulkan-b5957
|
||||
image: ghcr.io/mostlygeek/llama-swap:v166-vulkan-b6795
|
||||
imagePullPolicy: IfNotPresent
|
||||
command:
|
||||
- /app/llama-swap
|
||||
@@ -41,7 +41,7 @@ spec:
|
||||
volumes:
|
||||
- name: models
|
||||
persistentVolumeClaim:
|
||||
claimName: models
|
||||
claimName: llama-models
|
||||
- name: kfd
|
||||
hostPath:
|
||||
path: /dev/kfd
|
||||
|
||||
@@ -8,9 +8,9 @@ metadata:
|
||||
cert-manager.io/cluster-issuer: letsencrypt
|
||||
acme.cert-manager.io/http01-edit-in-place: "true"
|
||||
nginx.ingress.kubernetes.io/proxy-buffering: "false"
|
||||
nginx.org/proxy-read-timeout: 30m
|
||||
nginx.ingress.kubernetes.io/proxy-read-timeout: 30m
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
ingressClassName: nginx-ingress
|
||||
rules:
|
||||
- host: llama.lumpiasty.xyz
|
||||
http:
|
||||
|
||||
@@ -3,11 +3,11 @@ apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
namespace: llama
|
||||
name: models
|
||||
name: llama-models
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 200Gi
|
||||
storageClassName: mayastor-single-hdd
|
||||
storageClassName: mayastor-single-ssd
|
||||
|
||||
14
apps/nas/configmap.yaml
Normal file
14
apps/nas/configmap.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: nas-sshd-config
|
||||
namespace: nas
|
||||
data:
|
||||
00-chroot.conf: |
|
||||
Subsystem sftp internal-sftp
|
||||
Match User nas
|
||||
ChrootDirectory /config
|
||||
ForceCommand internal-sftp -d /data
|
||||
AllowTcpForwarding no
|
||||
X11Forwarding no
|
||||
PermitTunnel no
|
||||
94
apps/nas/deployment.yaml
Normal file
94
apps/nas/deployment.yaml
Normal file
@@ -0,0 +1,94 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: nas-ssh
|
||||
namespace: nas
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: nas-ssh
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nas-ssh
|
||||
spec:
|
||||
securityContext:
|
||||
fsGroup: 1000
|
||||
initContainers:
|
||||
- name: prepare-config
|
||||
image: alpine:3.20.3
|
||||
imagePullPolicy: IfNotPresent
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- |
|
||||
set -euo pipefail
|
||||
chown root:root /config
|
||||
chmod 755 /config
|
||||
mkdir -p /config/data
|
||||
chown 1000:1000 /config/data
|
||||
chmod 750 /config/data
|
||||
mkdir -p /config/ssh_host_keys
|
||||
chown root:root /config/ssh_host_keys
|
||||
chmod 700 /config/ssh_host_keys
|
||||
for key in /config/ssh_host_keys/*; do
|
||||
[ -f "$key" ] || continue
|
||||
chown root:root "$key"
|
||||
chmod 600 "$key"
|
||||
done
|
||||
mkdir -p /config/sshd/sshd_config.d
|
||||
cp /defaults/00-chroot.conf /config/sshd/sshd_config.d/00-chroot.conf
|
||||
chown root:root /config/sshd/sshd_config.d/00-chroot.conf
|
||||
chmod 644 /config/sshd/sshd_config.d/00-chroot.conf
|
||||
volumeMounts:
|
||||
- name: data
|
||||
mountPath: /config
|
||||
- name: sshd-config
|
||||
mountPath: /defaults/00-chroot.conf
|
||||
subPath: 00-chroot.conf
|
||||
readOnly: true
|
||||
containers:
|
||||
- name: ssh
|
||||
image: lscr.io/linuxserver/openssh-server:version-10.0_p1-r9
|
||||
imagePullPolicy: IfNotPresent
|
||||
env:
|
||||
- name: PUID
|
||||
value: "1000"
|
||||
- name: PGID
|
||||
value: "1000"
|
||||
- name: TZ
|
||||
value: Etc/UTC
|
||||
- name: USER_NAME
|
||||
value: nas
|
||||
- name: SUDO_ACCESS
|
||||
value: "false"
|
||||
- name: PASSWORD_ACCESS
|
||||
value: "false"
|
||||
- name: LOG_STDOUT
|
||||
value: "true"
|
||||
- name: PUBLIC_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: nas-ssh-authorized-keys
|
||||
key: public_key
|
||||
ports:
|
||||
- containerPort: 2222
|
||||
name: ssh
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- name: data
|
||||
mountPath: /config
|
||||
resources:
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 128Mi
|
||||
limits:
|
||||
memory: 512Mi
|
||||
volumes:
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: nas-data
|
||||
- name: sshd-config
|
||||
configMap:
|
||||
name: nas-sshd-config
|
||||
@@ -2,7 +2,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- release.yaml
|
||||
- secret.yaml
|
||||
- auth-proxy.yaml
|
||||
- ingress.yaml
|
||||
- configmap.yaml
|
||||
- pvc.yaml
|
||||
- deployment.yaml
|
||||
- service.yaml
|
||||
4
apps/nas/namespace.yaml
Normal file
4
apps/nas/namespace.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: nas
|
||||
12
apps/nas/pvc.yaml
Normal file
12
apps/nas/pvc.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: nas-data
|
||||
namespace: nas
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 500Gi
|
||||
storageClassName: mayastor-single-hdd
|
||||
9
apps/nas/secret.yaml
Normal file
9
apps/nas/secret.yaml
Normal file
@@ -0,0 +1,9 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: nas-ssh-authorized-keys
|
||||
namespace: nas
|
||||
type: Opaque
|
||||
stringData:
|
||||
public_key: |
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCresbDFZijI+rZMgd3LdciPjpb4x4S5B7y0U+EoYPaz6hILT72fyz3QdcgKJJv8JUJI6g0811/yFRuOzCXgWaA922c/S/t6HMUrorh7mPVQMTN2dc/SVBvMa7S2M9NYBj6z1X2LRHs+g1JTMCtL202PIjes/E9qu0as0Vx6n/6HHNmtmA9LrpiAmurbeKXDmrYe2yWg/FA6cX5d86SJb21Dj8WqdCd3Hz0Pi6FzMKXhpWvs5Hfei1htsjsRzCxkpSTjlgFEFVfmHIXPfB06Sa6aCnkxAFnE7N+xNa9RIWeZmOXdA74LsfSKQ9eAXSrsC/IRxo2ce8cBzXJy+Itxw24fUqGYXBiCgx8i3ZA9IdwI1u71xYo9lyNjav5VykzKnAHRAYnDm9UsCf8k04reBevcLdtxL11vPCtind3xn76Nhy2b45dcp/MdYFANGsCcXJOMb6Aisb03HPGhs/aU3tCAQbTVe195mL9FWhGqIK2wBmF1SKW+4ssX2bIU6YaCYc= cardno:23_671_999
|
||||
15
apps/nas/service.yaml
Normal file
15
apps/nas/service.yaml
Normal file
@@ -0,0 +1,15 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: nas-ssh
|
||||
namespace: nas
|
||||
spec:
|
||||
type: LoadBalancer
|
||||
externalTrafficPolicy: Cluster
|
||||
ports:
|
||||
- name: ssh
|
||||
port: 22
|
||||
targetPort: 2222
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: nas-ssh
|
||||
@@ -1,68 +0,0 @@
|
||||
---
|
||||
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.10.0-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 {
|
||||
flush_interval -1
|
||||
}
|
||||
}
|
||||
---
|
||||
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
|
||||
@@ -1,28 +0,0 @@
|
||||
---
|
||||
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"
|
||||
nginx.ingress.kubernetes.io/proxy-buffering: "false"
|
||||
nginx.org/proxy-read-timeout: 30m
|
||||
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
|
||||
@@ -1,60 +0,0 @@
|
||||
---
|
||||
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.24.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
|
||||
@@ -6,9 +6,9 @@ metadata:
|
||||
name: registry
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt
|
||||
nginx.org/client-max-body-size: "0"
|
||||
nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
ingressClassName: nginx-ingress
|
||||
rules:
|
||||
- host: registry.lumpiasty.xyz
|
||||
http:
|
||||
|
||||
@@ -15,7 +15,7 @@ spec:
|
||||
- name: renovate
|
||||
# Update this to the latest available and then enable Renovate on
|
||||
# the manifest
|
||||
image: renovate/renovate:41.43.0-full
|
||||
image: renovate/renovate:41.169.1-full
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: renovate-gitea-token
|
||||
|
||||
1
apps/searxng/configs/settings.yml
Normal file
1
apps/searxng/configs/settings.yml
Normal file
@@ -0,0 +1 @@
|
||||
use_default_settings: true
|
||||
42
apps/searxng/deployment.yaml
Normal file
42
apps/searxng/deployment.yaml
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: searxng
|
||||
namespace: searxng
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: searxng
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: searxng
|
||||
spec:
|
||||
containers:
|
||||
- name: searxng
|
||||
image: searxng/searxng:2025.8.12-6b1516d
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
env:
|
||||
- name: SEARXNG_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: searxng-secret
|
||||
key: SEARXNG_SECRET
|
||||
optional: false
|
||||
volumeMounts:
|
||||
- name: config-volume
|
||||
mountPath: /etc/searxng/settings.yml
|
||||
subPath: settings.yml
|
||||
readOnly: true
|
||||
- name: searxng-persistent-data
|
||||
mountPath: /var/cache/searxng
|
||||
volumes:
|
||||
- name: config-volume
|
||||
configMap:
|
||||
name: searxng-config
|
||||
- name: searxng-persistent-data
|
||||
persistentVolumeClaim:
|
||||
claimName: searxng-persistent-data
|
||||
25
apps/searxng/ingress.yaml
Normal file
25
apps/searxng/ingress.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
namespace: searxng
|
||||
name: searxng
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt
|
||||
spec:
|
||||
ingressClassName: nginx-ingress
|
||||
rules:
|
||||
- host: searxng.lumpiasty.xyz
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
service:
|
||||
name: searxng
|
||||
port:
|
||||
number: 8080
|
||||
path: /
|
||||
pathType: Prefix
|
||||
tls:
|
||||
- hosts:
|
||||
- searxng.lumpiasty.xyz
|
||||
secretName: searxng-ingress
|
||||
13
apps/searxng/kustomization.yaml
Normal file
13
apps/searxng/kustomization.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- pvc.yaml
|
||||
- deployment.yaml
|
||||
- service.yaml
|
||||
- ingress.yaml
|
||||
configMapGenerator:
|
||||
- name: searxng-config
|
||||
namespace: searxng
|
||||
files:
|
||||
- settings.yml=configs/settings.yml
|
||||
@@ -2,4 +2,4 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: ollama
|
||||
name: searxng
|
||||
13
apps/searxng/pvc.yaml
Normal file
13
apps/searxng/pvc.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
namespace: searxng
|
||||
name: searxng-persistent-data
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
||||
storageClassName: mayastor-single-ssd
|
||||
14
apps/searxng/service.yaml
Normal file
14
apps/searxng/service.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: searxng
|
||||
namespace: searxng
|
||||
spec:
|
||||
selector:
|
||||
app: searxng
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
type: ClusterIP
|
||||
18
infra/configs/single-ssd-sc.yaml
Normal file
18
infra/configs/single-ssd-sc.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
apiVersion: storage.k8s.io/v1
|
||||
kind: StorageClass
|
||||
metadata:
|
||||
name: mayastor-single-ssd
|
||||
parameters:
|
||||
protocol: nvmf
|
||||
# Single replica
|
||||
repl: "1"
|
||||
# Thin provision volumes
|
||||
thin: "true"
|
||||
# Generate new filesystem's uuid when cloning
|
||||
cloneFsIdAsVolumeId: "true"
|
||||
# Schedule this sconly on ssd
|
||||
poolAffinityTopologyLabel: |
|
||||
type: ssd
|
||||
provisioner: io.openebs.csi-mayastor
|
||||
# Allow expansion of volumes
|
||||
allowVolumeExpansion: true
|
||||
@@ -18,14 +18,14 @@ spec:
|
||||
chart:
|
||||
spec:
|
||||
chart: cert-manager-webhook-ovh
|
||||
version: 0.7.5
|
||||
version: 0.8.0
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: cert-manager-webhook-ovh
|
||||
namespace: cert-manager
|
||||
interval: 12h
|
||||
values:
|
||||
configVersion: 0.0.1
|
||||
configVersion: 0.0.2
|
||||
groupName: lumpiasty-homelab
|
||||
certManager:
|
||||
namespace: cert-manager
|
||||
@@ -38,6 +38,7 @@ spec:
|
||||
acmeServerUrl: https://acme-v02.api.letsencrypt.org/directory
|
||||
email: arek.dzski@gmail.com
|
||||
ovhEndpointName: ovh-eu
|
||||
ovhAuthenticationMethod: application
|
||||
ovhAuthenticationRef:
|
||||
applicationKeyRef:
|
||||
name: ovh-credentials
|
||||
@@ -45,6 +46,6 @@ spec:
|
||||
applicationSecretRef:
|
||||
name: ovh-credentials
|
||||
key: applicationSecret
|
||||
consumerKeyRef:
|
||||
applicationConsumerKeyRef:
|
||||
name: ovh-credentials
|
||||
key: consumerKey
|
||||
|
||||
@@ -23,7 +23,7 @@ spec:
|
||||
chart:
|
||||
spec:
|
||||
chart: cert-manager
|
||||
version: v1.18.2
|
||||
version: v1.19.1
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: cert-manager
|
||||
|
||||
@@ -23,7 +23,7 @@ spec:
|
||||
chart:
|
||||
spec:
|
||||
chart: cilium
|
||||
version: 1.17.6
|
||||
version: 1.18.2
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: cilium
|
||||
|
||||
@@ -23,7 +23,7 @@ spec:
|
||||
chart:
|
||||
spec:
|
||||
chart: cloudnative-pg
|
||||
version: 0.24.0
|
||||
version: 0.26.0
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: cnpg
|
||||
|
||||
@@ -97,7 +97,7 @@ spec:
|
||||
env:
|
||||
- name: GOMEMLIMIT
|
||||
value: 161MiB
|
||||
image: registry.k8s.io/coredns/coredns:v1.12.2
|
||||
image: registry.k8s.io/coredns/coredns:v1.13.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
|
||||
@@ -23,7 +23,7 @@ spec:
|
||||
chart:
|
||||
spec:
|
||||
chart: k8up
|
||||
version: 4.8.4
|
||||
version: 4.8.6
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: k8up-io
|
||||
|
||||
@@ -2,32 +2,32 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: nginx-ingress-controller
|
||||
name: nginx-ingress
|
||||
---
|
||||
apiVersion: source.toolkit.fluxcd.io/v1
|
||||
kind: HelmRepository
|
||||
metadata:
|
||||
name: nginx
|
||||
namespace: nginx-ingress-controller
|
||||
name: ingress-nginx
|
||||
namespace: nginx-ingress
|
||||
spec:
|
||||
interval: 24h
|
||||
url: https://helm.nginx.com/stable
|
||||
url: https://kubernetes.github.io/ingress-nginx
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: nginx-ingress
|
||||
namespace: nginx-ingress-controller
|
||||
namespace: nginx-ingress
|
||||
spec:
|
||||
interval: 30m
|
||||
chart:
|
||||
spec:
|
||||
chart: nginx-ingress
|
||||
version: 2.2.1
|
||||
chart: ingress-nginx
|
||||
version: 4.13.3
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: nginx
|
||||
namespace: nginx-ingress-controller
|
||||
name: ingress-nginx
|
||||
namespace: nginx-ingress
|
||||
interval: 12h
|
||||
values:
|
||||
controller:
|
||||
@@ -39,9 +39,11 @@ spec:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
|
||||
ingressClass:
|
||||
create: true
|
||||
setAsDefaultIngress: true
|
||||
ingressClass: "nginx-ingress"
|
||||
ingressClassResource:
|
||||
name: "nginx-ingress"
|
||||
enabled: true
|
||||
default: false
|
||||
|
||||
service:
|
||||
create: true
|
||||
@@ -49,11 +51,11 @@ spec:
|
||||
# Requirement for sharing ip with other service
|
||||
externalTrafficPolicy: Cluster
|
||||
ipFamilyPolicy: RequireDualStack
|
||||
ipFamilies:
|
||||
- IPv4
|
||||
- IPv6
|
||||
annotations:
|
||||
# Share IP with gitea ssh so we can have the same domain for both port
|
||||
lbipam.cilium.io/sharing-key: gitea
|
||||
lbipam.cilium.io/sharing-cross-namespace: gitea
|
||||
lbipam.cilium.io/ips: 10.44.0.0,2001:470:61a3:400::1
|
||||
config:
|
||||
entries:
|
||||
proxy-buffering: "false"
|
||||
lbipam.cilium.io/ips: 10.44.0.6,2001:470:61a3:400::6
|
||||
@@ -23,7 +23,7 @@ spec:
|
||||
chart:
|
||||
spec:
|
||||
chart: openbao
|
||||
version: 0.16.2
|
||||
version: 0.19.0
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: openbao
|
||||
|
||||
@@ -23,7 +23,7 @@ spec:
|
||||
chart:
|
||||
spec:
|
||||
chart: openebs
|
||||
version: 4.3.2
|
||||
version: 4.3.3
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: openebs
|
||||
|
||||
@@ -23,7 +23,7 @@ spec:
|
||||
chart:
|
||||
spec:
|
||||
chart: vault-secrets-operator
|
||||
version: 0.10.0
|
||||
version: 1.0.1
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: hashicorp
|
||||
|
||||
11
infra/diskpools/anapistula-delrosalae-ssd.yaml
Normal file
11
infra/diskpools/anapistula-delrosalae-ssd.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
apiVersion: "openebs.io/v1beta3"
|
||||
kind: DiskPool
|
||||
metadata:
|
||||
name: anapistula-delrosalae-ssd
|
||||
namespace: openebs
|
||||
spec:
|
||||
node: anapistula-delrosalae
|
||||
disks: ["aio:///dev/disk/by-id/nvme-eui.000000000000000000a07501ead1ebdb"]
|
||||
topology:
|
||||
labelled:
|
||||
type: ssd
|
||||
@@ -3,7 +3,7 @@ kind: Kustomization
|
||||
resources:
|
||||
- controllers/k8up-crd-4.8.3.yaml
|
||||
- controllers/cilium.yaml
|
||||
- controllers/nginx.yaml
|
||||
- controllers/nginx-ingress.yaml
|
||||
- controllers/dns-public.yaml
|
||||
- controllers/cert-manager.yaml
|
||||
- controllers/cert-manager-webhook-ovh.yaml
|
||||
@@ -15,9 +15,11 @@ resources:
|
||||
- controllers/mongodb-operator.yaml
|
||||
- controllers/cloudnative-pg.yaml
|
||||
- diskpools/anapistula-delrosalae-hdd.yaml
|
||||
- diskpools/anapistula-delrosalae-ssd.yaml
|
||||
- configs/bgp-cluster-config.yaml
|
||||
- configs/loadbalancer-ippool.yaml
|
||||
- configs/single-hdd-sc.yaml
|
||||
- configs/single-ssd-sc.yaml
|
||||
- configs/mayastor-snapshotclass.yaml
|
||||
- configs/openbao-cert.yaml
|
||||
- configs/ovh-cert-manager-secret.yaml
|
||||
|
||||
@@ -10,14 +10,14 @@ machine:
|
||||
gateway: 2001:470:61a3:100:ffff:ffff:ffff:ffff
|
||||
- network: 0.0.0.0/0
|
||||
gateway: 192.168.1.1
|
||||
mtu: 1500
|
||||
mtu: 1280
|
||||
|
||||
install:
|
||||
diskSelector:
|
||||
wwid: t10.ATA SSDPR-CX400-256 GUH039914
|
||||
# Generated on https://factory.talos.dev/
|
||||
# intel-ucode and amdgpu
|
||||
image: factory.talos.dev/installer/06deebb947b815afa53f04c450d355d3c8bc28927a387c754db1622a0a06349e:v1.9.5
|
||||
# amd-ucode and amdgpu
|
||||
image: factory.talos.dev/metal-installer/9c1d1b442d73f96dcd04e81463eb20000ab014062d22e1b083e1773336bc1dd5:v1.10.6
|
||||
extraKernelArgs:
|
||||
- cpufreq.default_governor=performance
|
||||
sysfs:
|
||||
@@ -27,4 +27,3 @@ machine:
|
||||
devices.system.cpu.cpu6.cpufreq.scaling_max_freq: "550000"
|
||||
devices.system.cpu.cpu7.cpufreq.scaling_max_freq: "550000"
|
||||
devices.system.cpu.cpu8.cpufreq.scaling_max_freq: "550000"
|
||||
|
||||
|
||||
6
vault/kubernetes-roles/immich.yaml
Normal file
6
vault/kubernetes-roles/immich.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
bound_service_account_names:
|
||||
- immich-password
|
||||
bound_service_account_namespaces:
|
||||
- immich
|
||||
token_policies:
|
||||
- immich
|
||||
4
vault/policy/immich.hcl
Normal file
4
vault/policy/immich.hcl
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
path "secret/data/immich-db" {
|
||||
capabilities = ["read"]
|
||||
}
|
||||
Reference in New Issue
Block a user