Compare commits
1 Commits
renovate/r
...
f6b3ece4ec
| Author | SHA1 | Date | |
|---|---|---|---|
| f6b3ece4ec |
12
Makefile
12
Makefile
@@ -3,17 +3,7 @@ install-router:
|
|||||||
|
|
||||||
gen-talos-config:
|
gen-talos-config:
|
||||||
mkdir -p talos/generated
|
mkdir -p talos/generated
|
||||||
talosctl gen config \
|
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
|
||||||
--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
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: frigate
|
|
||||||
@@ -1,179 +0,0 @@
|
|||||||
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:
|
|
||||||
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
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
---
|
|
||||||
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
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
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
|
|
||||||
@@ -7,17 +7,17 @@ spec:
|
|||||||
backend:
|
backend:
|
||||||
# Manually adding secrets for now
|
# Manually adding secrets for now
|
||||||
repoPasswordSecretRef:
|
repoPasswordSecretRef:
|
||||||
name: gitea-backup-restic
|
name: restic-repo
|
||||||
key: password
|
key: password
|
||||||
s3:
|
s3:
|
||||||
endpoint: https://s3.eu-central-003.backblazeb2.com
|
endpoint: https://s3.eu-central-003.backblazeb2.com
|
||||||
bucket: lumpiasty-backups
|
bucket: lumpiasty-backups
|
||||||
accessKeyIDSecretRef:
|
accessKeyIDSecretRef:
|
||||||
name: gitea-backup-backblaze
|
name: backblaze
|
||||||
key: aws_access_key_id
|
key: keyid
|
||||||
secretAccessKeySecretRef:
|
secretAccessKeySecretRef:
|
||||||
name: gitea-backup-backblaze
|
name: backblaze
|
||||||
key: aws_secret_access_key
|
key: secret
|
||||||
backup:
|
backup:
|
||||||
schedule: "@daily-random"
|
schedule: "@daily-random"
|
||||||
failedJobsHistoryLimit: 2
|
failedJobsHistoryLimit: 2
|
||||||
|
|||||||
@@ -4,5 +4,4 @@ resources:
|
|||||||
- namespace.yaml
|
- namespace.yaml
|
||||||
- postgres-cluster.yaml
|
- postgres-cluster.yaml
|
||||||
- release.yaml
|
- release.yaml
|
||||||
- secret.yaml
|
|
||||||
- backups.yaml
|
- backups.yaml
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ spec:
|
|||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: gitea
|
chart: gitea
|
||||||
version: 12.4.0
|
version: 11.0.1
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: gitea-charts
|
name: gitea-charts
|
||||||
@@ -37,12 +37,12 @@ spec:
|
|||||||
requests:
|
requests:
|
||||||
cpu: 0
|
cpu: 0
|
||||||
|
|
||||||
valkey-cluster:
|
redis-cluster:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
valkey:
|
redis:
|
||||||
enabled: true
|
enabled: true
|
||||||
primary:
|
master:
|
||||||
persistence:
|
persistence:
|
||||||
enabled: true
|
enabled: true
|
||||||
storageClass: mayastor-single-hdd
|
storageClass: mayastor-single-hdd
|
||||||
@@ -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
|
lbipam.cilium.io/sharing-cross-namespace: nginx-ingress-controller
|
||||||
lbipam.cilium.io/ips: 10.44.0.6,2001:470:61a3:400::6
|
lbipam.cilium.io/ips: 10.44.0.0,2001:470:61a3:400::1
|
||||||
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-ingress
|
className: nginx
|
||||||
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"
|
||||||
|
|||||||
@@ -1,58 +0,0 @@
|
|||||||
---
|
|
||||||
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
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
resources:
|
|
||||||
- namespace.yaml
|
|
||||||
- volume.yaml
|
|
||||||
- redis.yaml
|
|
||||||
- postgres-password.yaml
|
|
||||||
- postgres-cluster.yaml
|
|
||||||
- release.yaml
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: immich
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
---
|
|
||||||
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
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
---
|
|
||||||
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
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: source.toolkit.fluxcd.io/v1
|
|
||||||
kind: HelmRepository
|
|
||||||
metadata:
|
|
||||||
name: bitnami
|
|
||||||
namespace: immich
|
|
||||||
spec:
|
|
||||||
interval: 24h
|
|
||||||
type: "oci"
|
|
||||||
url: oci://registry-1.docker.io/bitnamicharts/
|
|
||||||
---
|
|
||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: redis
|
|
||||||
namespace: immich
|
|
||||||
spec:
|
|
||||||
interval: 30m
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: redis
|
|
||||||
version: 23.1.3
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: bitnami
|
|
||||||
values:
|
|
||||||
global:
|
|
||||||
defaultStorageClass: mayastor-single-hdd
|
|
||||||
architecture: standalone
|
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: source.toolkit.fluxcd.io/v1
|
|
||||||
kind: HelmRepository
|
|
||||||
metadata:
|
|
||||||
name: secustor
|
|
||||||
namespace: immich
|
|
||||||
spec:
|
|
||||||
interval: 24h
|
|
||||||
url: https://secustor.dev/helm-charts
|
|
||||||
---
|
|
||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: immich
|
|
||||||
namespace: immich
|
|
||||||
spec:
|
|
||||||
interval: 30m
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: immich
|
|
||||||
version: 1.0.2
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: secustor
|
|
||||||
values:
|
|
||||||
common:
|
|
||||||
config:
|
|
||||||
vecotrExtension: vectorchord
|
|
||||||
postgres:
|
|
||||||
host: immich-db-rw
|
|
||||||
existingSecret:
|
|
||||||
enabled: true
|
|
||||||
secretName: immich-db-immich
|
|
||||||
usernameKey: username
|
|
||||||
passwordKey: password
|
|
||||||
redis:
|
|
||||||
host: redis-master
|
|
||||||
existingSecret:
|
|
||||||
enabled: true
|
|
||||||
secretName: redis
|
|
||||||
passwordKey: redis-password
|
|
||||||
|
|
||||||
server:
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /usr/src/app/upload
|
|
||||||
name: uploads
|
|
||||||
volumes:
|
|
||||||
- name: uploads
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: library
|
|
||||||
|
|
||||||
machineLearning:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
ingress:
|
|
||||||
enabled: true
|
|
||||||
className: nginx-ingress
|
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: letsencrypt
|
|
||||||
nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
|
||||||
hosts:
|
|
||||||
- host: immich.lumpiasty.xyz
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: Prefix
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- immich.lumpiasty.xyz
|
|
||||||
secretName: immich-ingress
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: library
|
|
||||||
namespace: immich
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 150Gi
|
|
||||||
storageClassName: mayastor-single-hdd
|
|
||||||
@@ -4,9 +4,5 @@ resources:
|
|||||||
- gitea
|
- gitea
|
||||||
- registry
|
- registry
|
||||||
- renovate
|
- renovate
|
||||||
|
- ollama
|
||||||
- librechat
|
- librechat
|
||||||
- frigate
|
|
||||||
- llama
|
|
||||||
- immich
|
|
||||||
- nas
|
|
||||||
- searxng
|
|
||||||
|
|||||||
@@ -2,11 +2,11 @@
|
|||||||
apiVersion: source.toolkit.fluxcd.io/v1
|
apiVersion: source.toolkit.fluxcd.io/v1
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
metadata:
|
metadata:
|
||||||
name: dynomite567-charts
|
name: bat-librechat
|
||||||
namespace: librechat
|
namespace: librechat
|
||||||
spec:
|
spec:
|
||||||
interval: 24h
|
interval: 24h
|
||||||
url: https://dynomite567.github.io/helm-charts/
|
url: https://charts.blue-atlas.de
|
||||||
---
|
---
|
||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||||
kind: HelmRelease
|
kind: HelmRelease
|
||||||
@@ -18,10 +18,10 @@ spec:
|
|||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: librechat
|
chart: librechat
|
||||||
version: 1.9.1
|
version: 1.8.9
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: dynomite567-charts
|
name: bat-librechat
|
||||||
values:
|
values:
|
||||||
global:
|
global:
|
||||||
librechat:
|
librechat:
|
||||||
@@ -39,32 +39,26 @@ spec:
|
|||||||
|
|
||||||
endpoints:
|
endpoints:
|
||||||
custom:
|
custom:
|
||||||
- name: "Llama.cpp"
|
- name: "Ollama"
|
||||||
apiKey: "llama"
|
apiKey: "ollama"
|
||||||
baseURL: "http://llama.llama.svc.cluster.local:11434/v1"
|
baseURL: "http://ollama.ollama.svc.cluster.local:11434/v1/chat/completions"
|
||||||
models:
|
models:
|
||||||
default: [
|
default: [
|
||||||
"DeepSeek-R1-0528-Qwen3-8B-GGUF",
|
"llama2",
|
||||||
"Qwen3-8B-GGUF",
|
"mistral",
|
||||||
"Qwen3-8B-GGUF-no-thinking",
|
"codellama",
|
||||||
"gemma3n-e4b",
|
"dolphin-mixtral",
|
||||||
"gemma3-12b",
|
"mistral-openorca"
|
||||||
"gemma3-12b-q2",
|
]
|
||||||
"gemma3-12b-novision",
|
# fetching list of models is supported but the `name` field must start
|
||||||
"gemma3-4b",
|
# with `ollama` (case-insensitive), as it does in this example.
|
||||||
"gemma3-4b-novision",
|
fetch: true
|
||||||
"Qwen3-4B-Thinking-2507",
|
|
||||||
"Qwen3-4B-Thinking-2507-long-ctx",
|
|
||||||
"Qwen2.5-VL-7B-Instruct-GGUF",
|
|
||||||
"Qwen2.5-VL-32B-Instruct-GGUF-IQ1_S",
|
|
||||||
"Qwen2.5-VL-32B-Instruct-GGUF-Q2_K_L"
|
|
||||||
]
|
|
||||||
titleConvo: true
|
titleConvo: true
|
||||||
titleModel: "gemma3-4b-novision"
|
titleModel: "current_model"
|
||||||
summarize: false
|
summarize: false
|
||||||
summaryModel: "gemma3-4b-novision"
|
summaryModel: "current_model"
|
||||||
forcePrompt: false
|
forcePrompt: false
|
||||||
modelDisplayLabel: "Llama.cpp"
|
modelDisplayLabel: "Ollama"
|
||||||
imageVolume:
|
imageVolume:
|
||||||
enabled: true
|
enabled: true
|
||||||
size: 10G
|
size: 10G
|
||||||
@@ -72,12 +66,9 @@ spec:
|
|||||||
storageClassName: mayastor-single-hdd
|
storageClassName: mayastor-single-hdd
|
||||||
ingress:
|
ingress:
|
||||||
enabled: true
|
enabled: true
|
||||||
className: nginx-ingress
|
className: nginx
|
||||||
annotations:
|
annotations:
|
||||||
cert-manager.io/cluster-issuer: letsencrypt
|
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:
|
hosts:
|
||||||
- host: librechat.lumpiasty.xyz
|
- host: librechat.lumpiasty.xyz
|
||||||
paths:
|
paths:
|
||||||
|
|||||||
@@ -1,216 +0,0 @@
|
|||||||
healthCheckTimeout: 600
|
|
||||||
|
|
||||||
models:
|
|
||||||
"DeepSeek-R1-0528-Qwen3-8B-GGUF":
|
|
||||||
ttl: 600
|
|
||||||
cmd: |
|
|
||||||
/app/llama-server
|
|
||||||
-hf unsloth/DeepSeek-R1-0528-Qwen3-8B-GGUF:Q4_K_M
|
|
||||||
-ngl 37 -c 16384
|
|
||||||
--no-warmup
|
|
||||||
--port ${PORT}
|
|
||||||
"Qwen3-8B-GGUF":
|
|
||||||
ttl: 600
|
|
||||||
cmd: |
|
|
||||||
/app/llama-server
|
|
||||||
-hf unsloth/Qwen3-8B-GGUF:Q4_K_M
|
|
||||||
-ngl 37 -c 16384
|
|
||||||
--no-warmup
|
|
||||||
--port ${PORT}
|
|
||||||
"Qwen3-8B-GGUF-no-thinking":
|
|
||||||
ttl: 600
|
|
||||||
cmd: |
|
|
||||||
/app/llama-server
|
|
||||||
-hf unsloth/Qwen3-8B-GGUF:Q4_K_M
|
|
||||||
-ngl 37 -c 16384
|
|
||||||
--jinja --chat-template-file /config/qwen_nothink_chat_template.jinja
|
|
||||||
--no-warmup
|
|
||||||
--port ${PORT}
|
|
||||||
"gemma3n-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
|
|
||||||
-ngl 99 -c 16384 --predict 8192
|
|
||||||
--temp 0.6
|
|
||||||
--min-p 0.00
|
|
||||||
--top-p 0.95
|
|
||||||
--top-k 20
|
|
||||||
--repeat-penalty 1.0
|
|
||||||
--no-warmup
|
|
||||||
--port ${PORT}
|
|
||||||
"Qwen3-4B-Thinking-2507-long-ctx":
|
|
||||||
ttl: 600
|
|
||||||
cmd: |
|
|
||||||
/app/llama-server
|
|
||||||
-hf unsloth/Qwen3-4B-Thinking-2507-GGUF:Q4_K_M
|
|
||||||
-ngl 99 -c 262144 --predict 81920
|
|
||||||
--temp 0.6
|
|
||||||
--min-p 0.00
|
|
||||||
--top-p 0.95
|
|
||||||
--top-k 20
|
|
||||||
--repeat-penalty 1.0
|
|
||||||
--no-warmup
|
|
||||||
--flash-attn
|
|
||||||
--cache-type-k q8_0 --cache-type-v q8_0
|
|
||||||
--port ${PORT}
|
|
||||||
"Qwen3-4B-Instruct-2507":
|
|
||||||
ttl: 600
|
|
||||||
cmd: |
|
|
||||||
/app/llama-server
|
|
||||||
-hf unsloth/Qwen3-4B-Instruct-2507-GGUF:Q4_K_M
|
|
||||||
-ngl 99 -c 16384 --predict 8192
|
|
||||||
--temp 0.7
|
|
||||||
--min-p 0.00
|
|
||||||
--top-p 0.8
|
|
||||||
--top-k 20
|
|
||||||
--repeat-penalty 1.0
|
|
||||||
--no-warmup
|
|
||||||
--port ${PORT}
|
|
||||||
"Qwen3-4B-Instruct-2507-long-ctx":
|
|
||||||
ttl: 600
|
|
||||||
cmd: |
|
|
||||||
/app/llama-server
|
|
||||||
-hf unsloth/Qwen3-4B-Instruct-2507-GGUF:Q4_K_M
|
|
||||||
-ngl 99 -c 262144 --predict 81920
|
|
||||||
--temp 0.7
|
|
||||||
--min-p 0.00
|
|
||||||
--top-p 0.8
|
|
||||||
--top-k 20
|
|
||||||
--repeat-penalty 1.0
|
|
||||||
--no-warmup
|
|
||||||
--flash-attn
|
|
||||||
--cache-type-k q8_0 --cache-type-v q8_0
|
|
||||||
--port ${PORT}
|
|
||||||
"Qwen2.5-VL-32B-Instruct-GGUF-IQ1_S":
|
|
||||||
ttl: 600
|
|
||||||
cmd: |
|
|
||||||
/app/llama-server
|
|
||||||
-hf unsloth/Qwen2.5-VL-32B-Instruct-GGUF:IQ1_S
|
|
||||||
-ngl 99 -c 16384 --predict 8192
|
|
||||||
--temp 0.7
|
|
||||||
--min-p 0.00
|
|
||||||
--top-p 0.8
|
|
||||||
--top-k 20
|
|
||||||
--repeat-penalty 1.0
|
|
||||||
--no-warmup
|
|
||||||
--port ${PORT}
|
|
||||||
"Qwen2.5-VL-32B-Instruct-GGUF-Q2_K_L":
|
|
||||||
ttl: 600
|
|
||||||
cmd: |
|
|
||||||
/app/llama-server
|
|
||||||
-hf unsloth/Qwen2.5-VL-32B-Instruct-GGUF:Q2_K_L
|
|
||||||
-ngl 99 -c 16384 --predict 8192
|
|
||||||
--temp 0.7
|
|
||||||
--min-p 0.00
|
|
||||||
--top-p 0.8
|
|
||||||
--top-k 20
|
|
||||||
--repeat-penalty 1.0
|
|
||||||
--no-warmup
|
|
||||||
--port ${PORT}
|
|
||||||
"Qwen2.5-VL-7B-Instruct-GGUF":
|
|
||||||
ttl: 600
|
|
||||||
cmd: |
|
|
||||||
/app/llama-server
|
|
||||||
-hf unsloth/Qwen2.5-VL-7B-Instruct-GGUF:Q4_K_M
|
|
||||||
-ngl 37 -c 16384 --predict 8192
|
|
||||||
--temp 0.7
|
|
||||||
--min-p 0.00
|
|
||||||
--top-p 0.8
|
|
||||||
--top-k 20
|
|
||||||
--repeat-penalty 1.0
|
|
||||||
--no-warmup
|
|
||||||
--port ${PORT}
|
|
||||||
@@ -1,101 +0,0 @@
|
|||||||
{%- 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 %}
|
|
||||||
@@ -1,70 +0,0 @@
|
|||||||
---
|
|
||||||
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:v166-vulkan-b6795
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
command:
|
|
||||||
- /app/llama-swap
|
|
||||||
args:
|
|
||||||
- --config=/config/config.yaml
|
|
||||||
- --watch-config
|
|
||||||
ports:
|
|
||||||
- containerPort: 8080
|
|
||||||
name: http
|
|
||||||
protocol: TCP
|
|
||||||
volumeMounts:
|
|
||||||
- name: models
|
|
||||||
mountPath: /root/.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
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
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
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: llama
|
|
||||||
name: llama-models
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 200Gi
|
|
||||||
storageClassName: mayastor-single-ssd
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
---
|
|
||||||
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
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: nas-sshd-config
|
|
||||||
namespace: nas
|
|
||||||
data:
|
|
||||||
00-chroot.conf: |
|
|
||||||
Subsystem sftp internal-sftp
|
|
||||||
Match User nas
|
|
||||||
ChrootDirectory /config
|
|
||||||
ForceCommand internal-sftp -d /data
|
|
||||||
AllowTcpForwarding no
|
|
||||||
X11Forwarding no
|
|
||||||
PermitTunnel no
|
|
||||||
@@ -1,94 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: nas-ssh
|
|
||||||
namespace: nas
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: nas-ssh
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: nas-ssh
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
fsGroup: 1000
|
|
||||||
initContainers:
|
|
||||||
- name: prepare-config
|
|
||||||
image: alpine:3.20.3
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
command:
|
|
||||||
- /bin/sh
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
set -euo pipefail
|
|
||||||
chown root:root /config
|
|
||||||
chmod 755 /config
|
|
||||||
mkdir -p /config/data
|
|
||||||
chown 1000:1000 /config/data
|
|
||||||
chmod 750 /config/data
|
|
||||||
mkdir -p /config/ssh_host_keys
|
|
||||||
chown root:root /config/ssh_host_keys
|
|
||||||
chmod 700 /config/ssh_host_keys
|
|
||||||
for key in /config/ssh_host_keys/*; do
|
|
||||||
[ -f "$key" ] || continue
|
|
||||||
chown root:root "$key"
|
|
||||||
chmod 600 "$key"
|
|
||||||
done
|
|
||||||
mkdir -p /config/sshd/sshd_config.d
|
|
||||||
cp /defaults/00-chroot.conf /config/sshd/sshd_config.d/00-chroot.conf
|
|
||||||
chown root:root /config/sshd/sshd_config.d/00-chroot.conf
|
|
||||||
chmod 644 /config/sshd/sshd_config.d/00-chroot.conf
|
|
||||||
volumeMounts:
|
|
||||||
- name: data
|
|
||||||
mountPath: /config
|
|
||||||
- name: sshd-config
|
|
||||||
mountPath: /defaults/00-chroot.conf
|
|
||||||
subPath: 00-chroot.conf
|
|
||||||
readOnly: true
|
|
||||||
containers:
|
|
||||||
- name: ssh
|
|
||||||
image: lscr.io/linuxserver/openssh-server:version-10.0_p1-r9
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
env:
|
|
||||||
- name: PUID
|
|
||||||
value: "1000"
|
|
||||||
- name: PGID
|
|
||||||
value: "1000"
|
|
||||||
- name: TZ
|
|
||||||
value: Etc/UTC
|
|
||||||
- name: USER_NAME
|
|
||||||
value: nas
|
|
||||||
- name: SUDO_ACCESS
|
|
||||||
value: "false"
|
|
||||||
- name: PASSWORD_ACCESS
|
|
||||||
value: "false"
|
|
||||||
- name: LOG_STDOUT
|
|
||||||
value: "true"
|
|
||||||
- name: PUBLIC_KEY
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: nas-ssh-authorized-keys
|
|
||||||
key: public_key
|
|
||||||
ports:
|
|
||||||
- containerPort: 2222
|
|
||||||
name: ssh
|
|
||||||
protocol: TCP
|
|
||||||
volumeMounts:
|
|
||||||
- name: data
|
|
||||||
mountPath: /config
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 50m
|
|
||||||
memory: 128Mi
|
|
||||||
limits:
|
|
||||||
memory: 512Mi
|
|
||||||
volumes:
|
|
||||||
- name: data
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: nas-data
|
|
||||||
- name: sshd-config
|
|
||||||
configMap:
|
|
||||||
name: nas-sshd-config
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
resources:
|
|
||||||
- namespace.yaml
|
|
||||||
- secret.yaml
|
|
||||||
- configmap.yaml
|
|
||||||
- pvc.yaml
|
|
||||||
- deployment.yaml
|
|
||||||
- service.yaml
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: nas
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: nas-data
|
|
||||||
namespace: nas
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 500Gi
|
|
||||||
storageClassName: mayastor-single-hdd
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: nas-ssh-authorized-keys
|
|
||||||
namespace: nas
|
|
||||||
type: Opaque
|
|
||||||
stringData:
|
|
||||||
public_key: |
|
|
||||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCresbDFZijI+rZMgd3LdciPjpb4x4S5B7y0U+EoYPaz6hILT72fyz3QdcgKJJv8JUJI6g0811/yFRuOzCXgWaA922c/S/t6HMUrorh7mPVQMTN2dc/SVBvMa7S2M9NYBj6z1X2LRHs+g1JTMCtL202PIjes/E9qu0as0Vx6n/6HHNmtmA9LrpiAmurbeKXDmrYe2yWg/FA6cX5d86SJb21Dj8WqdCd3Hz0Pi6FzMKXhpWvs5Hfei1htsjsRzCxkpSTjlgFEFVfmHIXPfB06Sa6aCnkxAFnE7N+xNa9RIWeZmOXdA74LsfSKQ9eAXSrsC/IRxo2ce8cBzXJy+Itxw24fUqGYXBiCgx8i3ZA9IdwI1u71xYo9lyNjav5VykzKnAHRAYnDm9UsCf8k04reBevcLdtxL11vPCtind3xn76Nhy2b45dcp/MdYFANGsCcXJOMb6Aisb03HPGhs/aU3tCAQbTVe195mL9FWhGqIK2wBmF1SKW+4ssX2bIU6YaCYc= cardno:23_671_999
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: nas-ssh
|
|
||||||
namespace: nas
|
|
||||||
spec:
|
|
||||||
type: LoadBalancer
|
|
||||||
externalTrafficPolicy: Cluster
|
|
||||||
ports:
|
|
||||||
- name: ssh
|
|
||||||
port: 22
|
|
||||||
targetPort: 2222
|
|
||||||
protocol: TCP
|
|
||||||
selector:
|
|
||||||
app: nas-ssh
|
|
||||||
@@ -2,21 +2,21 @@
|
|||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
name: llama-proxy
|
name: ollama-proxy
|
||||||
namespace: llama
|
namespace: ollama
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app.kubernetes.io/name: llama-proxy
|
app.kubernetes.io/name: ollama-proxy
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: llama-proxy
|
app.kubernetes.io/name: ollama-proxy
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: caddy
|
- name: caddy
|
||||||
image: caddy:2.10.2-alpine
|
image: caddy:2.9.1-alpine
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- mountPath: /etc/caddy
|
- mountPath: /etc/caddy
|
||||||
@@ -25,21 +25,21 @@ spec:
|
|||||||
- name: API_KEY
|
- name: API_KEY
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: llama-api-key
|
name: ollama-api-key
|
||||||
key: API_KEY
|
key: API_KEY
|
||||||
volumes:
|
volumes:
|
||||||
- name: proxy-config
|
- name: proxy-config
|
||||||
configMap:
|
configMap:
|
||||||
name: llama-proxy-config
|
name: ollama-proxy-config
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: ConfigMap
|
kind: ConfigMap
|
||||||
metadata:
|
metadata:
|
||||||
namespace: llama
|
namespace: ollama
|
||||||
name: llama-proxy-config
|
name: ollama-proxy-config
|
||||||
data:
|
data:
|
||||||
Caddyfile: |
|
Caddyfile: |
|
||||||
http://llama.lumpiasty.xyz {
|
http://ollama.lumpiasty.xyz {
|
||||||
|
|
||||||
@requireAuth {
|
@requireAuth {
|
||||||
not header Authorization "Bearer {env.API_KEY}"
|
not header Authorization "Bearer {env.API_KEY}"
|
||||||
@@ -47,7 +47,7 @@ data:
|
|||||||
|
|
||||||
respond @requireAuth "Unauthorized" 401
|
respond @requireAuth "Unauthorized" 401
|
||||||
|
|
||||||
reverse_proxy llama:11434 {
|
reverse_proxy ollama:11434 {
|
||||||
flush_interval -1
|
flush_interval -1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -55,12 +55,12 @@ data:
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
namespace: llama
|
namespace: ollama
|
||||||
name: llama-proxy
|
name: ollama-proxy
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
selector:
|
selector:
|
||||||
app.kubernetes.io/name: llama-proxy
|
app.kubernetes.io/name: ollama-proxy
|
||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
port: 80
|
port: 80
|
||||||
@@ -2,27 +2,27 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
namespace: llama
|
namespace: ollama
|
||||||
name: llama
|
name: ollama
|
||||||
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"
|
||||||
nginx.ingress.kubernetes.io/proxy-buffering: "false"
|
nginx.ingress.kubernetes.io/proxy-buffering: "false"
|
||||||
nginx.ingress.kubernetes.io/proxy-read-timeout: 30m
|
nginx.org/proxy-read-timeout: 30m
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: nginx-ingress
|
ingressClassName: nginx
|
||||||
rules:
|
rules:
|
||||||
- host: llama.lumpiasty.xyz
|
- host: ollama.lumpiasty.xyz
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
- backend:
|
- backend:
|
||||||
service:
|
service:
|
||||||
name: llama-proxy
|
name: ollama-proxy
|
||||||
port:
|
port:
|
||||||
number: 80
|
number: 80
|
||||||
path: /
|
path: /
|
||||||
pathType: Prefix
|
pathType: Prefix
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- llama.lumpiasty.xyz
|
- ollama.lumpiasty.xyz
|
||||||
secretName: llama-ingress
|
secretName: ollama-ingress
|
||||||
@@ -2,6 +2,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
- namespace.yaml
|
- namespace.yaml
|
||||||
- secret.yaml
|
|
||||||
- release.yaml
|
- release.yaml
|
||||||
- webrtc-svc.yaml
|
- auth-proxy.yaml
|
||||||
|
- ingress.yaml
|
||||||
@@ -2,4 +2,4 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Namespace
|
kind: Namespace
|
||||||
metadata:
|
metadata:
|
||||||
name: llama
|
name: ollama
|
||||||
60
apps/ollama/release.yaml
Normal file
60
apps/ollama/release.yaml
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
---
|
||||||
|
apiVersion: source.toolkit.fluxcd.io/v1
|
||||||
|
kind: HelmRepository
|
||||||
|
metadata:
|
||||||
|
name: ollama-helm
|
||||||
|
namespace: ollama
|
||||||
|
spec:
|
||||||
|
interval: 24h
|
||||||
|
url: https://otwld.github.io/ollama-helm/
|
||||||
|
---
|
||||||
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||||
|
kind: HelmRelease
|
||||||
|
metadata:
|
||||||
|
name: ollama
|
||||||
|
namespace: ollama
|
||||||
|
spec:
|
||||||
|
interval: 30m
|
||||||
|
chart:
|
||||||
|
spec:
|
||||||
|
chart: ollama
|
||||||
|
version: 1.14.0
|
||||||
|
sourceRef:
|
||||||
|
kind: HelmRepository
|
||||||
|
name: ollama-helm
|
||||||
|
namespace: ollama
|
||||||
|
interval: 12h
|
||||||
|
values:
|
||||||
|
ollama:
|
||||||
|
gpu:
|
||||||
|
enabled: false
|
||||||
|
persistentVolume:
|
||||||
|
enabled: true
|
||||||
|
storageClass: mayastor-single-hdd
|
||||||
|
size: 200Gi
|
||||||
|
# GPU support
|
||||||
|
# Rewrite of options in
|
||||||
|
# https://hub.docker.com/r/grinco/ollama-amd-apu
|
||||||
|
image:
|
||||||
|
repository: grinco/ollama-amd-apu
|
||||||
|
tag: vulkan
|
||||||
|
securityContext:
|
||||||
|
# Not ideal
|
||||||
|
privileged: true
|
||||||
|
capabilities:
|
||||||
|
add:
|
||||||
|
- PERFMON
|
||||||
|
volumeMounts:
|
||||||
|
- name: kfd
|
||||||
|
mountPath: /dev/kfd
|
||||||
|
- name: dri
|
||||||
|
mountPath: /dev/dri
|
||||||
|
volumes:
|
||||||
|
- name: kfd
|
||||||
|
hostPath:
|
||||||
|
path: /dev/kfd
|
||||||
|
type: CharDevice
|
||||||
|
- name: dri
|
||||||
|
hostPath:
|
||||||
|
path: /dev/dri
|
||||||
|
type: Directory
|
||||||
@@ -6,9 +6,9 @@ metadata:
|
|||||||
name: registry
|
name: registry
|
||||||
annotations:
|
annotations:
|
||||||
cert-manager.io/cluster-issuer: letsencrypt
|
cert-manager.io/cluster-issuer: letsencrypt
|
||||||
nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
nginx.org/client-max-body-size: "0"
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: nginx-ingress
|
ingressClassName: nginx
|
||||||
rules:
|
rules:
|
||||||
- host: registry.lumpiasty.xyz
|
- host: registry.lumpiasty.xyz
|
||||||
http:
|
http:
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
---
|
|
||||||
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>
|
|
||||||
@@ -5,7 +5,7 @@ metadata:
|
|||||||
name: renovate
|
name: renovate
|
||||||
namespace: renovate
|
namespace: renovate
|
||||||
spec:
|
spec:
|
||||||
schedule: "@daily"
|
schedule: "@hourly"
|
||||||
concurrencyPolicy: Forbid
|
concurrencyPolicy: Forbid
|
||||||
jobTemplate:
|
jobTemplate:
|
||||||
spec:
|
spec:
|
||||||
@@ -15,10 +15,8 @@ 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:41.169.1-full
|
image: renovate/renovate:40.0.9-full
|
||||||
envFrom:
|
envFrom:
|
||||||
- secretRef:
|
- secretRef:
|
||||||
name: renovate-gitea-token
|
name: renovate-env
|
||||||
- configMapRef:
|
|
||||||
name: renovate-config
|
|
||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
|
|||||||
@@ -2,6 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
- namespace.yaml
|
- namespace.yaml
|
||||||
- configmap.yaml
|
|
||||||
- secret.yaml
|
|
||||||
- cronjob.yaml
|
- cronjob.yaml
|
||||||
|
|||||||
@@ -1,38 +0,0 @@
|
|||||||
---
|
|
||||||
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 +0,0 @@
|
|||||||
use_default_settings: true
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
---
|
|
||||||
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
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
---
|
|
||||||
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
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
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
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: searxng
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
namespace: searxng
|
|
||||||
name: searxng-persistent-data
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 1Gi
|
|
||||||
storageClassName: mayastor-single-ssd
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: searxng
|
|
||||||
namespace: searxng
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
app: searxng
|
|
||||||
ports:
|
|
||||||
- protocol: TCP
|
|
||||||
port: 8080
|
|
||||||
targetPort: 8080
|
|
||||||
type: ClusterIP
|
|
||||||
24
flake.lock
generated
24
flake.lock
generated
@@ -19,11 +19,11 @@
|
|||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1710146030,
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -42,11 +42,11 @@
|
|||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751765453,
|
"lastModified": 1738540903,
|
||||||
"narHash": "sha256-tgo3BwFM2UUYQz6dVARztbj5AjKfz4exlPxnKLS/ZRg=",
|
"narHash": "sha256-/C5RTu3yCpVFHIL7u3hL9ZRGrXmIrLg3iB4+z9A3E8A=",
|
||||||
"owner": "a1994sc",
|
"owner": "a1994sc",
|
||||||
"repo": "krew2nix",
|
"repo": "krew2nix",
|
||||||
"rev": "11f66e65a0146645388eeab68b6212de0b732ed9",
|
"rev": "5bc50d65d6496ad30f897a9fe5532f440fb143ef",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -57,11 +57,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751637120,
|
"lastModified": 1742069588,
|
||||||
"narHash": "sha256-xVNy/XopSfIG9c46nRmPaKfH1Gn/56vQ8++xWA8itO4=",
|
"narHash": "sha256-C7jVfohcGzdZRF6DO+ybyG/sqpo1h6bZi9T56sxLy+k=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "5c724ed1388e53cc231ed98330a60eb2f7be4be3",
|
"rev": "c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -116,11 +116,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750931469,
|
"lastModified": 1715940852,
|
||||||
"narHash": "sha256-0IEdQB1nS+uViQw4k3VGUXntjkDp7aAlqcxdewb/hAc=",
|
"narHash": "sha256-wJqHMg/K6X3JGAE9YLM0LsuKrKb4XiBeVaoeMNlReZg=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "ac8e6f32e11e9c7f153823abc3ab007f2a65d3e1",
|
"rev": "2fba33a182602b9d49f0b2440513e5ee091d838b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
@@ -1,38 +0,0 @@
|
|||||||
---
|
|
||||||
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,5 +16,3 @@ parameters:
|
|||||||
poolAffinityTopologyLabel: |
|
poolAffinityTopologyLabel: |
|
||||||
type: hdd
|
type: hdd
|
||||||
provisioner: io.openebs.csi-mayastor
|
provisioner: io.openebs.csi-mayastor
|
||||||
# Allow expansion of volumes
|
|
||||||
allowVolumeExpansion: true
|
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
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.8.0
|
version: 0.7.3
|
||||||
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.2
|
configVersion: 0.0.1
|
||||||
groupName: lumpiasty-homelab
|
groupName: lumpiasty-homelab
|
||||||
certManager:
|
certManager:
|
||||||
namespace: cert-manager
|
namespace: cert-manager
|
||||||
@@ -38,7 +38,6 @@ 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
|
||||||
@@ -46,6 +45,6 @@ spec:
|
|||||||
applicationSecretRef:
|
applicationSecretRef:
|
||||||
name: ovh-credentials
|
name: ovh-credentials
|
||||||
key: applicationSecret
|
key: applicationSecret
|
||||||
applicationConsumerKeyRef:
|
consumerKeyRef:
|
||||||
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: v1.19.1
|
version: v1.17.1
|
||||||
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.18.2
|
version: 1.17.3
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cilium
|
name: cilium
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ spec:
|
|||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: cloudnative-pg
|
chart: cloudnative-pg
|
||||||
version: 0.26.0
|
version: 0.23.2
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: cnpg
|
name: cnpg
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ spec:
|
|||||||
env:
|
env:
|
||||||
- name: GOMEMLIMIT
|
- name: GOMEMLIMIT
|
||||||
value: 161MiB
|
value: 161MiB
|
||||||
image: registry.k8s.io/coredns/coredns:v1.13.0
|
image: registry.k8s.io/coredns/coredns:v1.12.1
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
failureThreshold: 5
|
failureThreshold: 5
|
||||||
|
|||||||
@@ -1,32 +0,0 @@
|
|||||||
---
|
|
||||||
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.6
|
version: 4.8.4
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: k8up-io
|
name: k8up-io
|
||||||
|
|||||||
@@ -2,32 +2,32 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Namespace
|
kind: Namespace
|
||||||
metadata:
|
metadata:
|
||||||
name: nginx-ingress
|
name: nginx-ingress-controller
|
||||||
---
|
---
|
||||||
apiVersion: source.toolkit.fluxcd.io/v1
|
apiVersion: source.toolkit.fluxcd.io/v1
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
metadata:
|
metadata:
|
||||||
name: ingress-nginx
|
name: nginx
|
||||||
namespace: nginx-ingress
|
namespace: nginx-ingress-controller
|
||||||
spec:
|
spec:
|
||||||
interval: 24h
|
interval: 24h
|
||||||
url: https://kubernetes.github.io/ingress-nginx
|
url: https://helm.nginx.com/stable
|
||||||
---
|
---
|
||||||
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
|
namespace: nginx-ingress-controller
|
||||||
spec:
|
spec:
|
||||||
interval: 30m
|
interval: 30m
|
||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: ingress-nginx
|
chart: nginx-ingress
|
||||||
version: 4.13.3
|
version: 2.1.0
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: ingress-nginx
|
name: nginx
|
||||||
namespace: nginx-ingress
|
namespace: nginx-ingress-controller
|
||||||
interval: 12h
|
interval: 12h
|
||||||
values:
|
values:
|
||||||
controller:
|
controller:
|
||||||
@@ -39,11 +39,9 @@ spec:
|
|||||||
cpu: 100m
|
cpu: 100m
|
||||||
memory: 128Mi
|
memory: 128Mi
|
||||||
|
|
||||||
ingressClass: "nginx-ingress"
|
ingressClass:
|
||||||
ingressClassResource:
|
create: true
|
||||||
name: "nginx-ingress"
|
setAsDefaultIngress: true
|
||||||
enabled: true
|
|
||||||
default: false
|
|
||||||
|
|
||||||
service:
|
service:
|
||||||
create: true
|
create: true
|
||||||
@@ -51,11 +49,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.6,2001:470:61a3:400::6
|
lbipam.cilium.io/ips: 10.44.0.0,2001:470:61a3:400::1
|
||||||
|
config:
|
||||||
|
entries:
|
||||||
|
proxy-buffering: "false"
|
||||||
@@ -23,7 +23,7 @@ spec:
|
|||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: openbao
|
chart: openbao
|
||||||
version: 0.19.0
|
version: 0.12.0
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: openbao
|
name: openbao
|
||||||
@@ -77,5 +77,3 @@ 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.3.3
|
version: 4.2.0
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: openebs
|
name: openebs
|
||||||
@@ -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: [1, 7]
|
coreList: [2, 3]
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpu: 4
|
cpu: 4
|
||||||
@@ -102,25 +102,6 @@ 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:
|
||||||
|
|||||||
@@ -1,35 +0,0 @@
|
|||||||
---
|
|
||||||
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.0.1
|
|
||||||
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/v1beta3"
|
apiVersion: "openebs.io/v1beta2"
|
||||||
kind: DiskPool
|
kind: DiskPool
|
||||||
metadata:
|
metadata:
|
||||||
name: anapistula-delrosalae-hdd
|
name: anapistula-delrosalae-hdd
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
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,23 +3,18 @@ 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-ingress.yaml
|
- controllers/nginx.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/mongodb-operator.yaml
|
||||||
- controllers/cloudnative-pg.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/mayastor-snapshotclass.yaml
|
- configs/mayastor-snapshotclass.yaml
|
||||||
- configs/openbao-cert.yaml
|
- configs/openbao-cert.yaml
|
||||||
- configs/ovh-cert-manager-secret.yaml
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
machine:
|
machine:
|
||||||
network:
|
network:
|
||||||
interfaces:
|
interfaces:
|
||||||
- interface: eno1
|
- interface: enp5s0
|
||||||
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,20 +10,13 @@ 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: 1280
|
mtu: 1500
|
||||||
|
|
||||||
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/
|
||||||
# amd-ucode and amdgpu
|
# intel-ucode and amdgpu
|
||||||
image: factory.talos.dev/metal-installer/9c1d1b442d73f96dcd04e81463eb20000ab014062d22e1b083e1773336bc1dd5:v1.10.6
|
image: factory.talos.dev/installer/06deebb947b815afa53f04c450d355d3c8bc28927a387c754db1622a0a06349e:v1.9.5
|
||||||
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"
|
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
# CSI driver requirement
|
|
||||||
cluster:
|
|
||||||
apiServer:
|
|
||||||
admissionControl:
|
|
||||||
- name: PodSecurity
|
|
||||||
configuration:
|
|
||||||
apiVersion: pod-security.admission.config.k8s.io/v1beta1
|
|
||||||
kind: PodSecurityConfiguration
|
|
||||||
exemptions:
|
|
||||||
namespaces:
|
|
||||||
- frigate
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
# CSI driver requirement
|
|
||||||
cluster:
|
|
||||||
apiServer:
|
|
||||||
admissionControl:
|
|
||||||
- name: PodSecurity
|
|
||||||
configuration:
|
|
||||||
apiVersion: pod-security.admission.config.k8s.io/v1beta1
|
|
||||||
kind: PodSecurityConfiguration
|
|
||||||
exemptions:
|
|
||||||
namespaces:
|
|
||||||
- llama
|
|
||||||
@@ -16,7 +16,7 @@ machine:
|
|||||||
- rw
|
- rw
|
||||||
install:
|
install:
|
||||||
extraKernelArgs:
|
extraKernelArgs:
|
||||||
- isolcpus=1,7
|
- isolcpus=2,3
|
||||||
|
|
||||||
cluster:
|
cluster:
|
||||||
apiServer:
|
apiServer:
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
bound_service_account_names:
|
|
||||||
- backup
|
|
||||||
bound_service_account_namespaces:
|
|
||||||
- gitea
|
|
||||||
token_policies:
|
|
||||||
- backup
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
bound_service_account_names:
|
|
||||||
- ovh-credentials
|
|
||||||
bound_service_account_namespaces:
|
|
||||||
- cert-manager
|
|
||||||
token_policies:
|
|
||||||
- ovh-credentials
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
bound_service_account_names:
|
|
||||||
- camera
|
|
||||||
bound_service_account_namespaces:
|
|
||||||
- frigate
|
|
||||||
token_policies:
|
|
||||||
- frigate
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
bound_service_account_names:
|
|
||||||
- immich-password
|
|
||||||
bound_service_account_namespaces:
|
|
||||||
- immich
|
|
||||||
token_policies:
|
|
||||||
- immich
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
bound_service_account_names:
|
|
||||||
- llama-proxy
|
|
||||||
bound_service_account_namespaces:
|
|
||||||
- llama
|
|
||||||
token_policies:
|
|
||||||
- ollama
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
bound_service_account_names:
|
|
||||||
- ollama-proxy
|
|
||||||
bound_service_account_namespaces:
|
|
||||||
- ollama
|
|
||||||
token_policies:
|
|
||||||
- ollama
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
bound_service_account_names:
|
|
||||||
- renovate
|
|
||||||
bound_service_account_namespaces:
|
|
||||||
- renovate
|
|
||||||
token_policies:
|
|
||||||
- renovate
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
path "secret/data/restic" {
|
|
||||||
capabilities = ["read"]
|
|
||||||
}
|
|
||||||
|
|
||||||
path "secret/data/backblaze" {
|
|
||||||
capabilities = ["read"]
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
|
|
||||||
path "secret/data/cameras" {
|
|
||||||
capabilities = ["read"]
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
|
|
||||||
path "secret/data/immich-db" {
|
|
||||||
capabilities = ["read"]
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
path "secret/data/ollama" {
|
|
||||||
capabilities = ["read"]
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
path "secret/data/ovh-cert-manager" {
|
|
||||||
capabilities = ["read"]
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
path "secret/data/renovate" {
|
|
||||||
capabilities = ["read"]
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user