Compare commits
363 Commits
fresh-star
...
09fbb76c8e
| Author | SHA1 | Date | |
|---|---|---|---|
| 09fbb76c8e | |||
| b1f3337c98 | |||
| e610e96d80 | |||
| c9997fb8a7 | |||
| b9cc44d7e8 | |||
| be884d07c6 | |||
| 2875d84f33 | |||
| 573601a7ec | |||
| fb60744c5a | |||
| 52ca68c4ce | |||
| 0934a1130a | |||
| 3d28650c1b | |||
| 15063c9885 | |||
| ba3cb2571c | |||
| 5edaeb123c | |||
| 0dc37f69cb | |||
| 777239ccb5 | |||
| 352af6f386 | |||
| 230197e3c6 | |||
| 0c5e22f538 | |||
| e79386b4a5 | |||
| 8f4932132a | |||
| bb6272b16e | |||
| 3a71410c19 | |||
| e5af5c3945 | |||
| 6de56bfd10 | |||
| d70a704f89 | |||
| 5df94c4656 | |||
| a6772893d0 | |||
| ba31945337 | |||
| fcaa28c95a | |||
| a40f9a046a | |||
| 80ed3358e8 | |||
| eae4ff426c | |||
| 0fadd95386 | |||
| 29e06c60eb | |||
| 27ae162886 | |||
| d96344b310 | |||
| e3483fcfe3 | |||
| 784b335f65 | |||
| 9300e327df | |||
| 90fb555dc2 | |||
| 78b3b6b400 | |||
| 90897daa27 | |||
| 0368252850 | |||
| 1503c57fbe | |||
| 0f12840b35 | |||
| 87a071925c | |||
| b6efe42dc2 | |||
| d2cfd7b73d | |||
| bf1cae3fc7 | |||
| 6712e94237 | |||
| 6f8e10f3fc | |||
| 3c04fd6b10 | |||
| ef353d635a | |||
| 0097d057d5 | |||
| b454fc606f | |||
| 7feb19b7fc | |||
| b21f8e402b | |||
| 68f51b26b0 | |||
| 1095d7ef4d | |||
| 8d83c6dc83 | |||
| 65e75a4d39 | |||
| 6c7457d095 | |||
| 9b556e98a9 | |||
| 202ebc7b86 | |||
| ec61023f74 | |||
| 05d3493bb7 | |||
| 2a9f8c3092 | |||
| 226ee59fa6 | |||
| c8f34c45ac | |||
| c0fa400159 | |||
| 6ccb00e86e | |||
| 7b8fb8d8bb | |||
| 0ae3181267 | |||
| c0d83249b9 | |||
| 974d70a39e | |||
| 4518fc674a | |||
| c3912af26b | |||
| 797b97496e | |||
| 29457af188 | |||
| 2a8e56824e | |||
| f71794de4d | |||
| 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 | |||
| 9765f1cf86 | |||
| 5f3a00b382 | |||
| b379c181f2 | |||
| e1801347f2 | |||
| d53db88fd2 | |||
| 5fb2bcfc7e | |||
| f5da3b52a2 | |||
| c3dbb0a608 | |||
| a520c62277 | |||
| 6cf45eda17 | |||
| 753d43b643 | |||
| 263b60018d | |||
| 0816b6e434 | |||
| 18eb912f03 | |||
| a2c23c5f97 | |||
| 15ce411c3e | |||
| 04a8c98d63 | |||
| f46219f87e | |||
| 53154eeed7 | |||
| 2ad310c550 | |||
| d32d94eb00 | |||
| 5b62f7e386 | |||
| 52124193e2 | |||
| 0f8ee9e53d | |||
| 122c70d0a8 | |||
| 5463d76771 | |||
| 60f2056806 | |||
| 6119ac7271 | |||
| 1a01f82e30 | |||
| 74c9ddad62 | |||
| caf62609d3 | |||
| d5622416de | |||
| 4183831d2f | |||
| ae6ed770a9 | |||
| 59d936d467 | |||
| 9b56ce5e4f | |||
| 2424ad440b | |||
| dff138ba31 | |||
| d95eb6f4ab | |||
| 5252f209f5 | |||
| e7348b2718 | |||
| c7cd2c5355 | |||
| 71e75afadb | |||
| 23169aa2ca | |||
| d8aa0a6a32 | |||
| a6630c0376 | |||
| 9056839784 | |||
| 1f8afa2f8e | |||
| e7b22509cd | |||
| e39574b60e | |||
| 197ceb6688 | |||
| 3e95a5edd1 | |||
| 10fe51f52d | |||
| e197cf5e5e | |||
| c54109dbf3 | |||
| 5a97e4b1d8 | |||
| 12cdfd96e2 | |||
| 7d2056b3ee | |||
| 35e579fc01 | |||
| 302613b76a | |||
| 89542df777 | |||
| 233466e2cd | |||
| 461f0589b3 | |||
| 5c16cd3a4b | |||
| 5cd5263d19 | |||
| a886e7c79c | |||
| dd676716f9 | |||
| 110ffa9c22 | |||
| 6ed7d61e21 | |||
| 051083cd6e | |||
| 87f2446cd1 | |||
| faa55fa069 | |||
| af29de91d6 | |||
| 5f3a775201 | |||
| 81f750e5e5 | |||
| 641e50b5e9 | |||
| 3fe8626391 | |||
| 94f851c607 | |||
| d2134ad554 | |||
| 22910085b7 | |||
| 6a4dee0852 | |||
| 49d5803b4f | |||
| b5c51f6720 | |||
| 3a8dbc6e0c | |||
| ead8be8bcb | |||
| f027dad029 | |||
| e35b8ccac8 | |||
| f69128b245 | |||
| d14b62f384 | |||
| ab7b8a6f26 | |||
| 8acc480b05 | |||
| 65834037ee | |||
| 1bf63168f2 | |||
| b3db332075 | |||
| b84c792992 | |||
| 947f154a81 | |||
| 1a88b1c602 | |||
| 55fce1fc36 | |||
| bb4afc0c07 | |||
| eb92a85cac | |||
| 8f70ae5f2e | |||
| f89a2fd1cc | |||
| b493ee9d77 | |||
| 8de0663571 | |||
| 3fc534f44b | |||
| 1c8ccd0fc4 | |||
| 847fd3557b | |||
| d2c2f5038f | |||
| afb9dcec65 | |||
| ba51980cec | |||
| e0eb26b63d | |||
| eda5ba08a0 | |||
| 318aedf89d | |||
| 7b9090afc1 | |||
| a109290c18 | |||
| f4b9742ab1 | |||
| b103358816 | |||
| 46cacb339d | |||
| 1e7dd52721 | |||
| 044cc37392 | |||
| 68ba891abc | |||
| 81ed455ff8 | |||
| b7c2da4419 | |||
| 4bc01e2e78 | |||
| 94d51de471 | |||
| dc0104c55d | |||
| 83be6619e8 | |||
| 48ccacefdd | |||
| cfeef90515 | |||
| ce0bef4970 | |||
| bd5fd97ed0 | |||
| 52641779bc | |||
| e98e02705d | |||
| 3c849f52f7 | |||
| 36187fff41 | |||
| 1ac7504585 | |||
| 879c013e89 | |||
| aa7fe8d3cf | |||
| fd280f1fca | |||
| 2ad381e35c | |||
| e63a285dc3 | |||
| 5336df3134 | |||
| 966639e3c8 | |||
| 97924a8064 | |||
| 37b78f079e | |||
| 0d17825eab | |||
| ffeecf65f6 | |||
| fea49ae167 | |||
| 6b6e7937c1 | |||
| 487baa2813 | |||
| fe2f79d13c | |||
| c3a747c03c | |||
| f1f6ffb9a0 | |||
| e851f6ab8c | |||
| 2ecd20c9d7 | |||
| bdb3bd3234 | |||
| 47e957e444 | |||
| b2dfb2dc0b | |||
| 6ccc964c87 | |||
| 5c7b258ccf | |||
| 351426f055 | |||
| ca598f9750 | |||
| 0cb93ce8a1 | |||
| 6fde991ba9 | |||
| 5f3840cc02 | |||
| d9a22723ef | |||
| f97a655ad5 | |||
| c2aacd0ef4 | |||
| f36ce88026 | |||
| d19d332b59 | |||
| 5cf9de7997 | |||
| 3c84632a2d | |||
| 14bcc8546c | |||
| ca8a63fdbe | |||
| 3a46d17f02 | |||
| add851ee9e | |||
| edbfd26bde | |||
| dea0dfb7cc | |||
| 874fc826cd | |||
| 33cb5c72c7 | |||
| 31df54fcf0 |
12
.envrc
Normal file
12
.envrc
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
export DIRENV_WARN_TIMEOUT=20s
|
||||||
|
|
||||||
|
eval "$(devenv direnvrc)"
|
||||||
|
|
||||||
|
# `use devenv` supports the same options as the `devenv shell` command.
|
||||||
|
#
|
||||||
|
# To silence all output, use `--quiet`.
|
||||||
|
#
|
||||||
|
# Example usage: use devenv --quiet --impure --option services.postgres.enable:bool true
|
||||||
|
use devenv
|
||||||
12
.gitignore
vendored
12
.gitignore
vendored
@@ -1,2 +1,12 @@
|
|||||||
secrets.yaml
|
secrets.yaml
|
||||||
talos/generated
|
talos/generated
|
||||||
|
# Devenv
|
||||||
|
.devenv*
|
||||||
|
devenv.local.nix
|
||||||
|
devenv.local.yaml
|
||||||
|
|
||||||
|
# direnv
|
||||||
|
.direnv
|
||||||
|
|
||||||
|
# pre-commit
|
||||||
|
.pre-commit-config.yaml
|
||||||
|
|||||||
6
.vscode/extensions.json
vendored
6
.vscode/extensions.json
vendored
@@ -1,3 +1,7 @@
|
|||||||
{
|
{
|
||||||
"recommendations": ["arrterian.nix-env-selector", "jnoortheen.nix-ide"]
|
"recommendations": [
|
||||||
|
"jnoortheen.nix-ide",
|
||||||
|
"detachhead.basedpyright",
|
||||||
|
"mkhl.direnv"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
12
.vscode/settings.json
vendored
12
.vscode/settings.json
vendored
@@ -1,12 +1,4 @@
|
|||||||
{
|
{
|
||||||
"nixEnvSelector.nixFile": "${workspaceFolder}/shell.nix",
|
"ansible.python.interpreterPath": "/bin/python",
|
||||||
"terminal.integrated.profiles.linux": {
|
"python.defaultInterpreterPath": "${env:PYTHON_BIN}"
|
||||||
"Nix Shell": {
|
|
||||||
"path": "nix",
|
|
||||||
"args": ["develop"],
|
|
||||||
"icon": "terminal-linux"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"terminal.integrated.defaultProfile.linux": "Nix Shell",
|
|
||||||
"ansible.python.interpreterPath": "/bin/python"
|
|
||||||
}
|
}
|
||||||
|
|||||||
12
Makefile
12
Makefile
@@ -3,7 +3,17 @@ install-router:
|
|||||||
|
|
||||||
gen-talos-config:
|
gen-talos-config:
|
||||||
mkdir -p talos/generated
|
mkdir -p talos/generated
|
||||||
talosctl gen config --with-secrets secrets.yaml --config-patch @talos/patches/controlplane.patch --config-patch @talos/patches/openebs.patch --config-patch @talos/patches/openbao.patch --config-patch @talos/patches/anapistula-delrosalae.patch --output-types controlplane -o talos/generated/anapistula-delrosalae.yaml homelab https://kube-api.homelab.lumpiasty.xyz:6443
|
talosctl gen config \
|
||||||
|
--with-secrets secrets.yaml \
|
||||||
|
--config-patch @talos/patches/controlplane.patch \
|
||||||
|
--config-patch @talos/patches/openebs.patch \
|
||||||
|
--config-patch @talos/patches/openbao.patch \
|
||||||
|
--config-patch @talos/patches/ollama.patch \
|
||||||
|
--config-patch @talos/patches/llama.patch \
|
||||||
|
--config-patch @talos/patches/frigate.patch \
|
||||||
|
--config-patch @talos/patches/anapistula-delrosalae.patch \
|
||||||
|
--output-types controlplane -o talos/generated/anapistula-delrosalae.yaml \
|
||||||
|
homelab https://kube-api.homelab.lumpiasty.xyz:6443
|
||||||
talosctl gen config --with-secrets secrets.yaml --config-patch @talos/patches/controlplane.patch --output-types worker -o talos/generated/worker.yaml homelab https://kube-api.homelab.lumpiasty.xyz:6443
|
talosctl gen config --with-secrets secrets.yaml --config-patch @talos/patches/controlplane.patch --output-types worker -o talos/generated/worker.yaml homelab https://kube-api.homelab.lumpiasty.xyz:6443
|
||||||
talosctl gen config --with-secrets secrets.yaml --output-types talosconfig -o talos/generated/talosconfig homelab https://kube-api.homelab.lumpiasty.xyz:6443
|
talosctl gen config --with-secrets secrets.yaml --output-types talosconfig -o talos/generated/talosconfig homelab https://kube-api.homelab.lumpiasty.xyz:6443
|
||||||
talosctl config endpoint kube-api.homelab.lumpiasty.xyz
|
talosctl config endpoint kube-api.homelab.lumpiasty.xyz
|
||||||
|
|||||||
49
apps/frigate/config-pvc.yaml
Normal file
49
apps/frigate/config-pvc.yaml
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
apiVersion: local.openebs.io/v1alpha1
|
||||||
|
kind: LVMVolume
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
kubernetes.io/nodename: anapistula-delrosalae
|
||||||
|
name: frigate-config
|
||||||
|
namespace: openebs
|
||||||
|
spec:
|
||||||
|
capacity: 5Gi
|
||||||
|
ownerNodeID: anapistula-delrosalae
|
||||||
|
shared: "yes"
|
||||||
|
thinProvision: "no"
|
||||||
|
vgPattern: ^openebs-hdd$
|
||||||
|
volGroup: openebs-hdd
|
||||||
|
---
|
||||||
|
kind: PersistentVolume
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: frigate-config
|
||||||
|
spec:
|
||||||
|
capacity:
|
||||||
|
storage: 5Gi
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
persistentVolumeReclaimPolicy: Retain
|
||||||
|
storageClassName: openebs-lvmpv
|
||||||
|
volumeMode: Filesystem
|
||||||
|
csi:
|
||||||
|
driver: local.csi.openebs.io
|
||||||
|
volumeHandle: frigate-config
|
||||||
|
claimRef:
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
namespace: frigate
|
||||||
|
name: frigate-config
|
||||||
|
---
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: frigate-config
|
||||||
|
namespace: frigate
|
||||||
|
spec:
|
||||||
|
storageClassName: openebs-lvmpv
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 5Gi
|
||||||
|
volumeName: frigate-config
|
||||||
9
apps/frigate/kustomization.yaml
Normal file
9
apps/frigate/kustomization.yaml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- namespace.yaml
|
||||||
|
- secret.yaml
|
||||||
|
- config-pvc.yaml
|
||||||
|
- media-pvc.yaml
|
||||||
|
- release.yaml
|
||||||
|
- webrtc-svc.yaml
|
||||||
49
apps/frigate/media-pvc.yaml
Normal file
49
apps/frigate/media-pvc.yaml
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
apiVersion: local.openebs.io/v1alpha1
|
||||||
|
kind: LVMVolume
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
kubernetes.io/nodename: anapistula-delrosalae
|
||||||
|
name: frigate-media
|
||||||
|
namespace: openebs
|
||||||
|
spec:
|
||||||
|
capacity: 500Gi
|
||||||
|
ownerNodeID: anapistula-delrosalae
|
||||||
|
shared: "yes"
|
||||||
|
thinProvision: "no"
|
||||||
|
vgPattern: ^openebs-hdd$
|
||||||
|
volGroup: openebs-hdd
|
||||||
|
---
|
||||||
|
kind: PersistentVolume
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: frigate-media
|
||||||
|
spec:
|
||||||
|
capacity:
|
||||||
|
storage: 500Gi
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
persistentVolumeReclaimPolicy: Retain
|
||||||
|
storageClassName: openebs-lvmpv
|
||||||
|
volumeMode: Filesystem
|
||||||
|
csi:
|
||||||
|
driver: local.csi.openebs.io
|
||||||
|
volumeHandle: frigate-media
|
||||||
|
claimRef:
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
namespace: frigate
|
||||||
|
name: frigate-media
|
||||||
|
---
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: frigate-media
|
||||||
|
namespace: frigate
|
||||||
|
spec:
|
||||||
|
storageClassName: openebs-lvmpv
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 500Gi
|
||||||
|
volumeName: frigate-media
|
||||||
5
apps/frigate/namespace.yaml
Normal file
5
apps/frigate/namespace.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: frigate
|
||||||
181
apps/frigate/release.yaml
Normal file
181
apps/frigate/release.yaml
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
apiVersion: source.toolkit.fluxcd.io/v1
|
||||||
|
kind: HelmRepository
|
||||||
|
metadata:
|
||||||
|
name: blakeblackshear
|
||||||
|
namespace: frigate
|
||||||
|
spec:
|
||||||
|
interval: 24h
|
||||||
|
url: https://blakeblackshear.github.io/blakeshome-charts/
|
||||||
|
---
|
||||||
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||||
|
kind: HelmRelease
|
||||||
|
metadata:
|
||||||
|
name: frigate
|
||||||
|
namespace: frigate
|
||||||
|
spec:
|
||||||
|
interval: 30m
|
||||||
|
chart:
|
||||||
|
spec:
|
||||||
|
chart: frigate
|
||||||
|
version: 7.8.0
|
||||||
|
sourceRef:
|
||||||
|
kind: HelmRepository
|
||||||
|
name: blakeblackshear
|
||||||
|
namespace: frigate
|
||||||
|
interval: 12h
|
||||||
|
values:
|
||||||
|
config: |
|
||||||
|
mqtt:
|
||||||
|
enabled: False
|
||||||
|
|
||||||
|
tls:
|
||||||
|
enabled: False
|
||||||
|
|
||||||
|
auth:
|
||||||
|
enabled: True
|
||||||
|
cookie_secure: True
|
||||||
|
|
||||||
|
record:
|
||||||
|
expire_interval: 1440 # 24h
|
||||||
|
sync_recordings: True
|
||||||
|
enabled: True
|
||||||
|
retain:
|
||||||
|
days: 90
|
||||||
|
mode: motion
|
||||||
|
|
||||||
|
objects:
|
||||||
|
track:
|
||||||
|
- person
|
||||||
|
- bicycle
|
||||||
|
- car
|
||||||
|
- motorcycle
|
||||||
|
- cat
|
||||||
|
- dog
|
||||||
|
- horse
|
||||||
|
- sheep
|
||||||
|
- cow
|
||||||
|
- bear
|
||||||
|
|
||||||
|
review:
|
||||||
|
alerts:
|
||||||
|
labels:
|
||||||
|
- person
|
||||||
|
- bicycle
|
||||||
|
- car
|
||||||
|
- motorcycle
|
||||||
|
- cat
|
||||||
|
- dog
|
||||||
|
- horse
|
||||||
|
- sheep
|
||||||
|
- cow
|
||||||
|
- bear
|
||||||
|
|
||||||
|
cameras:
|
||||||
|
dom:
|
||||||
|
enabled: True
|
||||||
|
ffmpeg:
|
||||||
|
inputs:
|
||||||
|
- path: rtsp://127.0.0.1:8554/dom
|
||||||
|
roles:
|
||||||
|
- audio
|
||||||
|
- detect
|
||||||
|
- record
|
||||||
|
output_args:
|
||||||
|
record: preset-record-generic-audio-copy
|
||||||
|
motion:
|
||||||
|
mask:
|
||||||
|
# Sasiad
|
||||||
|
- 0.436,0,0.421,0.072,0.424,0.124,0.304,0.242,0.295,0.194,0.035,0.497,0.035,0.6,0,0.664,0,0
|
||||||
|
garaz:
|
||||||
|
enabled: True
|
||||||
|
ffmpeg:
|
||||||
|
inputs:
|
||||||
|
- path: rtsp://127.0.0.1:8554/garaz
|
||||||
|
roles:
|
||||||
|
- audio
|
||||||
|
- detect
|
||||||
|
- record
|
||||||
|
output_args:
|
||||||
|
record: preset-record-generic-audio-copy
|
||||||
|
motion:
|
||||||
|
mask:
|
||||||
|
# Sasiad
|
||||||
|
- 0.662,0.212,0.569,0.2,0.566,0.149,0.549,0.119,0.532,0.169,0.495,0.14,0.491,0,0.881,0,1,0.154,1,0.221,0.986,0.296,0.94,0.28,0.944,0.178,0.664,0.126
|
||||||
|
# Drzewo
|
||||||
|
- 0.087,0.032,0,0.174,0,0.508,0.139,0.226,0.12,0.108
|
||||||
|
objects:
|
||||||
|
filters:
|
||||||
|
person:
|
||||||
|
# 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
|
||||||
|
|
||||||
|
detectors:
|
||||||
|
ov_0:
|
||||||
|
type: openvino
|
||||||
|
device: CPU
|
||||||
|
model:
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
input_tensor: nhwc
|
||||||
|
input_pixel_format: bgr
|
||||||
|
path: /openvino-model/ssdlite_mobilenet_v2.xml
|
||||||
|
labelmap_path: /openvino-model/coco_91cl_bkgr.txt
|
||||||
|
|
||||||
|
go2rtc:
|
||||||
|
streams:
|
||||||
|
dom:
|
||||||
|
- rtsp://{FRIGATE_RTSP_DOM_USER}:{FRIGATE_RTSP_DOM_PASSWORD_URLENCODED}@192.168.3.10:554/Streaming/Channels/101
|
||||||
|
garaz:
|
||||||
|
- rtsp://{FRIGATE_RTSP_GARAZ_USER}:{FRIGATE_RTSP_GARAZ_PASSWORD_URLENCODED}@192.168.3.11:554/Streaming/Channels/101
|
||||||
|
webrtc:
|
||||||
|
candidates:
|
||||||
|
- frigate-rtc.lumpiasty.xyz:8555
|
||||||
|
persistence:
|
||||||
|
media:
|
||||||
|
enabled: true
|
||||||
|
size: 500Gi
|
||||||
|
storageClass: mayastor-single-hdd
|
||||||
|
skipuninstall: true
|
||||||
|
config:
|
||||||
|
enabled: true
|
||||||
|
size: 5Gi
|
||||||
|
storageClass: mayastor-single-hdd
|
||||||
|
skipuninstall: true
|
||||||
|
envFromSecrets:
|
||||||
|
- frigate-camera-rtsp
|
||||||
|
|
||||||
|
ingress:
|
||||||
|
enabled: true
|
||||||
|
ingressClassName: nginx-ingress
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt
|
||||||
|
hosts:
|
||||||
|
- host: frigate.lumpiasty.xyz
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
portName: http-auth
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- frigate.lumpiasty.xyz
|
||||||
|
secretName: frigate-ingress
|
||||||
|
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/hostname: anapistula-delrosalae
|
||||||
|
|
||||||
|
# GPU access
|
||||||
|
# extraVolumes:
|
||||||
|
# - name: dri
|
||||||
|
# hostPath:
|
||||||
|
# path: /dev/dri/renderD128
|
||||||
|
# type: CharDevice
|
||||||
|
|
||||||
|
# extraVolumeMounts:
|
||||||
|
# - name: dri
|
||||||
|
# mountPath: /dev/dri/renderD128
|
||||||
|
|
||||||
|
# securityContext:
|
||||||
|
# # Not ideal
|
||||||
|
# privileged: true
|
||||||
43
apps/frigate/secret.yaml
Normal file
43
apps/frigate/secret.yaml
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: camera
|
||||||
|
namespace: frigate
|
||||||
|
---
|
||||||
|
apiVersion: secrets.hashicorp.com/v1beta1
|
||||||
|
kind: VaultAuth
|
||||||
|
metadata:
|
||||||
|
name: camera
|
||||||
|
namespace: frigate
|
||||||
|
spec:
|
||||||
|
method: kubernetes
|
||||||
|
mount: kubernetes
|
||||||
|
kubernetes:
|
||||||
|
role: frigate-camera
|
||||||
|
serviceAccount: camera
|
||||||
|
---
|
||||||
|
apiVersion: secrets.hashicorp.com/v1beta1
|
||||||
|
kind: VaultStaticSecret
|
||||||
|
metadata:
|
||||||
|
name: frigate-camera-rtsp
|
||||||
|
namespace: frigate
|
||||||
|
spec:
|
||||||
|
type: kv-v2
|
||||||
|
|
||||||
|
mount: secret
|
||||||
|
path: cameras
|
||||||
|
|
||||||
|
destination:
|
||||||
|
create: true
|
||||||
|
name: frigate-camera-rtsp
|
||||||
|
type: Opaque
|
||||||
|
transformation:
|
||||||
|
excludeRaw: true
|
||||||
|
templates:
|
||||||
|
FRIGATE_RTSP_DOM_PASSWORD_URLENCODED:
|
||||||
|
text: '{{ urlquery (get .Secrets "FRIGATE_RTSP_DOM_PASSWORD") }}'
|
||||||
|
FRIGATE_RTSP_GARAZ_PASSWORD_URLENCODED:
|
||||||
|
text: '{{ urlquery (get .Secrets "FRIGATE_RTSP_GARAZ_PASSWORD") }}'
|
||||||
|
|
||||||
|
vaultAuthRef: camera
|
||||||
20
apps/frigate/webrtc-svc.yaml
Normal file
20
apps/frigate/webrtc-svc.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: go2rtc
|
||||||
|
namespace: frigate
|
||||||
|
spec:
|
||||||
|
type: LoadBalancer
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/instance: frigate
|
||||||
|
app.kubernetes.io/name: frigate
|
||||||
|
ipFamilyPolicy: RequireDualStack
|
||||||
|
ports:
|
||||||
|
- name: webrtc-tcp
|
||||||
|
protocol: TCP
|
||||||
|
port: 8555
|
||||||
|
targetPort: webrtc-tcp
|
||||||
|
- name: webrtc-udp
|
||||||
|
protocol: UDP
|
||||||
|
port: 8555
|
||||||
|
targetPort: webrtc-udp
|
||||||
33
apps/gitea/backups.yaml
Normal file
33
apps/gitea/backups.yaml
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
apiVersion: k8up.io/v1
|
||||||
|
kind: Schedule
|
||||||
|
metadata:
|
||||||
|
name: gitea-backup
|
||||||
|
namespace: gitea
|
||||||
|
spec:
|
||||||
|
backend:
|
||||||
|
# Manually adding secrets for now
|
||||||
|
repoPasswordSecretRef:
|
||||||
|
name: gitea-backup-restic
|
||||||
|
key: password
|
||||||
|
s3:
|
||||||
|
endpoint: https://s3.eu-central-003.backblazeb2.com
|
||||||
|
bucket: lumpiasty-backups
|
||||||
|
accessKeyIDSecretRef:
|
||||||
|
name: gitea-backup-backblaze
|
||||||
|
key: aws_access_key_id
|
||||||
|
secretAccessKeySecretRef:
|
||||||
|
name: gitea-backup-backblaze
|
||||||
|
key: aws_secret_access_key
|
||||||
|
backup:
|
||||||
|
schedule: "@daily-random"
|
||||||
|
failedJobsHistoryLimit: 2
|
||||||
|
successfulJobsHistoryLimit: 2
|
||||||
|
check:
|
||||||
|
schedule: "@daily-random"
|
||||||
|
prune:
|
||||||
|
schedule: "@daily-random"
|
||||||
|
retention:
|
||||||
|
keepLast: 14
|
||||||
|
keepDaily: 14
|
||||||
|
keepWeekly: 50
|
||||||
|
keepYearly: 10
|
||||||
9
apps/gitea/kustomization.yaml
Normal file
9
apps/gitea/kustomization.yaml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- namespace.yaml
|
||||||
|
- postgres-volume.yaml
|
||||||
|
- postgres-cluster.yaml
|
||||||
|
- release.yaml
|
||||||
|
- secret.yaml
|
||||||
|
- backups.yaml
|
||||||
5
apps/gitea/namespace.yaml
Normal file
5
apps/gitea/namespace.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: gitea
|
||||||
16
apps/gitea/postgres-cluster.yaml
Normal file
16
apps/gitea/postgres-cluster.yaml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
apiVersion: postgresql.cnpg.io/v1
|
||||||
|
kind: Cluster
|
||||||
|
metadata:
|
||||||
|
name: gitea-postgresql-cluster
|
||||||
|
namespace: gitea
|
||||||
|
spec:
|
||||||
|
instances: 1
|
||||||
|
|
||||||
|
storage:
|
||||||
|
size: 10Gi
|
||||||
|
storageClass: mayastor-single-hdd
|
||||||
|
|
||||||
|
backup:
|
||||||
|
volumeSnapshot:
|
||||||
|
className: csi-mayastor-snapshotclass
|
||||||
32
apps/gitea/postgres-volume.yaml
Normal file
32
apps/gitea/postgres-volume.yaml
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
apiVersion: local.openebs.io/v1alpha1
|
||||||
|
kind: LVMVolume
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
kubernetes.io/nodename: anapistula-delrosalae
|
||||||
|
name: gitea-postgresql-cluster-lvmhdd-1
|
||||||
|
namespace: openebs
|
||||||
|
spec:
|
||||||
|
capacity: 20Gi
|
||||||
|
ownerNodeID: anapistula-delrosalae
|
||||||
|
shared: "yes"
|
||||||
|
thinProvision: "no"
|
||||||
|
vgPattern: ^openebs-hdd$
|
||||||
|
volGroup: openebs-hdd
|
||||||
|
---
|
||||||
|
kind: PersistentVolume
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: gitea-postgresql-cluster-lvmhdd-1
|
||||||
|
spec:
|
||||||
|
capacity:
|
||||||
|
storage: 20Gi
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
persistentVolumeReclaimPolicy: Retain
|
||||||
|
storageClassName: openebs-lvmpv
|
||||||
|
volumeMode: Filesystem
|
||||||
|
csi:
|
||||||
|
driver: local.csi.openebs.io
|
||||||
|
volumeHandle: gitea-postgresql-cluster-lvmhdd-1
|
||||||
|
---
|
||||||
|
# PVCs are dynamically created by the Postgres operator
|
||||||
@@ -1,9 +1,3 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: gitea
|
|
||||||
---
|
|
||||||
apiVersion: source.toolkit.fluxcd.io/v1
|
apiVersion: source.toolkit.fluxcd.io/v1
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
metadata:
|
metadata:
|
||||||
@@ -23,7 +17,7 @@ spec:
|
|||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: gitea
|
chart: gitea
|
||||||
version: 10.6.0
|
version: 12.5.0
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: gitea-charts
|
name: gitea-charts
|
||||||
@@ -34,7 +28,7 @@ spec:
|
|||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
postgresql:
|
postgresql:
|
||||||
enabled: true
|
enabled: false
|
||||||
primary:
|
primary:
|
||||||
persistence:
|
persistence:
|
||||||
enabled: true
|
enabled: true
|
||||||
@@ -43,12 +37,12 @@ spec:
|
|||||||
requests:
|
requests:
|
||||||
cpu: 0
|
cpu: 0
|
||||||
|
|
||||||
redis-cluster:
|
valkey-cluster:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
redis:
|
valkey:
|
||||||
enabled: true
|
enabled: true
|
||||||
master:
|
primary:
|
||||||
persistence:
|
persistence:
|
||||||
enabled: true
|
enabled: true
|
||||||
storageClass: mayastor-single-hdd
|
storageClass: mayastor-single-hdd
|
||||||
@@ -60,13 +54,19 @@ spec:
|
|||||||
enabled: true
|
enabled: true
|
||||||
storageClass: mayastor-single-hdd
|
storageClass: mayastor-single-hdd
|
||||||
|
|
||||||
image:
|
|
||||||
tag: 1.23.3
|
|
||||||
|
|
||||||
gitea:
|
gitea:
|
||||||
|
additionalConfigFromEnvs:
|
||||||
|
- name: GITEA__DATABASE__PASSWD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: gitea-postgresql-cluster-app
|
||||||
|
key: password
|
||||||
config:
|
config:
|
||||||
database:
|
database:
|
||||||
DB_TYPE: postgres
|
DB_TYPE: postgres
|
||||||
|
HOST: gitea-postgresql-cluster-rw:5432
|
||||||
|
NAME: app
|
||||||
|
USER: app
|
||||||
indexer:
|
indexer:
|
||||||
ISSUE_INDEXER_TYPE: bleve
|
ISSUE_INDEXER_TYPE: bleve
|
||||||
REPO_INDEXER_ENABLED: true
|
REPO_INDEXER_ENABLED: true
|
||||||
@@ -79,8 +79,8 @@ spec:
|
|||||||
ssh:
|
ssh:
|
||||||
annotations:
|
annotations:
|
||||||
lbipam.cilium.io/sharing-key: gitea
|
lbipam.cilium.io/sharing-key: gitea
|
||||||
lbipam.cilium.io/sharing-cross-namespace: nginx-ingress-controller
|
lbipam.cilium.io/sharing-cross-namespace: nginx-ingress
|
||||||
lbipam.cilium.io/ips: 10.44.0.0,2001:470:61a3:400::1
|
lbipam.cilium.io/ips: 10.44.0.6,2001:470:61a3:400::6
|
||||||
type: LoadBalancer
|
type: LoadBalancer
|
||||||
port: 22
|
port: 22
|
||||||
# Requirement for sharing ip with other service
|
# Requirement for sharing ip with other service
|
||||||
@@ -89,7 +89,7 @@ spec:
|
|||||||
|
|
||||||
ingress:
|
ingress:
|
||||||
enabled: true
|
enabled: true
|
||||||
className: nginx
|
className: nginx-ingress
|
||||||
annotations:
|
annotations:
|
||||||
cert-manager.io/cluster-issuer: letsencrypt
|
cert-manager.io/cluster-issuer: letsencrypt
|
||||||
acme.cert-manager.io/http01-edit-in-place: "true"
|
acme.cert-manager.io/http01-edit-in-place: "true"
|
||||||
@@ -111,37 +111,3 @@ spec:
|
|||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
cpu: 0
|
cpu: 0
|
||||||
---
|
|
||||||
apiVersion: k8up.io/v1
|
|
||||||
kind: Schedule
|
|
||||||
metadata:
|
|
||||||
name: gitea-backup
|
|
||||||
namespace: gitea
|
|
||||||
spec:
|
|
||||||
backend:
|
|
||||||
# Manually adding secrets for now
|
|
||||||
repoPasswordSecretRef:
|
|
||||||
name: restic-repo
|
|
||||||
key: password
|
|
||||||
s3:
|
|
||||||
endpoint: https://s3.eu-central-003.backblazeb2.com
|
|
||||||
bucket: lumpiasty-backups
|
|
||||||
accessKeyIDSecretRef:
|
|
||||||
name: backblaze
|
|
||||||
key: keyid
|
|
||||||
secretAccessKeySecretRef:
|
|
||||||
name: backblaze
|
|
||||||
key: secret
|
|
||||||
backup:
|
|
||||||
schedule: "@daily-random"
|
|
||||||
failedJobsHistoryLimit: 2
|
|
||||||
successfulJobsHistoryLimit: 2
|
|
||||||
check:
|
|
||||||
schedule: "@daily-random"
|
|
||||||
prune:
|
|
||||||
schedule: "@daily-random"
|
|
||||||
retention:
|
|
||||||
keepLast: 14
|
|
||||||
keepDaily: 14
|
|
||||||
keepWeekly: 50
|
|
||||||
keepYearly: 10
|
|
||||||
58
apps/gitea/secret.yaml
Normal file
58
apps/gitea/secret.yaml
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: backup
|
||||||
|
namespace: gitea
|
||||||
|
---
|
||||||
|
apiVersion: secrets.hashicorp.com/v1beta1
|
||||||
|
kind: VaultAuth
|
||||||
|
metadata:
|
||||||
|
name: backup
|
||||||
|
namespace: gitea
|
||||||
|
spec:
|
||||||
|
method: kubernetes
|
||||||
|
mount: kubernetes
|
||||||
|
kubernetes:
|
||||||
|
role: backup
|
||||||
|
serviceAccount: backup
|
||||||
|
---
|
||||||
|
apiVersion: secrets.hashicorp.com/v1beta1
|
||||||
|
kind: VaultStaticSecret
|
||||||
|
metadata:
|
||||||
|
name: gitea-backup-restic
|
||||||
|
namespace: gitea
|
||||||
|
spec:
|
||||||
|
type: kv-v2
|
||||||
|
|
||||||
|
mount: secret
|
||||||
|
path: restic
|
||||||
|
|
||||||
|
destination:
|
||||||
|
create: true
|
||||||
|
name: gitea-backup-restic
|
||||||
|
type: Opaque
|
||||||
|
transformation:
|
||||||
|
excludeRaw: true
|
||||||
|
|
||||||
|
vaultAuthRef: backup
|
||||||
|
---
|
||||||
|
apiVersion: secrets.hashicorp.com/v1beta1
|
||||||
|
kind: VaultStaticSecret
|
||||||
|
metadata:
|
||||||
|
name: gitea-backup-backblaze
|
||||||
|
namespace: gitea
|
||||||
|
spec:
|
||||||
|
type: kv-v2
|
||||||
|
|
||||||
|
mount: secret
|
||||||
|
path: backblaze
|
||||||
|
|
||||||
|
destination:
|
||||||
|
create: true
|
||||||
|
name: gitea-backup-backblaze
|
||||||
|
type: Opaque
|
||||||
|
transformation:
|
||||||
|
excludeRaw: true
|
||||||
|
|
||||||
|
vaultAuthRef: backup
|
||||||
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
|
||||||
38
apps/immich/postgres-password.yaml
Normal file
38
apps/immich/postgres-password.yaml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: immich-password
|
||||||
|
namespace: immich
|
||||||
|
---
|
||||||
|
apiVersion: secrets.hashicorp.com/v1beta1
|
||||||
|
kind: VaultAuth
|
||||||
|
metadata:
|
||||||
|
name: immich
|
||||||
|
namespace: immich
|
||||||
|
spec:
|
||||||
|
method: kubernetes
|
||||||
|
mount: kubernetes
|
||||||
|
kubernetes:
|
||||||
|
role: immich
|
||||||
|
serviceAccount: immich-password
|
||||||
|
---
|
||||||
|
apiVersion: secrets.hashicorp.com/v1beta1
|
||||||
|
kind: VaultStaticSecret
|
||||||
|
metadata:
|
||||||
|
name: immich-db
|
||||||
|
namespace: immich
|
||||||
|
spec:
|
||||||
|
type: kv-v2
|
||||||
|
|
||||||
|
mount: secret
|
||||||
|
path: immich-db
|
||||||
|
|
||||||
|
destination:
|
||||||
|
create: true
|
||||||
|
name: immich-db-immich
|
||||||
|
type: kubernetes.io/basic-auth
|
||||||
|
transformation:
|
||||||
|
excludeRaw: true
|
||||||
|
|
||||||
|
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: 24.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.12
|
||||||
|
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
|
||||||
7
apps/ispeak3/kustomization.yaml
Normal file
7
apps/ispeak3/kustomization.yaml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- namespace.yaml
|
||||||
|
- pvc.yaml
|
||||||
|
- statefulset.yaml
|
||||||
|
- service.yaml
|
||||||
4
apps/ispeak3/namespace.yaml
Normal file
4
apps/ispeak3/namespace.yaml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: ispeak3
|
||||||
49
apps/ispeak3/pvc.yaml
Normal file
49
apps/ispeak3/pvc.yaml
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
apiVersion: local.openebs.io/v1alpha1
|
||||||
|
kind: LVMVolume
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
kubernetes.io/nodename: anapistula-delrosalae
|
||||||
|
name: ispeak3-ts3-data
|
||||||
|
namespace: openebs
|
||||||
|
spec:
|
||||||
|
capacity: 1Gi
|
||||||
|
ownerNodeID: anapistula-delrosalae
|
||||||
|
shared: "yes"
|
||||||
|
thinProvision: "no"
|
||||||
|
vgPattern: ^openebs-hdd$
|
||||||
|
volGroup: openebs-hdd
|
||||||
|
---
|
||||||
|
kind: PersistentVolume
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: ispeak3-ts3-data
|
||||||
|
spec:
|
||||||
|
capacity:
|
||||||
|
storage: 1Gi
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
persistentVolumeReclaimPolicy: Delete
|
||||||
|
storageClassName: openebs-lvmpv
|
||||||
|
volumeMode: Filesystem
|
||||||
|
csi:
|
||||||
|
driver: local.csi.openebs.io
|
||||||
|
volumeHandle: ispeak3-ts3-data
|
||||||
|
claimRef:
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
namespace: ispeak3
|
||||||
|
name: ispeak3-ts3-data
|
||||||
|
---
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: ispeak3-ts3-data
|
||||||
|
namespace: ispeak3
|
||||||
|
spec:
|
||||||
|
storageClassName: openebs-lvmpv
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 1Gi
|
||||||
|
volumeName: ispeak3-ts3-data
|
||||||
20
apps/ispeak3/service.yaml
Normal file
20
apps/ispeak3/service.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: teamspeak3
|
||||||
|
namespace: ispeak3
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: teamspeak3
|
||||||
|
ports:
|
||||||
|
- name: voice
|
||||||
|
protocol: UDP
|
||||||
|
port: 9987
|
||||||
|
targetPort: 9987
|
||||||
|
- name: filetransfer
|
||||||
|
protocol: TCP
|
||||||
|
port: 30033
|
||||||
|
targetPort: 30033
|
||||||
|
type: LoadBalancer
|
||||||
|
externalTrafficPolicy: Local
|
||||||
|
ipFamilyPolicy: PreferDualStack
|
||||||
34
apps/ispeak3/statefulset.yaml
Normal file
34
apps/ispeak3/statefulset.yaml
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: StatefulSet
|
||||||
|
metadata:
|
||||||
|
name: teamspeak3-server
|
||||||
|
namespace: ispeak3
|
||||||
|
spec:
|
||||||
|
serviceName: "teamspeak3"
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: teamspeak3
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: teamspeak3
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: teamspeak3
|
||||||
|
image: teamspeak:3.13.7
|
||||||
|
ports:
|
||||||
|
- containerPort: 9987
|
||||||
|
name: voice
|
||||||
|
protocol: UDP
|
||||||
|
- containerPort: 10011
|
||||||
|
name: query
|
||||||
|
- containerPort: 30033
|
||||||
|
name: filetransfer
|
||||||
|
volumeMounts:
|
||||||
|
- name: ts3-data
|
||||||
|
mountPath: /var/ts3server/
|
||||||
|
volumes:
|
||||||
|
- name: ts3-data
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: ispeak3-ts3-data
|
||||||
@@ -1,5 +1,13 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
- gitea.yaml
|
- gitea
|
||||||
- renovate.yaml
|
- registry
|
||||||
|
- renovate
|
||||||
|
- librechat
|
||||||
|
- frigate
|
||||||
|
- llama
|
||||||
|
- immich
|
||||||
|
- nas
|
||||||
|
- searxng
|
||||||
|
- ispeak3
|
||||||
|
|||||||
5
apps/librechat/kustomization.yaml
Normal file
5
apps/librechat/kustomization.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- namespace.yaml
|
||||||
|
- release.yaml
|
||||||
5
apps/librechat/namespace.yaml
Normal file
5
apps/librechat/namespace.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: librechat
|
||||||
120
apps/librechat/release.yaml
Normal file
120
apps/librechat/release.yaml
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
---
|
||||||
|
apiVersion: source.toolkit.fluxcd.io/v1
|
||||||
|
kind: HelmRepository
|
||||||
|
metadata:
|
||||||
|
name: dynomite567-charts
|
||||||
|
namespace: librechat
|
||||||
|
spec:
|
||||||
|
interval: 24h
|
||||||
|
url: https://dynomite567.github.io/helm-charts/
|
||||||
|
---
|
||||||
|
# apiVersion: helm.toolkit.fluxcd.io/v2
|
||||||
|
# kind: HelmRelease
|
||||||
|
# metadata:
|
||||||
|
# name: librechat
|
||||||
|
# namespace: librechat
|
||||||
|
# spec:
|
||||||
|
# interval: 30m
|
||||||
|
# chart:
|
||||||
|
# spec:
|
||||||
|
# chart: librechat
|
||||||
|
# version: 1.9.1
|
||||||
|
# sourceRef:
|
||||||
|
# kind: HelmRepository
|
||||||
|
# name: dynomite567-charts
|
||||||
|
# values:
|
||||||
|
# global:
|
||||||
|
# librechat:
|
||||||
|
# existingSecretName: librechat
|
||||||
|
# librechat:
|
||||||
|
# configEnv:
|
||||||
|
# PLUGIN_MODELS: null
|
||||||
|
# ALLOW_REGISTRATION: "false"
|
||||||
|
# TRUST_PROXY: "1"
|
||||||
|
# DOMAIN_CLIENT: https://librechat.lumpiasty.xyz
|
||||||
|
# SEARCH: "true"
|
||||||
|
# existingSecretName: librechat
|
||||||
|
# configYamlContent: |
|
||||||
|
# version: 1.0.3
|
||||||
|
|
||||||
|
# endpoints:
|
||||||
|
# custom:
|
||||||
|
# - name: "Llama.cpp"
|
||||||
|
# apiKey: "llama"
|
||||||
|
# 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-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",
|
||||||
|
# "Qwen3-VL-2B-Instruct-GGUF",
|
||||||
|
# "Qwen3-VL-2B-Instruct-GGUF-unslothish",
|
||||||
|
# "Qwen3-VL-2B-Thinking-GGUF",
|
||||||
|
# "Qwen3-VL-4B-Instruct-GGUF",
|
||||||
|
# "Qwen3-VL-4B-Instruct-GGUF-unslothish",
|
||||||
|
# "Qwen3-VL-4B-Thinking-GGUF",
|
||||||
|
# "Qwen3-VL-8B-Instruct-GGUF",
|
||||||
|
# "Qwen3-VL-8B-Instruct-GGUF-unslothish",
|
||||||
|
# "Qwen3-VL-8B-Thinking-GGUF",
|
||||||
|
# "Huihui-Qwen3-VL-8B-Instruct-abliterated-GGUF",
|
||||||
|
# "Huihui-Qwen3-VL-8B-Thinking-abliterated-GGUF"
|
||||||
|
# ]
|
||||||
|
# titleConvo: true
|
||||||
|
# titleModel: "gemma3-4b-novision"
|
||||||
|
# summarize: false
|
||||||
|
# summaryModel: "gemma3-4b-novision"
|
||||||
|
# forcePrompt: false
|
||||||
|
# modelDisplayLabel: "Llama.cpp"
|
||||||
|
|
||||||
|
# # ✨ IMPORTANT: let llama-swap/llama-server own all these
|
||||||
|
# dropParams:
|
||||||
|
# - "temperature"
|
||||||
|
# - "top_p"
|
||||||
|
# - "top_k"
|
||||||
|
# - "presence_penalty"
|
||||||
|
# - "frequency_penalty"
|
||||||
|
# - "stop"
|
||||||
|
# - "max_tokens"
|
||||||
|
# imageVolume:
|
||||||
|
# enabled: true
|
||||||
|
# size: 10G
|
||||||
|
# accessModes: ReadWriteOnce
|
||||||
|
# storageClassName: mayastor-single-hdd
|
||||||
|
# ingress:
|
||||||
|
# enabled: true
|
||||||
|
# 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:
|
||||||
|
# - path: /
|
||||||
|
# pathType: ImplementationSpecific
|
||||||
|
# tls:
|
||||||
|
# - hosts:
|
||||||
|
# - librechat.lumpiasty.xyz
|
||||||
|
# secretName: librechat-ingress
|
||||||
|
|
||||||
|
# mongodb:
|
||||||
|
# persistence:
|
||||||
|
# storageClass: mayastor-single-hdd
|
||||||
|
|
||||||
|
# meilisearch:
|
||||||
|
# persistence:
|
||||||
|
# storageClass: mayastor-single-hdd
|
||||||
|
# auth:
|
||||||
|
# existingMasterKeySecret: librechat
|
||||||
68
apps/llama/auth-proxy.yaml
Normal file
68
apps/llama/auth-proxy.yaml
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: llama-proxy
|
||||||
|
namespace: llama
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: llama-proxy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: llama-proxy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: caddy
|
||||||
|
image: caddy:2.10.2-alpine
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /etc/caddy
|
||||||
|
name: proxy-config
|
||||||
|
env:
|
||||||
|
- name: API_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: llama-api-key
|
||||||
|
key: API_KEY
|
||||||
|
volumes:
|
||||||
|
- name: proxy-config
|
||||||
|
configMap:
|
||||||
|
name: llama-proxy-config
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
namespace: llama
|
||||||
|
name: llama-proxy-config
|
||||||
|
data:
|
||||||
|
Caddyfile: |
|
||||||
|
http://llama.lumpiasty.xyz {
|
||||||
|
|
||||||
|
@requireAuth {
|
||||||
|
not header Authorization "Bearer {env.API_KEY}"
|
||||||
|
}
|
||||||
|
|
||||||
|
respond @requireAuth "Unauthorized" 401
|
||||||
|
|
||||||
|
reverse_proxy llama:11434 {
|
||||||
|
flush_interval -1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
namespace: llama
|
||||||
|
name: llama-proxy
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: llama-proxy
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 80
|
||||||
|
targetPort: 80
|
||||||
|
protocol: TCP
|
||||||
468
apps/llama/configs/config.yaml
Normal file
468
apps/llama/configs/config.yaml
Normal file
@@ -0,0 +1,468 @@
|
|||||||
|
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
|
||||||
|
--n-gpu-layers 37
|
||||||
|
--ctx-size 16384
|
||||||
|
--no-warmup
|
||||||
|
--port ${PORT}
|
||||||
|
|
||||||
|
"Qwen3-8B-GGUF":
|
||||||
|
ttl: 600
|
||||||
|
cmd: |
|
||||||
|
/app/llama-server
|
||||||
|
-hf unsloth/Qwen3-8B-GGUF:Q4_K_M
|
||||||
|
--n-gpu-layers 37
|
||||||
|
--ctx-size 16384
|
||||||
|
--no-warmup
|
||||||
|
--port ${PORT}
|
||||||
|
|
||||||
|
"Qwen3-8B-GGUF-no-thinking":
|
||||||
|
ttl: 600
|
||||||
|
cmd: |
|
||||||
|
/app/llama-server
|
||||||
|
-hf unsloth/Qwen3-8B-GGUF:Q4_K_M
|
||||||
|
--n-gpu-layers 37
|
||||||
|
--ctx-size 16384
|
||||||
|
--jinja
|
||||||
|
--chat-template-file /config/qwen_nothink_chat_template.jinja
|
||||||
|
--no-warmup
|
||||||
|
--port ${PORT}
|
||||||
|
|
||||||
|
"gemma3n-e4b":
|
||||||
|
ttl: 600
|
||||||
|
cmd: |
|
||||||
|
/app/llama-server
|
||||||
|
-hf unsloth/gemma-3n-E4B-it-GGUF:UD-Q4_K_XL
|
||||||
|
--ctx-size 16384
|
||||||
|
--n-gpu-layers 99
|
||||||
|
--seed 3407
|
||||||
|
--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":
|
||||||
|
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
|
||||||
|
--n-gpu-layers 99
|
||||||
|
--ctx-size 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
|
||||||
|
--n-gpu-layers 99
|
||||||
|
--ctx-size 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 auto
|
||||||
|
--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
|
||||||
|
--n-gpu-layers 99
|
||||||
|
--ctx-size 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
|
||||||
|
--n-gpu-layers 99
|
||||||
|
--ctx-size 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 auto
|
||||||
|
--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
|
||||||
|
--n-gpu-layers 99
|
||||||
|
--ctx-size 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
|
||||||
|
--n-gpu-layers 99
|
||||||
|
--ctx-size 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
|
||||||
|
--n-gpu-layers 37
|
||||||
|
--ctx-size 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-VL-2B-Instruct-GGUF":
|
||||||
|
ttl: 600
|
||||||
|
cmd: |
|
||||||
|
/app/llama-server
|
||||||
|
-hf Qwen/Qwen3-VL-2B-Instruct-GGUF:Q8_0
|
||||||
|
--n-gpu-layers 99
|
||||||
|
--ctx-size 12288
|
||||||
|
--predict 4096
|
||||||
|
--flash-attn auto
|
||||||
|
--jinja
|
||||||
|
--temp 0.7
|
||||||
|
--top-p 0.85
|
||||||
|
--top-k 20
|
||||||
|
--min-p 0.05
|
||||||
|
--repeat-penalty 1.15
|
||||||
|
--frequency-penalty 0.5
|
||||||
|
--presence-penalty 0.4
|
||||||
|
--no-warmup
|
||||||
|
--port ${PORT}
|
||||||
|
|
||||||
|
"Qwen3-VL-4B-Instruct-GGUF":
|
||||||
|
ttl: 600
|
||||||
|
cmd: |
|
||||||
|
/app/llama-server
|
||||||
|
-hf Qwen/Qwen3-VL-4B-Instruct-GGUF:Q8_0
|
||||||
|
--n-gpu-layers 99
|
||||||
|
--ctx-size 12288
|
||||||
|
--predict 4096
|
||||||
|
--flash-attn auto
|
||||||
|
--jinja
|
||||||
|
--temp 0.7
|
||||||
|
--top-p 0.85
|
||||||
|
--top-k 20
|
||||||
|
--min-p 0.05
|
||||||
|
--repeat-penalty 1.15
|
||||||
|
--frequency-penalty 0.5
|
||||||
|
--presence-penalty 0.4
|
||||||
|
--no-warmup
|
||||||
|
--port ${PORT}
|
||||||
|
|
||||||
|
"Qwen3-VL-8B-Instruct-GGUF":
|
||||||
|
ttl: 600
|
||||||
|
cmd: |
|
||||||
|
/app/llama-server
|
||||||
|
-hf Qwen/Qwen3-VL-8B-Instruct-GGUF:Q4_K_M
|
||||||
|
--n-gpu-layers 99
|
||||||
|
--ctx-size 12288
|
||||||
|
--predict 4096
|
||||||
|
--flash-attn auto
|
||||||
|
--jinja
|
||||||
|
--temp 0.7
|
||||||
|
--top-p 0.85
|
||||||
|
--top-k 20
|
||||||
|
--min-p 0.05
|
||||||
|
--repeat-penalty 1.15
|
||||||
|
--frequency-penalty 0.5
|
||||||
|
--presence-penalty 0.4
|
||||||
|
--no-warmup
|
||||||
|
--port ${PORT}
|
||||||
|
|
||||||
|
"Qwen3-VL-2B-Instruct-GGUF-unslothish":
|
||||||
|
ttl: 600
|
||||||
|
cmd: |
|
||||||
|
/app/llama-server
|
||||||
|
-hf Qwen/Qwen3-VL-2B-Instruct-GGUF:Q8_0
|
||||||
|
--n-gpu-layers 99
|
||||||
|
--ctx-size 12288
|
||||||
|
--predict 4096
|
||||||
|
--flash-attn auto
|
||||||
|
--jinja
|
||||||
|
--temp 0.7
|
||||||
|
--top-p 0.8
|
||||||
|
--top-k 20
|
||||||
|
--min-p 0.05
|
||||||
|
--repeat-penalty 1.15
|
||||||
|
--frequency-penalty 0.5
|
||||||
|
--presence-penalty 0.6
|
||||||
|
--no-warmup
|
||||||
|
--port ${PORT}
|
||||||
|
|
||||||
|
"Qwen3-VL-4B-Instruct-GGUF-unslothish":
|
||||||
|
ttl: 600
|
||||||
|
cmd: |
|
||||||
|
/app/llama-server
|
||||||
|
-hf Qwen/Qwen3-VL-4B-Instruct-GGUF:Q8_0
|
||||||
|
--n-gpu-layers 99
|
||||||
|
--ctx-size 12288
|
||||||
|
--predict 4096
|
||||||
|
--flash-attn auto
|
||||||
|
--jinja
|
||||||
|
--temp 0.7
|
||||||
|
--top-p 0.8
|
||||||
|
--top-k 20
|
||||||
|
--min-p 0.05
|
||||||
|
--repeat-penalty 1.15
|
||||||
|
--frequency-penalty 0.5
|
||||||
|
--presence-penalty 0.6
|
||||||
|
--no-warmup
|
||||||
|
--port ${PORT}
|
||||||
|
|
||||||
|
"Qwen3-VL-8B-Instruct-GGUF-unslothish":
|
||||||
|
ttl: 600
|
||||||
|
cmd: |
|
||||||
|
/app/llama-server
|
||||||
|
-hf Qwen/Qwen3-VL-8B-Instruct-GGUF:Q4_K_M
|
||||||
|
--n-gpu-layers 99
|
||||||
|
--ctx-size 12288
|
||||||
|
--predict 4096
|
||||||
|
--flash-attn auto
|
||||||
|
--jinja
|
||||||
|
--temp 0.7
|
||||||
|
--top-p 0.8
|
||||||
|
--top-k 20
|
||||||
|
--min-p 0.05
|
||||||
|
--repeat-penalty 1.15
|
||||||
|
--frequency-penalty 0.5
|
||||||
|
--presence-penalty 0.6
|
||||||
|
--no-warmup
|
||||||
|
--port ${PORT}
|
||||||
|
|
||||||
|
"Qwen3-VL-2B-Thinking-GGUF":
|
||||||
|
ttl: 600
|
||||||
|
cmd: |
|
||||||
|
/app/llama-server
|
||||||
|
-hf Qwen/Qwen3-VL-2B-Thinking-GGUF:Q8_0
|
||||||
|
--n-gpu-layers 99
|
||||||
|
--ctx-size 12288
|
||||||
|
--predict 4096
|
||||||
|
--flash-attn auto
|
||||||
|
--jinja
|
||||||
|
--top-p 0.95
|
||||||
|
--top-k 20
|
||||||
|
--temp 1.0
|
||||||
|
--min-p 0.0
|
||||||
|
--repeat-penalty 1.0
|
||||||
|
--presence-penalty 0.0
|
||||||
|
--no-warmup
|
||||||
|
--port ${PORT}
|
||||||
|
|
||||||
|
"Qwen3-VL-4B-Thinking-GGUF":
|
||||||
|
ttl: 600
|
||||||
|
cmd: |
|
||||||
|
/app/llama-server
|
||||||
|
-hf Qwen/Qwen3-VL-4B-Thinking-GGUF:Q4_K_M
|
||||||
|
--n-gpu-layers 99
|
||||||
|
--ctx-size 12288
|
||||||
|
--predict 4096
|
||||||
|
--flash-attn auto
|
||||||
|
--jinja
|
||||||
|
--top-p 0.95
|
||||||
|
--top-k 20
|
||||||
|
--temp 1.0
|
||||||
|
--min-p 0.0
|
||||||
|
--repeat-penalty 1.0
|
||||||
|
--presence-penalty 0.0
|
||||||
|
--no-warmup
|
||||||
|
--port ${PORT}
|
||||||
|
|
||||||
|
"Qwen3-VL-8B-Thinking-GGUF":
|
||||||
|
ttl: 600
|
||||||
|
cmd: |
|
||||||
|
/app/llama-server
|
||||||
|
-hf Qwen/Qwen3-VL-8B-Thinking-GGUF:Q4_K_M
|
||||||
|
--n-gpu-layers 99
|
||||||
|
--ctx-size 12288
|
||||||
|
--predict 4096
|
||||||
|
--flash-attn auto
|
||||||
|
--jinja
|
||||||
|
--top-p 0.95
|
||||||
|
--top-k 20
|
||||||
|
--temp 1.0
|
||||||
|
--min-p 0.0
|
||||||
|
--repeat-penalty 1.0
|
||||||
|
--presence-penalty 0.0
|
||||||
|
--no-warmup
|
||||||
|
--port ${PORT}
|
||||||
|
|
||||||
|
"Huihui-Qwen3-VL-8B-Instruct-abliterated-GGUF":
|
||||||
|
ttl: 600
|
||||||
|
cmd: |
|
||||||
|
/app/llama-server
|
||||||
|
-hf noctrex/Huihui-Qwen3-VL-8B-Instruct-abliterated-GGUF:Q6_K
|
||||||
|
--n-gpu-layers 99
|
||||||
|
--ctx-size 12288
|
||||||
|
--predict 4096
|
||||||
|
--flash-attn auto
|
||||||
|
--jinja
|
||||||
|
--temp 0.7
|
||||||
|
--top-p 0.85
|
||||||
|
--top-k 20
|
||||||
|
--min-p 0.05
|
||||||
|
--repeat-penalty 1.15
|
||||||
|
--frequency-penalty 0.5
|
||||||
|
--presence-penalty 0.4
|
||||||
|
--no-warmup
|
||||||
|
--port ${PORT}
|
||||||
|
|
||||||
|
"Huihui-Qwen3-VL-8B-Thinking-abliterated-GGUF":
|
||||||
|
ttl: 600
|
||||||
|
cmd: |
|
||||||
|
/app/llama-server
|
||||||
|
-hf noctrex/Huihui-Qwen3-VL-8B-Thinking-abliterated-GGUF:Q6_K
|
||||||
|
--n-gpu-layers 99
|
||||||
|
--ctx-size 12288
|
||||||
|
--predict 4096
|
||||||
|
--flash-attn auto
|
||||||
|
--jinja
|
||||||
|
--temp 0.7
|
||||||
|
--top-p 0.85
|
||||||
|
--top-k 20
|
||||||
|
--min-p 0.05
|
||||||
|
--repeat-penalty 1.15
|
||||||
|
--frequency-penalty 0.5
|
||||||
|
--presence-penalty 0.4
|
||||||
|
--no-warmup
|
||||||
|
--port ${PORT}
|
||||||
101
apps/llama/configs/qwen_nothink_chat_template.jinja
Normal file
101
apps/llama/configs/qwen_nothink_chat_template.jinja
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
{%- if not add_generation_prompt is defined %}
|
||||||
|
{%- set add_generation_prompt = false %}
|
||||||
|
{%- endif %}
|
||||||
|
{%- set ns = namespace(is_first=false, is_tool=false, is_output_first=true, system_prompt='', is_first_sp=true, is_last_user=false) %}
|
||||||
|
{%- for message in messages %}
|
||||||
|
{%- if message['role'] == 'system' %}
|
||||||
|
{%- if ns.is_first_sp %}
|
||||||
|
{%- set ns.system_prompt = ns.system_prompt + message['content'] %}
|
||||||
|
{%- set ns.is_first_sp = false %}
|
||||||
|
{%- else %}
|
||||||
|
{%- set ns.system_prompt = ns.system_prompt + '\n\n' + message['content'] %}
|
||||||
|
{%- endif %}
|
||||||
|
{%- endif %}
|
||||||
|
{%- endfor %}
|
||||||
|
|
||||||
|
{#- Adapted from https://github.com/sgl-project/sglang/blob/main/examples/chat_template/tool_chat_template_deepseekr1.jinja #}
|
||||||
|
{%- if tools is defined and tools is not none %}
|
||||||
|
{%- set tool_ns = namespace(text='You are a helpful assistant with tool calling capabilities. ' + 'When a tool call is needed, you MUST use the following format to issue the call:\n' + '<|tool▁calls▁begin|><|tool▁call▁begin|>function<|tool▁sep|>FUNCTION_NAME\n' + '```json\n{"param1": "value1", "param2": "value2"}\n```<|tool▁call▁end|><|tool▁calls▁end|>\n\n' + 'Make sure the JSON is valid.' + '## Tools\n\n### Function\n\nYou have the following functions available:\n\n') %}
|
||||||
|
{%- for tool in tools %}
|
||||||
|
{%- set tool_ns.text = tool_ns.text + '\n```json\n' + (tool | tojson) + '\n```\n' %}
|
||||||
|
{%- endfor %}
|
||||||
|
{%- if ns.system_prompt|length != 0 %}
|
||||||
|
{%- set ns.system_prompt = ns.system_prompt + '\n\n' + tool_ns.text %}
|
||||||
|
{%- else %}
|
||||||
|
{%- set ns.system_prompt = tool_ns.text %}
|
||||||
|
{%- endif %}
|
||||||
|
{%- endif %}
|
||||||
|
{{- bos_token }}
|
||||||
|
{{- '/no_think' + ns.system_prompt }}
|
||||||
|
{%- set last_index = (messages|length - 1) %}
|
||||||
|
{%- for message in messages %}
|
||||||
|
{%- set content = message['content'] %}
|
||||||
|
{%- if message['role'] == 'user' %}
|
||||||
|
{%- set ns.is_tool = false -%}
|
||||||
|
{%- set ns.is_first = false -%}
|
||||||
|
{%- set ns.is_last_user = true -%}
|
||||||
|
{%- if loop.index0 == last_index %}
|
||||||
|
{{- '<|User|>' + content }}
|
||||||
|
{%- else %}
|
||||||
|
{{- '<|User|>' + content + '<|Assistant|>'}}
|
||||||
|
{%- endif %}
|
||||||
|
{%- endif %}
|
||||||
|
{%- if message['role'] == 'assistant' %}
|
||||||
|
{%- if '</think>' in content %}
|
||||||
|
{%- set content = (content.split('</think>')|last) %}
|
||||||
|
{%- endif %}
|
||||||
|
{%- endif %}
|
||||||
|
{%- if message['role'] == 'assistant' and message['tool_calls'] is defined and message['tool_calls'] is not none %}
|
||||||
|
{%- set ns.is_last_user = false -%}
|
||||||
|
{%- if ns.is_tool %}
|
||||||
|
{{- '<|tool▁outputs▁end|>'}}
|
||||||
|
{%- endif %}
|
||||||
|
{%- set ns.is_first = false %}
|
||||||
|
{%- set ns.is_tool = false -%}
|
||||||
|
{%- set ns.is_output_first = true %}
|
||||||
|
{%- for tool in message['tool_calls'] %}
|
||||||
|
{%- set arguments = tool['function']['arguments'] %}
|
||||||
|
{%- if arguments is not string %}
|
||||||
|
{%- set arguments = arguments|tojson %}
|
||||||
|
{%- endif %}
|
||||||
|
{%- if not ns.is_first %}
|
||||||
|
{%- if content is none %}
|
||||||
|
{{- '<|tool▁calls▁begin|><|tool▁call▁begin|>' + tool['type'] + '<|tool▁sep|>' + tool['function']['name'] + '\n' + '```json' + '\n' + arguments + '\n' + '```' + '<|tool▁call▁end|>'}}
|
||||||
|
}
|
||||||
|
{%- else %}
|
||||||
|
{{- content + '<|tool▁calls▁begin|><|tool▁call▁begin|>' + tool['type'] + '<|tool▁sep|>' + tool['function']['name'] + '\n' + '```json' + '\n' + arguments + '\n' + '```' + '<|tool▁call▁end|>'}}
|
||||||
|
{%- endif %}
|
||||||
|
{%- set ns.is_first = true -%}
|
||||||
|
{%- else %}
|
||||||
|
{{- '\n' + '<|tool▁call▁begin|>' + tool['type'] + '<|tool▁sep|>' + tool['function']['name'] + '\n' + '```json' + '\n' + arguments + '\n' + '```' + '<|tool▁call▁end|>'}}
|
||||||
|
{%- endif %}
|
||||||
|
{%- endfor %}
|
||||||
|
{{- '<|tool▁calls▁end|><|end▁of▁sentence|>'}}
|
||||||
|
{%- endif %}
|
||||||
|
{%- if message['role'] == 'assistant' and (message['tool_calls'] is not defined or message['tool_calls'] is none) %}
|
||||||
|
{%- set ns.is_last_user = false -%}
|
||||||
|
{%- if ns.is_tool %}
|
||||||
|
{{- '<|tool▁outputs▁end|>' + content + '<|end▁of▁sentence|>'}}
|
||||||
|
{%- set ns.is_tool = false -%}
|
||||||
|
{%- else %}
|
||||||
|
{{- content + '<|end▁of▁sentence|>'}}
|
||||||
|
{%- endif %}
|
||||||
|
{%- endif %}
|
||||||
|
{%- if message['role'] == 'tool' %}
|
||||||
|
{%- set ns.is_last_user = false -%}
|
||||||
|
{%- set ns.is_tool = true -%}
|
||||||
|
{%- if ns.is_output_first %}
|
||||||
|
{{- '<|tool▁outputs▁begin|><|tool▁output▁begin|>' + content + '<|tool▁output▁end|>'}}
|
||||||
|
{%- set ns.is_output_first = false %}
|
||||||
|
{%- else %}
|
||||||
|
{{- '\n<|tool▁output▁begin|>' + content + '<|tool▁output▁end|>'}}
|
||||||
|
{%- endif %}
|
||||||
|
{%- endif %}
|
||||||
|
{%- endfor -%}
|
||||||
|
{%- if ns.is_tool %}
|
||||||
|
{{- '<|tool▁outputs▁end|>'}}
|
||||||
|
{%- endif %}
|
||||||
|
{#- if add_generation_prompt and not ns.is_last_user and not ns.is_tool #}
|
||||||
|
{%- if add_generation_prompt and not ns.is_tool %}
|
||||||
|
{{- '<|Assistant|>'}}
|
||||||
|
{%- endif %}
|
||||||
70
apps/llama/deployment.yaml
Normal file
70
apps/llama/deployment.yaml
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: llama-swap
|
||||||
|
namespace: llama
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: llama-swap
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: llama-swap
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: llama-swap
|
||||||
|
image: ghcr.io/mostlygeek/llama-swap:v172-vulkan-b7062
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
command:
|
||||||
|
- /app/llama-swap
|
||||||
|
args:
|
||||||
|
- --config=/config/config.yaml
|
||||||
|
- --watch-config
|
||||||
|
ports:
|
||||||
|
- containerPort: 8080
|
||||||
|
name: http
|
||||||
|
protocol: TCP
|
||||||
|
volumeMounts:
|
||||||
|
- name: models
|
||||||
|
mountPath: /app/.cache
|
||||||
|
- mountPath: /dev/kfd
|
||||||
|
name: kfd
|
||||||
|
- mountPath: /dev/dri
|
||||||
|
name: dri
|
||||||
|
- mountPath: /config
|
||||||
|
name: config
|
||||||
|
securityContext:
|
||||||
|
privileged: true
|
||||||
|
volumes:
|
||||||
|
- name: models
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: llama-models
|
||||||
|
- name: kfd
|
||||||
|
hostPath:
|
||||||
|
path: /dev/kfd
|
||||||
|
type: CharDevice
|
||||||
|
- name: dri
|
||||||
|
hostPath:
|
||||||
|
path: /dev/dri
|
||||||
|
type: Directory
|
||||||
|
- name: config
|
||||||
|
configMap:
|
||||||
|
name: llama-swap
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: llama
|
||||||
|
namespace: llama
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 11434
|
||||||
|
targetPort: 8080
|
||||||
|
protocol: TCP
|
||||||
|
selector:
|
||||||
|
app: llama-swap
|
||||||
28
apps/llama/ingress.yaml
Normal file
28
apps/llama/ingress.yaml
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
namespace: llama
|
||||||
|
name: llama
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt
|
||||||
|
acme.cert-manager.io/http01-edit-in-place: "true"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-buffering: "false"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-read-timeout: 30m
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx-ingress
|
||||||
|
rules:
|
||||||
|
- host: llama.lumpiasty.xyz
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- backend:
|
||||||
|
service:
|
||||||
|
name: llama-proxy
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
path: /
|
||||||
|
pathType: Prefix
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- llama.lumpiasty.xyz
|
||||||
|
secretName: llama-ingress
|
||||||
15
apps/llama/kustomization.yaml
Normal file
15
apps/llama/kustomization.yaml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- namespace.yaml
|
||||||
|
- secret.yaml
|
||||||
|
- auth-proxy.yaml
|
||||||
|
- ingress.yaml
|
||||||
|
- pvc.yaml
|
||||||
|
- deployment.yaml
|
||||||
|
configMapGenerator:
|
||||||
|
- name: llama-swap
|
||||||
|
namespace: llama
|
||||||
|
files:
|
||||||
|
- config.yaml=configs/config.yaml
|
||||||
|
- qwen_nothink_chat_template.jinja=configs/qwen_nothink_chat_template.jinja
|
||||||
5
apps/llama/namespace.yaml
Normal file
5
apps/llama/namespace.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: llama
|
||||||
13
apps/llama/pvc.yaml
Normal file
13
apps/llama/pvc.yaml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
namespace: llama
|
||||||
|
name: llama-models
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 200Gi
|
||||||
|
storageClassName: mayastor-single-ssd
|
||||||
38
apps/llama/secret.yaml
Normal file
38
apps/llama/secret.yaml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: llama-proxy
|
||||||
|
namespace: llama
|
||||||
|
---
|
||||||
|
apiVersion: secrets.hashicorp.com/v1beta1
|
||||||
|
kind: VaultAuth
|
||||||
|
metadata:
|
||||||
|
name: llama
|
||||||
|
namespace: llama
|
||||||
|
spec:
|
||||||
|
method: kubernetes
|
||||||
|
mount: kubernetes
|
||||||
|
kubernetes:
|
||||||
|
role: llama-proxy
|
||||||
|
serviceAccount: llama-proxy
|
||||||
|
---
|
||||||
|
apiVersion: secrets.hashicorp.com/v1beta1
|
||||||
|
kind: VaultStaticSecret
|
||||||
|
metadata:
|
||||||
|
name: llama-api-key
|
||||||
|
namespace: llama
|
||||||
|
spec:
|
||||||
|
type: kv-v2
|
||||||
|
|
||||||
|
mount: secret
|
||||||
|
path: ollama
|
||||||
|
|
||||||
|
destination:
|
||||||
|
create: true
|
||||||
|
name: llama-api-key
|
||||||
|
type: Opaque
|
||||||
|
transformation:
|
||||||
|
excludeRaw: true
|
||||||
|
|
||||||
|
vaultAuthRef: llama
|
||||||
28
apps/nas/configmap.yaml
Normal file
28
apps/nas/configmap.yaml
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: nas-sftp-config
|
||||||
|
namespace: nas
|
||||||
|
data:
|
||||||
|
sftp.json: |
|
||||||
|
{
|
||||||
|
"Global": {
|
||||||
|
"Chroot": {
|
||||||
|
"Directory": "%h",
|
||||||
|
"StartPath": "data"
|
||||||
|
},
|
||||||
|
"Directories": [
|
||||||
|
"data"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Users": [
|
||||||
|
{
|
||||||
|
"Username": "nas",
|
||||||
|
"UID": 1000,
|
||||||
|
"GID": 1000,
|
||||||
|
"PublicKeys": [
|
||||||
|
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCresbDFZijI+rZMgd3LdciPjpb4x4S5B7y0U+EoYPaz6hILT72fyz3QdcgKJJv8JUJI6g0811/yFRuOzCXgWaA922c/S/t6HMUrorh7mPVQMTN2dc/SVBvMa7S2M9NYBj6z1X2LRHs+g1JTMCtL202PIjes/E9qu0as0Vx6n/6HHNmtmA9LrpiAmurbeKXDmrYe2yWg/FA6cX5d86SJb21Dj8WqdCd3Hz0Pi6FzMKXhpWvs5Hfei1htsjsRzCxkpSTjlgFEFVfmHIXPfB06Sa6aCnkxAFnE7N+xNa9RIWeZmOXdA74LsfSKQ9eAXSrsC/IRxo2ce8cBzXJy+Itxw24fUqGYXBiCgx8i3ZA9IdwI1u71xYo9lyNjav5VykzKnAHRAYnDm9UsCf8k04reBevcLdtxL11vPCtind3xn76Nhy2b45dcp/MdYFANGsCcXJOMb6Aisb03HPGhs/aU3tCAQbTVe195mL9FWhGqIK2wBmF1SKW+4ssX2bIU6YaCYc= cardno:23_671_999"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
68
apps/nas/deployment.yaml
Normal file
68
apps/nas/deployment.yaml
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: nas-sftp
|
||||||
|
namespace: nas
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: nas-sftp
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nas-sftp
|
||||||
|
spec:
|
||||||
|
initContainers:
|
||||||
|
- name: prepare-home
|
||||||
|
image: alpine:3.23.3
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
command:
|
||||||
|
- /bin/sh
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
set -euo pipefail
|
||||||
|
mkdir -p /volume/sftp-root
|
||||||
|
chown root:root /volume/sftp-root
|
||||||
|
chmod 755 /volume/sftp-root
|
||||||
|
mkdir -p /volume/sftp-root/data
|
||||||
|
chown 1000:1000 /volume/sftp-root/data
|
||||||
|
chmod 750 /volume/sftp-root/data
|
||||||
|
mkdir -p /volume/host-keys
|
||||||
|
chown root:root /volume/host-keys
|
||||||
|
chmod 700 /volume/host-keys
|
||||||
|
volumeMounts:
|
||||||
|
- name: home
|
||||||
|
mountPath: /volume
|
||||||
|
containers:
|
||||||
|
- name: sftp
|
||||||
|
image: docker.io/emberstack/sftp:build-5.1.72
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
ports:
|
||||||
|
- containerPort: 22
|
||||||
|
name: sftp
|
||||||
|
protocol: TCP
|
||||||
|
volumeMounts:
|
||||||
|
- name: config
|
||||||
|
mountPath: /app/config/sftp.json
|
||||||
|
subPath: sftp.json
|
||||||
|
readOnly: true
|
||||||
|
- name: home
|
||||||
|
mountPath: /home/nas
|
||||||
|
subPath: sftp-root
|
||||||
|
- name: home
|
||||||
|
mountPath: /etc/ssh/keys
|
||||||
|
subPath: host-keys
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 50m
|
||||||
|
memory: 128Mi
|
||||||
|
limits:
|
||||||
|
memory: 512Mi
|
||||||
|
volumes:
|
||||||
|
- name: home
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nas-data-lvm-hdd
|
||||||
|
- name: config
|
||||||
|
configMap:
|
||||||
|
name: nas-sftp-config
|
||||||
8
apps/nas/kustomization.yaml
Normal file
8
apps/nas/kustomization.yaml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- namespace.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
|
||||||
49
apps/nas/pvc.yaml
Normal file
49
apps/nas/pvc.yaml
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
apiVersion: local.openebs.io/v1alpha1
|
||||||
|
kind: LVMVolume
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
kubernetes.io/nodename: anapistula-delrosalae
|
||||||
|
name: nas-data-lvm-hdd
|
||||||
|
namespace: openebs
|
||||||
|
spec:
|
||||||
|
capacity: 4Gi
|
||||||
|
ownerNodeID: anapistula-delrosalae
|
||||||
|
shared: "yes"
|
||||||
|
thinProvision: "no"
|
||||||
|
vgPattern: ^openebs-hdd$
|
||||||
|
volGroup: openebs-hdd
|
||||||
|
---
|
||||||
|
kind: PersistentVolume
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: nas-data-lvm-hdd
|
||||||
|
spec:
|
||||||
|
capacity:
|
||||||
|
storage: 4Gi
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
persistentVolumeReclaimPolicy: Delete
|
||||||
|
storageClassName: openebs-lvmpv
|
||||||
|
volumeMode: Filesystem
|
||||||
|
csi:
|
||||||
|
driver: local.csi.openebs.io
|
||||||
|
volumeHandle: nas-data-lvm-hdd
|
||||||
|
claimRef:
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
namespace: nas
|
||||||
|
name: nas-data-lvm-hdd
|
||||||
|
---
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: nas-data-lvm-hdd
|
||||||
|
namespace: nas
|
||||||
|
spec:
|
||||||
|
storageClassName: openebs-lvmpv
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 4Gi
|
||||||
|
volumeName: nas-data-lvm-hdd
|
||||||
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-sftp
|
||||||
|
namespace: nas
|
||||||
|
spec:
|
||||||
|
type: LoadBalancer
|
||||||
|
externalTrafficPolicy: Cluster
|
||||||
|
ports:
|
||||||
|
- name: sftp
|
||||||
|
port: 22
|
||||||
|
targetPort: 22
|
||||||
|
protocol: TCP
|
||||||
|
selector:
|
||||||
|
app: nas-sftp
|
||||||
40
apps/registry/deployment.yaml
Normal file
40
apps/registry/deployment.yaml
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: registry
|
||||||
|
namespace: registry
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: registry
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: registry
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: registry
|
||||||
|
image: registry:3.0.0
|
||||||
|
ports:
|
||||||
|
- containerPort: 5000
|
||||||
|
volumeMounts:
|
||||||
|
- name: data
|
||||||
|
mountPath: /var/lib/registry
|
||||||
|
volumes:
|
||||||
|
- name: data
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: registry-data
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: registry-service
|
||||||
|
namespace: registry
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: registry
|
||||||
|
ports:
|
||||||
|
- protocol: TCP
|
||||||
|
port: 80
|
||||||
|
targetPort: 5000
|
||||||
26
apps/registry/ingress.yaml
Normal file
26
apps/registry/ingress.yaml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
namespace: registry
|
||||||
|
name: registry
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt
|
||||||
|
nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx-ingress
|
||||||
|
rules:
|
||||||
|
- host: registry.lumpiasty.xyz
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- backend:
|
||||||
|
service:
|
||||||
|
name: registry-service
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
path: /
|
||||||
|
pathType: Prefix
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- registry.lumpiasty.xyz
|
||||||
|
secretName: researcher-ingress
|
||||||
8
apps/registry/kustomization.yaml
Normal file
8
apps/registry/kustomization.yaml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- namespace.yaml
|
||||||
|
- volume.yaml
|
||||||
|
- deployment.yaml
|
||||||
|
- ingress.yaml
|
||||||
5
apps/registry/namespace.yaml
Normal file
5
apps/registry/namespace.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: registry
|
||||||
13
apps/registry/volume.yaml
Normal file
13
apps/registry/volume.yaml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: registry-data
|
||||||
|
namespace: registry
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 50Gi
|
||||||
|
storageClassName: mayastor-single-hdd
|
||||||
11
apps/renovate/configmap.yaml
Normal file
11
apps/renovate/configmap.yaml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
namespace: renovate
|
||||||
|
name: renovate-config
|
||||||
|
data:
|
||||||
|
RENOVATE_AUTODISCOVER: "true"
|
||||||
|
RENOVATE_ENDPOINT: https://gitea.lumpiasty.xyz/api/v1
|
||||||
|
RENOVATE_PLATFORM: gitea
|
||||||
|
RENOVATE_GIT_AUTHOR: Renovate Bot <renovate@lumpiasty.xyz>
|
||||||
@@ -1,16 +1,11 @@
|
|||||||
---
|
---
|
||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: renovate
|
|
||||||
---
|
|
||||||
apiVersion: batch/v1
|
apiVersion: batch/v1
|
||||||
kind: CronJob
|
kind: CronJob
|
||||||
metadata:
|
metadata:
|
||||||
name: renovate
|
name: renovate
|
||||||
namespace: renovate
|
namespace: renovate
|
||||||
spec:
|
spec:
|
||||||
schedule: "@hourly"
|
schedule: "@daily"
|
||||||
concurrencyPolicy: Forbid
|
concurrencyPolicy: Forbid
|
||||||
jobTemplate:
|
jobTemplate:
|
||||||
spec:
|
spec:
|
||||||
@@ -20,8 +15,10 @@ spec:
|
|||||||
- name: renovate
|
- name: renovate
|
||||||
# Update this to the latest available and then enable Renovate on
|
# Update this to the latest available and then enable Renovate on
|
||||||
# the manifest
|
# the manifest
|
||||||
image: renovate/renovate:39.215.2-full
|
image: renovate/renovate:43.4.3-full
|
||||||
envFrom:
|
envFrom:
|
||||||
- secretRef:
|
- secretRef:
|
||||||
name: renovate-env
|
name: renovate-gitea-token
|
||||||
|
- configMapRef:
|
||||||
|
name: renovate-config
|
||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
7
apps/renovate/kustomization.yaml
Normal file
7
apps/renovate/kustomization.yaml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- namespace.yaml
|
||||||
|
- configmap.yaml
|
||||||
|
- secret.yaml
|
||||||
|
- cronjob.yaml
|
||||||
5
apps/renovate/namespace.yaml
Normal file
5
apps/renovate/namespace.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: renovate
|
||||||
38
apps/renovate/secret.yaml
Normal file
38
apps/renovate/secret.yaml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: renovate
|
||||||
|
namespace: renovate
|
||||||
|
---
|
||||||
|
apiVersion: secrets.hashicorp.com/v1beta1
|
||||||
|
kind: VaultAuth
|
||||||
|
metadata:
|
||||||
|
name: renovate
|
||||||
|
namespace: renovate
|
||||||
|
spec:
|
||||||
|
method: kubernetes
|
||||||
|
mount: kubernetes
|
||||||
|
kubernetes:
|
||||||
|
role: renovate
|
||||||
|
serviceAccount: renovate
|
||||||
|
---
|
||||||
|
apiVersion: secrets.hashicorp.com/v1beta1
|
||||||
|
kind: VaultStaticSecret
|
||||||
|
metadata:
|
||||||
|
name: renovate-gitea-token
|
||||||
|
namespace: renovate
|
||||||
|
spec:
|
||||||
|
type: kv-v2
|
||||||
|
|
||||||
|
mount: secret
|
||||||
|
path: renovate
|
||||||
|
|
||||||
|
destination:
|
||||||
|
create: true
|
||||||
|
name: renovate-gitea-token
|
||||||
|
type: Opaque
|
||||||
|
transformation:
|
||||||
|
excludeRaw: true
|
||||||
|
|
||||||
|
vaultAuthRef: renovate
|
||||||
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
|
||||||
5
apps/searxng/namespace.yaml
Normal file
5
apps/searxng/namespace.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
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
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,17 +1,34 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"flake-compat": {
|
"devenv": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733328505,
|
"dir": "src/modules",
|
||||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
"lastModified": 1769881431,
|
||||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
"owner": "cachix",
|
||||||
"revCount": 69,
|
"repo": "devenv",
|
||||||
"type": "tarball",
|
"rev": "72d5e66e2dd5112766ef4c9565872b51094b542d",
|
||||||
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"dir": "src/modules",
|
||||||
"url": "https://flakehub.com/f/edolstra/flake-compat/1.1.0.tar.gz"
|
"owner": "cachix",
|
||||||
|
"repo": "devenv",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767039857,
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
@@ -19,11 +36,10 @@
|
|||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710146030,
|
"lastModified": 1731533236,
|
||||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -32,6 +48,47 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"git-hooks": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"gitignore": "gitignore",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1769069492,
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"rev": "a1ef738813b15cf8ec759bdff5761b027e3e1d23",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gitignore": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"git-hooks",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1762808025,
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"rev": "cb5e3fdca1de58ccbc3ef53de65bd372b48f567c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"krew2nix": {
|
"krew2nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
@@ -42,11 +99,10 @@
|
|||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738540903,
|
"lastModified": 1769904483,
|
||||||
"narHash": "sha256-/C5RTu3yCpVFHIL7u3hL9ZRGrXmIrLg3iB4+z9A3E8A=",
|
|
||||||
"owner": "a1994sc",
|
"owner": "a1994sc",
|
||||||
"repo": "krew2nix",
|
"repo": "krew2nix",
|
||||||
"rev": "5bc50d65d6496ad30f897a9fe5532f440fb143ef",
|
"rev": "17d6ad3375899bd3f7d4d298481536155f3ec13c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -57,11 +113,10 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742069588,
|
"lastModified": 1769461804,
|
||||||
"narHash": "sha256-C7jVfohcGzdZRF6DO+ybyG/sqpo1h6bZi9T56sxLy+k=",
|
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5",
|
"rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -73,15 +128,18 @@
|
|||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"devenv": "devenv",
|
||||||
|
"git-hooks": "git-hooks",
|
||||||
"krew2nix": "krew2nix",
|
"krew2nix": "krew2nix",
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs",
|
||||||
|
"pre-commit-hooks": [
|
||||||
|
"git-hooks"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
"owner": "nix-systems",
|
||||||
"repo": "default",
|
"repo": "default",
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
@@ -96,7 +154,6 @@
|
|||||||
"systems_2": {
|
"systems_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
"owner": "nix-systems",
|
||||||
"repo": "default",
|
"repo": "default",
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
@@ -116,11 +173,10 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1715940852,
|
"lastModified": 1769691507,
|
||||||
"narHash": "sha256-wJqHMg/K6X3JGAE9YLM0LsuKrKb4XiBeVaoeMNlReZg=",
|
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "2fba33a182602b9d49f0b2440513e5ee091d838b",
|
"rev": "28b19c5844cc6e2257801d43f2772a4b4c050a1b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
59
devenv.nix
Normal file
59
devenv.nix
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
{ pkgs, lib, config, inputs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
# Python with hvac package
|
||||||
|
python = pkgs.python313.withPackages (python-pkgs: with python-pkgs; [
|
||||||
|
hvac
|
||||||
|
]);
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# Overlays - apply krew2nix to get kubectl with krew support
|
||||||
|
overlays = [
|
||||||
|
inputs.krew2nix.overlay
|
||||||
|
];
|
||||||
|
|
||||||
|
# Environment variables
|
||||||
|
env = {
|
||||||
|
GREET = "devenv";
|
||||||
|
TALOSCONFIG = "${config.devenv.root}/talos/generated/talosconfig";
|
||||||
|
EDITOR = "vim";
|
||||||
|
RESTIC_REPOSITORY = "s3:https://s3.eu-central-003.backblazeb2.com/lumpiasty-backups";
|
||||||
|
VAULT_ADDR = "https://openbao.lumpiasty.xyz:8200";
|
||||||
|
PATH = "${config.devenv.root}/utils:${pkgs.coreutils}/bin";
|
||||||
|
PYTHON_BIN = "${python}/bin/python";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Packages
|
||||||
|
packages = with pkgs; [
|
||||||
|
python
|
||||||
|
vim gnumake
|
||||||
|
talosctl cilium-cli
|
||||||
|
kubectx k9s kubernetes-helm
|
||||||
|
(kubectl.withKrewPlugins (plugins: with plugins; [
|
||||||
|
mayastor
|
||||||
|
openebs
|
||||||
|
]))
|
||||||
|
ansible
|
||||||
|
fluxcd
|
||||||
|
restic
|
||||||
|
openbao
|
||||||
|
pv-migrate
|
||||||
|
];
|
||||||
|
|
||||||
|
# Scripts
|
||||||
|
scripts.hello.exec = ''
|
||||||
|
echo hello from $GREET
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Shell hooks
|
||||||
|
enterShell = ''
|
||||||
|
source ${pkgs.bash-completion}/share/bash-completion/bash_completion
|
||||||
|
echo "Environment ready!"
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Tests
|
||||||
|
enterTest = ''
|
||||||
|
echo "Running tests"
|
||||||
|
git --version | grep --color=auto "${pkgs.git.version}"
|
||||||
|
'';
|
||||||
|
}
|
||||||
20
devenv.yaml
Normal file
20
devenv.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# yaml-language-server: $schema=https://devenv.sh/devenv.schema.json
|
||||||
|
inputs:
|
||||||
|
nixpkgs:
|
||||||
|
url: github:NixOS/nixpkgs/nixos-unstable
|
||||||
|
krew2nix:
|
||||||
|
url: github:a1994sc/krew2nix
|
||||||
|
inputs:
|
||||||
|
nixpkgs:
|
||||||
|
follows: nixpkgs
|
||||||
|
|
||||||
|
# If you're using non-OSS software, you can set allowUnfree to true.
|
||||||
|
# allowUnfree: true
|
||||||
|
|
||||||
|
# If you're willing to use a package that's vulnerable
|
||||||
|
# permittedInsecurePackages:
|
||||||
|
# - "openssl-1.1.1w"
|
||||||
|
|
||||||
|
# If you have more than one devenv you can merge them
|
||||||
|
#imports:
|
||||||
|
# - ./backend
|
||||||
59
flake.nix
59
flake.nix
@@ -1,59 +0,0 @@
|
|||||||
{
|
|
||||||
inputs = {
|
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
||||||
|
|
||||||
# Only to ease updating flake.lock, flake-compat is used by shell.nix
|
|
||||||
flake-compat.url = https://flakehub.com/f/edolstra/flake-compat/1.1.0.tar.gz;
|
|
||||||
|
|
||||||
# Allows us to install krew plugins
|
|
||||||
krew2nix.url = "github:a1994sc/krew2nix";
|
|
||||||
krew2nix.inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
outputs = { self, nixpkgs, krew2nix, ... }: let
|
|
||||||
system = "x86_64-linux";
|
|
||||||
in {
|
|
||||||
devShells."${system}".default =
|
|
||||||
let
|
|
||||||
pkgs = import nixpkgs {
|
|
||||||
overlays = [ krew2nix.overlay ];
|
|
||||||
inherit system;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
pkgs.mkShell {
|
|
||||||
packages = with pkgs; [
|
|
||||||
(python313.withPackages (python-pkgs: with python-pkgs; [
|
|
||||||
hvac
|
|
||||||
]))
|
|
||||||
vim gnumake
|
|
||||||
talosctl cilium-cli
|
|
||||||
kubectx k9s kubernetes-helm
|
|
||||||
(kubectl.withKrewPlugins (plugins: with plugins; [
|
|
||||||
mayastor
|
|
||||||
openebs
|
|
||||||
]))
|
|
||||||
ansible
|
|
||||||
fluxcd
|
|
||||||
restic
|
|
||||||
openbao
|
|
||||||
];
|
|
||||||
|
|
||||||
shellHook = ''
|
|
||||||
# Get completions working
|
|
||||||
source ${pkgs.bash-completion}/share/bash-completion/bash_completion
|
|
||||||
|
|
||||||
export TALOSCONFIG=$(pwd)/talos/generated/talosconfig
|
|
||||||
export EDITOR=vim
|
|
||||||
|
|
||||||
export RESTIC_REPOSITORY=s3:https://s3.eu-central-003.backblazeb2.com/lumpiasty-backups
|
|
||||||
# export AWS_ACCESS_KEY_ID=?
|
|
||||||
# export AWS_SECRET_ACCESS_KEY=?
|
|
||||||
# export RESTIC_PASSWORD=?
|
|
||||||
export VAULT_ADDR=https://openbao.lumpiasty.xyz:8200
|
|
||||||
|
|
||||||
# Add scripts from utils subdir
|
|
||||||
export PATH="$PATH:$(pwd)/utils"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
12
infra/configs/lvmpv-hdd-sc.yaml
Normal file
12
infra/configs/lvmpv-hdd-sc.yaml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
apiVersion: storage.k8s.io/v1
|
||||||
|
kind: StorageClass
|
||||||
|
metadata:
|
||||||
|
name: hdd-lvmpv
|
||||||
|
parameters:
|
||||||
|
storage: "lvm"
|
||||||
|
volgroup: "openebs-hdd"
|
||||||
|
fsType: "btrfs"
|
||||||
|
shared: "yes"
|
||||||
|
provisioner: local.csi.openebs.io
|
||||||
|
allowVolumeExpansion: true
|
||||||
|
volumeBindingMode: Immediate
|
||||||
38
infra/configs/ovh-cert-manager-secret.yaml
Normal file
38
infra/configs/ovh-cert-manager-secret.yaml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: ovh-credentials
|
||||||
|
namespace: cert-manager
|
||||||
|
---
|
||||||
|
apiVersion: secrets.hashicorp.com/v1beta1
|
||||||
|
kind: VaultAuth
|
||||||
|
metadata:
|
||||||
|
name: cert-manager
|
||||||
|
namespace: cert-manager
|
||||||
|
spec:
|
||||||
|
method: kubernetes
|
||||||
|
mount: kubernetes
|
||||||
|
kubernetes:
|
||||||
|
role: cert-manager
|
||||||
|
serviceAccount: ovh-credentials
|
||||||
|
---
|
||||||
|
apiVersion: secrets.hashicorp.com/v1beta1
|
||||||
|
kind: VaultStaticSecret
|
||||||
|
metadata:
|
||||||
|
name: webhook-ovh-credentials
|
||||||
|
namespace: cert-manager
|
||||||
|
spec:
|
||||||
|
type: kv-v2
|
||||||
|
|
||||||
|
mount: secret
|
||||||
|
path: ovh-cert-manager
|
||||||
|
|
||||||
|
destination:
|
||||||
|
create: true
|
||||||
|
name: ovh-credentials
|
||||||
|
type: Opaque
|
||||||
|
transformation:
|
||||||
|
excludeRaw: true
|
||||||
|
|
||||||
|
vaultAuthRef: cert-manager
|
||||||
@@ -16,3 +16,5 @@ parameters:
|
|||||||
poolAffinityTopologyLabel: |
|
poolAffinityTopologyLabel: |
|
||||||
type: hdd
|
type: hdd
|
||||||
provisioner: io.openebs.csi-mayastor
|
provisioner: io.openebs.csi-mayastor
|
||||||
|
# Allow expansion of volumes
|
||||||
|
allowVolumeExpansion: true
|
||||||
|
|||||||
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:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: cert-manager-webhook-ovh
|
chart: cert-manager-webhook-ovh
|
||||||
version: 0.7.3
|
version: 0.8.0
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cert-manager-webhook-ovh
|
name: cert-manager-webhook-ovh
|
||||||
namespace: cert-manager
|
namespace: cert-manager
|
||||||
interval: 12h
|
interval: 12h
|
||||||
values:
|
values:
|
||||||
configVersion: 0.0.1
|
configVersion: 0.0.2
|
||||||
groupName: lumpiasty-homelab
|
groupName: lumpiasty-homelab
|
||||||
certManager:
|
certManager:
|
||||||
namespace: cert-manager
|
namespace: cert-manager
|
||||||
@@ -38,6 +38,7 @@ spec:
|
|||||||
acmeServerUrl: https://acme-v02.api.letsencrypt.org/directory
|
acmeServerUrl: https://acme-v02.api.letsencrypt.org/directory
|
||||||
email: arek.dzski@gmail.com
|
email: arek.dzski@gmail.com
|
||||||
ovhEndpointName: ovh-eu
|
ovhEndpointName: ovh-eu
|
||||||
|
ovhAuthenticationMethod: application
|
||||||
ovhAuthenticationRef:
|
ovhAuthenticationRef:
|
||||||
applicationKeyRef:
|
applicationKeyRef:
|
||||||
name: ovh-credentials
|
name: ovh-credentials
|
||||||
@@ -45,6 +46,6 @@ spec:
|
|||||||
applicationSecretRef:
|
applicationSecretRef:
|
||||||
name: ovh-credentials
|
name: ovh-credentials
|
||||||
key: applicationSecret
|
key: applicationSecret
|
||||||
consumerKeyRef:
|
applicationConsumerKeyRef:
|
||||||
name: ovh-credentials
|
name: ovh-credentials
|
||||||
key: consumerKey
|
key: consumerKey
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ spec:
|
|||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: cert-manager
|
chart: cert-manager
|
||||||
version: 1.17.0
|
version: v1.19.3
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cert-manager
|
name: cert-manager
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ spec:
|
|||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: cilium
|
chart: cilium
|
||||||
version: 1.17.2
|
version: 1.18.6
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cilium
|
name: cilium
|
||||||
|
|||||||
31
infra/controllers/cloudnative-pg.yaml
Normal file
31
infra/controllers/cloudnative-pg.yaml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: cnpg-system
|
||||||
|
---
|
||||||
|
apiVersion: source.toolkit.fluxcd.io/v1
|
||||||
|
kind: HelmRepository
|
||||||
|
metadata:
|
||||||
|
name: cnpg
|
||||||
|
namespace: cnpg-system
|
||||||
|
spec:
|
||||||
|
interval: 24h
|
||||||
|
url: https://cloudnative-pg.github.io/charts
|
||||||
|
---
|
||||||
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||||
|
kind: HelmRelease
|
||||||
|
metadata:
|
||||||
|
name: cnpg
|
||||||
|
namespace: cnpg-system
|
||||||
|
spec:
|
||||||
|
interval: 30m
|
||||||
|
chart:
|
||||||
|
spec:
|
||||||
|
chart: cloudnative-pg
|
||||||
|
version: 0.27.0
|
||||||
|
sourceRef:
|
||||||
|
kind: HelmRepository
|
||||||
|
name: cnpg
|
||||||
|
namespace: cnpg-system
|
||||||
|
interval: 12h
|
||||||
@@ -97,7 +97,7 @@ spec:
|
|||||||
env:
|
env:
|
||||||
- name: GOMEMLIMIT
|
- name: GOMEMLIMIT
|
||||||
value: 161MiB
|
value: 161MiB
|
||||||
image: registry.k8s.io/coredns/coredns:v1.12.0
|
image: registry.k8s.io/coredns/coredns:v1.14.1
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
failureThreshold: 5
|
failureThreshold: 5
|
||||||
|
|||||||
32
infra/controllers/external-secrets.yaml
Normal file
32
infra/controllers/external-secrets.yaml
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: external-secrets
|
||||||
|
---
|
||||||
|
apiVersion: source.toolkit.fluxcd.io/v1
|
||||||
|
kind: HelmRepository
|
||||||
|
metadata:
|
||||||
|
name: external-secrets
|
||||||
|
namespace: external-secrets
|
||||||
|
spec:
|
||||||
|
interval: 24h
|
||||||
|
url: https://charts.external-secrets.io
|
||||||
|
---
|
||||||
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||||
|
kind: HelmRelease
|
||||||
|
metadata:
|
||||||
|
name: external-secrets
|
||||||
|
namespace: external-secrets
|
||||||
|
spec:
|
||||||
|
interval: 30m
|
||||||
|
chart:
|
||||||
|
spec:
|
||||||
|
chart: external-secrets
|
||||||
|
version: 0.16.2
|
||||||
|
sourceRef:
|
||||||
|
kind: HelmRepository
|
||||||
|
name: external-secrets
|
||||||
|
namespace: external-secrets
|
||||||
|
interval: 12h
|
||||||
|
values:
|
||||||
@@ -23,7 +23,7 @@ spec:
|
|||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: k8up
|
chart: k8up
|
||||||
version: 4.8.3
|
version: 4.8.6
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: k8up-io
|
name: k8up-io
|
||||||
|
|||||||
33
infra/controllers/mongodb-operator.yaml
Normal file
33
infra/controllers/mongodb-operator.yaml
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: mongodb
|
||||||
|
---
|
||||||
|
apiVersion: source.toolkit.fluxcd.io/v1
|
||||||
|
kind: HelmRepository
|
||||||
|
metadata:
|
||||||
|
name: mongodb
|
||||||
|
namespace: mongodb
|
||||||
|
spec:
|
||||||
|
interval: 24h
|
||||||
|
url: https://mongodb.github.io/helm-charts
|
||||||
|
---
|
||||||
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||||
|
kind: HelmRelease
|
||||||
|
metadata:
|
||||||
|
name: mongodb-operator
|
||||||
|
namespace: mongodb
|
||||||
|
spec:
|
||||||
|
interval: 30m
|
||||||
|
chart:
|
||||||
|
spec:
|
||||||
|
chart: community-operator
|
||||||
|
version: 0.13.0
|
||||||
|
sourceRef:
|
||||||
|
kind: HelmRepository
|
||||||
|
name: mongodb
|
||||||
|
namespace: mongodb
|
||||||
|
values:
|
||||||
|
operator:
|
||||||
|
watchNamespace: "*"
|
||||||
@@ -2,32 +2,32 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Namespace
|
kind: Namespace
|
||||||
metadata:
|
metadata:
|
||||||
name: nginx-ingress-controller
|
name: nginx-ingress
|
||||||
---
|
---
|
||||||
apiVersion: source.toolkit.fluxcd.io/v1
|
apiVersion: source.toolkit.fluxcd.io/v1
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
metadata:
|
metadata:
|
||||||
name: nginx
|
name: ingress-nginx
|
||||||
namespace: nginx-ingress-controller
|
namespace: nginx-ingress
|
||||||
spec:
|
spec:
|
||||||
interval: 24h
|
interval: 24h
|
||||||
url: https://helm.nginx.com/stable
|
url: https://kubernetes.github.io/ingress-nginx
|
||||||
---
|
---
|
||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||||
kind: HelmRelease
|
kind: HelmRelease
|
||||||
metadata:
|
metadata:
|
||||||
name: nginx-ingress
|
name: nginx-ingress
|
||||||
namespace: nginx-ingress-controller
|
namespace: nginx-ingress
|
||||||
spec:
|
spec:
|
||||||
interval: 30m
|
interval: 30m
|
||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: nginx-ingress
|
chart: ingress-nginx
|
||||||
version: 2.0.1
|
version: 4.14.3
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: nginx
|
name: ingress-nginx
|
||||||
namespace: nginx-ingress-controller
|
namespace: nginx-ingress
|
||||||
interval: 12h
|
interval: 12h
|
||||||
values:
|
values:
|
||||||
controller:
|
controller:
|
||||||
@@ -39,9 +39,11 @@ spec:
|
|||||||
cpu: 100m
|
cpu: 100m
|
||||||
memory: 128Mi
|
memory: 128Mi
|
||||||
|
|
||||||
ingressClass:
|
ingressClass: "nginx-ingress"
|
||||||
create: true
|
ingressClassResource:
|
||||||
setAsDefaultIngress: true
|
name: "nginx-ingress"
|
||||||
|
enabled: true
|
||||||
|
default: false
|
||||||
|
|
||||||
service:
|
service:
|
||||||
create: true
|
create: true
|
||||||
@@ -49,8 +51,11 @@ spec:
|
|||||||
# Requirement for sharing ip with other service
|
# Requirement for sharing ip with other service
|
||||||
externalTrafficPolicy: Cluster
|
externalTrafficPolicy: Cluster
|
||||||
ipFamilyPolicy: RequireDualStack
|
ipFamilyPolicy: RequireDualStack
|
||||||
|
ipFamilies:
|
||||||
|
- IPv4
|
||||||
|
- IPv6
|
||||||
annotations:
|
annotations:
|
||||||
# Share IP with gitea ssh so we can have the same domain for both port
|
# 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-key: gitea
|
||||||
lbipam.cilium.io/sharing-cross-namespace: gitea
|
lbipam.cilium.io/sharing-cross-namespace: gitea
|
||||||
lbipam.cilium.io/ips: 10.44.0.0,2001:470:61a3:400::1
|
lbipam.cilium.io/ips: 10.44.0.6,2001:470:61a3:400::6
|
||||||
@@ -23,7 +23,7 @@ spec:
|
|||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: openbao
|
chart: openbao
|
||||||
version: 0.8.1
|
version: 0.25.0
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: openbao
|
name: openbao
|
||||||
@@ -77,3 +77,5 @@ spec:
|
|||||||
storageClass: mayastor-single-hdd
|
storageClass: mayastor-single-hdd
|
||||||
csi:
|
csi:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
injector:
|
||||||
|
affinity: ""
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ spec:
|
|||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: openebs
|
chart: openebs
|
||||||
version: 4.1.3
|
version: 4.4.0
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: openebs
|
name: openebs
|
||||||
@@ -38,7 +38,7 @@ spec:
|
|||||||
lvm-localpv:
|
lvm-localpv:
|
||||||
crds:
|
crds:
|
||||||
lmvLocalPv:
|
lmvLocalPv:
|
||||||
enabled: false
|
enabled: true
|
||||||
|
|
||||||
mayastor:
|
mayastor:
|
||||||
csi:
|
csi:
|
||||||
@@ -63,7 +63,7 @@ spec:
|
|||||||
# Workaround for crashing io-engine
|
# Workaround for crashing io-engine
|
||||||
# https://github.com/openebs/mayastor/issues/1763#issuecomment-2481922234
|
# https://github.com/openebs/mayastor/issues/1763#issuecomment-2481922234
|
||||||
envcontext: "iova-mode=pa"
|
envcontext: "iova-mode=pa"
|
||||||
coreList: [2, 3]
|
coreList: [1, 7]
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpu: 4
|
cpu: 4
|
||||||
@@ -102,10 +102,29 @@ spec:
|
|||||||
requests:
|
requests:
|
||||||
cpu: 0
|
cpu: 0
|
||||||
|
|
||||||
|
# Remove antiaffinity, breaks when I set it to 1 replica
|
||||||
|
nats:
|
||||||
|
cluster:
|
||||||
|
enable: true
|
||||||
|
replicas: 3
|
||||||
|
affinity:
|
||||||
|
podAntiAffinity:
|
||||||
|
requiredDuringSchedulingIgnoredDuringExecution: []
|
||||||
|
|
||||||
|
loki:
|
||||||
|
loki:
|
||||||
|
commonConfig:
|
||||||
|
replication_factor: 1
|
||||||
|
singleBinary:
|
||||||
|
replicas: 1
|
||||||
|
minio:
|
||||||
|
replicas: 1
|
||||||
|
mode: standalone
|
||||||
|
|
||||||
engines:
|
engines:
|
||||||
local:
|
local:
|
||||||
lvm:
|
lvm:
|
||||||
enabled: false
|
enabled: true
|
||||||
zfs:
|
zfs:
|
||||||
enabled: false
|
enabled: false
|
||||||
replicated:
|
replicated:
|
||||||
|
|||||||
35
infra/controllers/vault-secrets-operator.yaml
Normal file
35
infra/controllers/vault-secrets-operator.yaml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: vault-secrets-operator
|
||||||
|
---
|
||||||
|
apiVersion: source.toolkit.fluxcd.io/v1
|
||||||
|
kind: HelmRepository
|
||||||
|
metadata:
|
||||||
|
name: hashicorp
|
||||||
|
namespace: vault-secrets-operator
|
||||||
|
spec:
|
||||||
|
interval: 24h
|
||||||
|
url: https://helm.releases.hashicorp.com
|
||||||
|
---
|
||||||
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||||
|
kind: HelmRelease
|
||||||
|
metadata:
|
||||||
|
name: vault-secrets-operator
|
||||||
|
namespace: vault-secrets-operator
|
||||||
|
spec:
|
||||||
|
interval: 30m
|
||||||
|
chart:
|
||||||
|
spec:
|
||||||
|
chart: vault-secrets-operator
|
||||||
|
version: 1.2.0
|
||||||
|
sourceRef:
|
||||||
|
kind: HelmRepository
|
||||||
|
name: hashicorp
|
||||||
|
namespace: vault-secrets-operator
|
||||||
|
interval: 12h
|
||||||
|
values:
|
||||||
|
defaultVaultConnection:
|
||||||
|
enabled: true
|
||||||
|
address: "https://openbao.lumpiasty.xyz:8200"
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
apiVersion: "openebs.io/v1beta2"
|
apiVersion: "openebs.io/v1beta3"
|
||||||
kind: DiskPool
|
kind: DiskPool
|
||||||
metadata:
|
metadata:
|
||||||
name: anapistula-delrosalae-hdd
|
name: anapistula-delrosalae-hdd
|
||||||
|
|||||||
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,16 +3,24 @@ kind: Kustomization
|
|||||||
resources:
|
resources:
|
||||||
- controllers/k8up-crd-4.8.3.yaml
|
- controllers/k8up-crd-4.8.3.yaml
|
||||||
- controllers/cilium.yaml
|
- controllers/cilium.yaml
|
||||||
- controllers/nginx.yaml
|
- controllers/nginx-ingress.yaml
|
||||||
- controllers/dns-public.yaml
|
- controllers/dns-public.yaml
|
||||||
- controllers/cert-manager.yaml
|
- controllers/cert-manager.yaml
|
||||||
- controllers/cert-manager-webhook-ovh.yaml
|
- controllers/cert-manager-webhook-ovh.yaml
|
||||||
- controllers/openebs.yaml
|
- controllers/openebs.yaml
|
||||||
- controllers/k8up.yaml
|
- controllers/k8up.yaml
|
||||||
- controllers/openbao.yaml
|
- controllers/openbao.yaml
|
||||||
|
- controllers/external-secrets.yaml
|
||||||
|
- controllers/vault-secrets-operator.yaml
|
||||||
|
- controllers/mongodb-operator.yaml
|
||||||
|
- controllers/cloudnative-pg.yaml
|
||||||
- diskpools/anapistula-delrosalae-hdd.yaml
|
- diskpools/anapistula-delrosalae-hdd.yaml
|
||||||
|
- diskpools/anapistula-delrosalae-ssd.yaml
|
||||||
- configs/bgp-cluster-config.yaml
|
- configs/bgp-cluster-config.yaml
|
||||||
- configs/loadbalancer-ippool.yaml
|
- configs/loadbalancer-ippool.yaml
|
||||||
- configs/single-hdd-sc.yaml
|
- configs/single-hdd-sc.yaml
|
||||||
|
- configs/single-ssd-sc.yaml
|
||||||
|
- configs/lvmpv-hdd-sc.yaml
|
||||||
- configs/mayastor-snapshotclass.yaml
|
- configs/mayastor-snapshotclass.yaml
|
||||||
- configs/openbao-cert.yaml
|
- configs/openbao-cert.yaml
|
||||||
|
- configs/ovh-cert-manager-secret.yaml
|
||||||
|
|||||||
16
monke/gpt-researcher.yaml
Normal file
16
monke/gpt-researcher.yaml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: tavily
|
||||||
|
namespace: gpt-researcher
|
||||||
|
stringData:
|
||||||
|
TAVILY_API_KEY: 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
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: openrouter
|
||||||
|
namespace: gpt-researcher
|
||||||
|
stringData:
|
||||||
|
OPENROUTER_API_KEY: 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
|
||||||
3
pyrightconfig.json
Normal file
3
pyrightconfig.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"allowedUntypedLibraries": ["hvac"]
|
||||||
|
}
|
||||||
@@ -1,10 +1,14 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||||
"kubernetes": {
|
"kubernetes": {
|
||||||
"fileMatch": ["\\.yaml$"]
|
"fileMatch": ["infra/.+\\.yaml$", "apps/.+\\.yaml$"]
|
||||||
},
|
},
|
||||||
"flux": {
|
"flux": {
|
||||||
"fileMatch": ["infra/.+\\.yaml$", "apps/.+\\.yaml$"]
|
"fileMatch": [
|
||||||
|
"infra/.+\\.yaml$",
|
||||||
|
"apps/.+\\.yaml$",
|
||||||
|
"gotk-components\\.ya?ml$"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"prHourlyLimit": 9
|
"prHourlyLimit": 9
|
||||||
}
|
}
|
||||||
|
|||||||
15
shell.nix
15
shell.nix
@@ -1,15 +0,0 @@
|
|||||||
# Needed for Nix Environment Selector
|
|
||||||
# https://github.com/edolstra/flake-compat/
|
|
||||||
(import
|
|
||||||
(
|
|
||||||
let
|
|
||||||
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
|
|
||||||
nodeName = lock.nodes.root.inputs.flake-compat;
|
|
||||||
in
|
|
||||||
fetchTarball {
|
|
||||||
url = lock.nodes.${nodeName}.locked.url;
|
|
||||||
sha256 = lock.nodes.${nodeName}.locked.narHash;
|
|
||||||
}
|
|
||||||
)
|
|
||||||
{ src = ./.; }
|
|
||||||
).shellNix
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
machine:
|
machine:
|
||||||
network:
|
network:
|
||||||
interfaces:
|
interfaces:
|
||||||
- interface: enp4s0
|
- interface: eno1
|
||||||
addresses:
|
addresses:
|
||||||
- 2001:470:61a3:100::3/64
|
- 2001:470:61a3:100::3/64
|
||||||
- 192.168.1.35/24
|
- 192.168.1.35/24
|
||||||
@@ -10,13 +10,20 @@ machine:
|
|||||||
gateway: 2001:470:61a3:100:ffff:ffff:ffff:ffff
|
gateway: 2001:470:61a3:100:ffff:ffff:ffff:ffff
|
||||||
- network: 0.0.0.0/0
|
- network: 0.0.0.0/0
|
||||||
gateway: 192.168.1.1
|
gateway: 192.168.1.1
|
||||||
mtu: 1500
|
mtu: 1280
|
||||||
|
|
||||||
install:
|
install:
|
||||||
diskSelector:
|
diskSelector:
|
||||||
wwid: t10.ATA SSDPR-CX400-256 GUH039914
|
wwid: t10.ATA SSDPR-CX400-256 GUH039914
|
||||||
# Generated on https://factory.talos.dev/
|
# Generated on https://factory.talos.dev/
|
||||||
# intel-ucode and amdgpu
|
# amd-ucode and amdgpu
|
||||||
image: factory.talos.dev/installer/06deebb947b815afa53f04c450d355d3c8bc28927a387c754db1622a0a06349e:v1.9.5
|
image: factory.talos.dev/metal-installer/9c1d1b442d73f96dcd04e81463eb20000ab014062d22e1b083e1773336bc1dd5:v1.10.6
|
||||||
extraKernelArgs:
|
extraKernelArgs:
|
||||||
- cpufreq.default_governor=performance
|
- cpufreq.default_governor=performance
|
||||||
|
sysfs:
|
||||||
|
devices.system.cpu.cpu0.cpufreq.scaling_max_freq: "550000"
|
||||||
|
devices.system.cpu.cpu1.cpufreq.scaling_max_freq: "550000"
|
||||||
|
devices.system.cpu.cpu2.cpufreq.scaling_max_freq: "550000"
|
||||||
|
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"
|
||||||
|
|||||||
11
talos/patches/frigate.patch
Normal file
11
talos/patches/frigate.patch
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# CSI driver requirement
|
||||||
|
cluster:
|
||||||
|
apiServer:
|
||||||
|
admissionControl:
|
||||||
|
- name: PodSecurity
|
||||||
|
configuration:
|
||||||
|
apiVersion: pod-security.admission.config.k8s.io/v1beta1
|
||||||
|
kind: PodSecurityConfiguration
|
||||||
|
exemptions:
|
||||||
|
namespaces:
|
||||||
|
- frigate
|
||||||
11
talos/patches/llama.patch
Normal file
11
talos/patches/llama.patch
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# CSI driver requirement
|
||||||
|
cluster:
|
||||||
|
apiServer:
|
||||||
|
admissionControl:
|
||||||
|
- name: PodSecurity
|
||||||
|
configuration:
|
||||||
|
apiVersion: pod-security.admission.config.k8s.io/v1beta1
|
||||||
|
kind: PodSecurityConfiguration
|
||||||
|
exemptions:
|
||||||
|
namespaces:
|
||||||
|
- llama
|
||||||
11
talos/patches/ollama.patch
Normal file
11
talos/patches/ollama.patch
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# CSI driver requirement
|
||||||
|
cluster:
|
||||||
|
apiServer:
|
||||||
|
admissionControl:
|
||||||
|
- name: PodSecurity
|
||||||
|
configuration:
|
||||||
|
apiVersion: pod-security.admission.config.k8s.io/v1beta1
|
||||||
|
kind: PodSecurityConfiguration
|
||||||
|
exemptions:
|
||||||
|
namespaces:
|
||||||
|
- ollama
|
||||||
@@ -16,7 +16,7 @@ machine:
|
|||||||
- rw
|
- rw
|
||||||
install:
|
install:
|
||||||
extraKernelArgs:
|
extraKernelArgs:
|
||||||
- isolcpus=2,3
|
- isolcpus=1,7
|
||||||
|
|
||||||
cluster:
|
cluster:
|
||||||
apiServer:
|
apiServer:
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user