26 Commits

Author SHA1 Message Date
0ecb1855d3 Update Helm release immich to v0.9.3 2025-05-01 14:01:15 +00:00
f5ec343738 update immich, revert minecraft update 2025-05-01 14:01:13 +02:00
df58f85de3 Merge pull request 'Update Helm release authelia to v0.10.6' (#422) from renovate/authelia-0.x into main
Reviewed-on: #422
2025-05-01 12:00:15 +00:00
a464fa6f7b Merge pull request 'Update ghcr.io/advplyr/audiobookshelf Docker tag to v2.21.0' (#430) from renovate/ghcr.io-advplyr-audiobookshelf-2.x into main
Reviewed-on: #430
2025-05-01 12:00:04 +00:00
71d1f4d111 Merge pull request 'Update Helm release redis to v20.13.4' (#431) from renovate/redis-20.x into main
Reviewed-on: #431
2025-05-01 11:44:10 +00:00
f1d3c8df11 Merge pull request 'Update Helm release grafana to v8.14.0' (#426) from renovate/grafana-8.x into main
Reviewed-on: #426
2025-05-01 11:43:55 +00:00
8059d30b45 Merge pull request 'Update Helm release traefik to v35.2.0' (#427) from renovate/traefik-35.x into main
Reviewed-on: #427
2025-05-01 11:43:37 +00:00
70d07e2e18 Merge pull request 'Update renovate/renovate Docker tag to v40' (#432) from renovate/renovate-renovate-40.x into main
Reviewed-on: #432
2025-05-01 11:42:59 +00:00
59aad770da Update renovate/renovate Docker tag to v40 2025-04-30 10:05:23 +00:00
bb70970e38 Update Helm release redis to v20.13.4 2025-04-30 08:01:52 +00:00
48bbfd28de Update Helm release grafana to v8.14.0 2025-04-30 00:05:05 +00:00
b61171c21c Update Helm release traefik to v35.2.0 2025-04-29 18:05:20 +00:00
ad310ae8d3 update minecraft server version 2025-04-27 21:41:33 +02:00
01f6d3a5d2 Update ghcr.io/advplyr/audiobookshelf Docker tag to v2.21.0 2025-04-27 18:02:25 +00:00
0c87d7c7ab Merge pull request 'Update Helm release prometheus-node-exporter to v4.45.3' (#428) from renovate/prometheus-node-exporter-4.x into main
Reviewed-on: #428
2025-04-27 11:35:46 +00:00
52772ce8d1 fix invalid value 2025-04-26 19:39:32 +02:00
e2765325fc Merge pull request 'Update Helm release redis to v20.13.2' (#425) from renovate/redis-20.x into main
Reviewed-on: #425
2025-04-26 17:27:10 +00:00
9074dab74e Merge pull request 'Manage stump' (#429) from feature/stump into main
Reviewed-on: #429
2025-04-26 17:26:41 +00:00
4cc23e7acb manage stump through argo 2025-04-26 19:25:41 +02:00
e39863275f allow uploads 2025-04-26 19:24:16 +02:00
4ebc0b1069 improve minecraft performance by using a non nfs volume for live data 2025-04-26 14:07:34 +02:00
0688846033 Update Helm release prometheus-node-exporter to v4.45.3 2025-04-25 18:02:09 +00:00
75a7f6b9b7 update immich 2025-04-24 22:51:52 +02:00
1ead67d10b add stump 2025-04-24 22:51:21 +02:00
451a992d8d Update Helm release redis to v20.13.2 2025-04-24 12:02:48 +00:00
37f3da0f9d Update Helm release authelia to v0.10.6 2025-04-22 18:02:06 +00:00
22 changed files with 251 additions and 12 deletions

View File

@@ -12,4 +12,4 @@ namespace: audiobookshelf
images:
- name: audiobookshelf
newName: ghcr.io/advplyr/audiobookshelf
newTag: "2.20.0"
newTag: "2.21.0"

View File

@@ -17,5 +17,5 @@ helmCharts:
- releaseName: grafana
name: grafana
repo: https://grafana.github.io/helm-charts
version: 8.12.1
version: 8.14.0
valuesFile: grafana.values.yaml

View File

@@ -15,16 +15,16 @@ namespace: immich
helmCharts:
- name: immich
releaseName: immich
version: 0.9.2
version: 0.9.3
valuesFile: values.yaml
repo: https://immich-app.github.io/immich-charts
images:
- name: ghcr.io/immich-app/immich-machine-learning
newTag: v1.130.3
newTag: v1.132.3
- name: ghcr.io/immich-app/immich-server
newTag: v1.130.3
newTag: v1.132.3
patches:

View File

@@ -1,3 +1,11 @@
## Setup
Because minecraft is quite sensitive to io performance, we want the data to be stored on a local disk. But hostpath is not well supported in talos (and is not persistent), so we use an ephemeral volume instead. In order to do this, we create an emptyDir volume and mount it to the pod.
We use an initContaier that copies the data to the local storage. Afterwards, copying from the local storage back to the persistent storage is handled by a preStop lifecycle event.
This way, we can have the best of both worlds: fast local storage and persistent storage.
## Sending a command
```
kubectl exec -it -n minecraft deploy/minecraft-server -- /bin/bash

View File

@@ -9,6 +9,16 @@ spec:
app: minecraft-server
spec:
restartPolicy: OnFailure
initContainers:
- name: copy-data-to-local
image: alpine
command: ["/bin/sh"]
args: ["-c", "cp -r /data/* /local-data/"]
volumeMounts:
- name: local-data
mountPath: /local-data
- name: minecraft-data
mountPath: /data
containers:
- name: minecraft-server
image: minecraft
@@ -49,12 +59,34 @@ spec:
value: "false"
- name: ENABLE_AUTOSTOP
value: "true"
- name: AUTOSTOP_TIMEOUT_EST
value: "1800" # stop 30 min after last disconnect
volumeMounts:
- name: minecraft-data
- name: local-data
mountPath: /data
- name: copy-data-to-persistent
image: rsync
command: ["/bin/sh"]
# args: ["-c", "sleep infinity"]
args: ["/run-rsync.sh"]
volumeMounts:
- name: local-data
mountPath: /local-data
- name: minecraft-data
mountPath: /persistent-data
- name: rsync-config
mountPath: /run-rsync.sh
subPath: run-rsync.sh
volumes:
- name: minecraft-data
persistentVolumeClaim:
claimName: minecraft-data
- name: local-data
emptyDir: {}
- name: rsync-config
configMap:
name: rsync-config
defaultMode: 0777

View File

@@ -8,6 +8,7 @@ resources:
- pvc.yaml
- job.yaml
- service.yaml
- rsync.configmap.yaml
- curseforge.sealedsecret.yaml
@@ -15,3 +16,9 @@ images:
- name: minecraft
newName: itzg/minecraft-server
newTag: java21
- name: alpine
newName: alpine
newTag: "3.21"
- name: rsync
newName: eeacms/rsync
newTag: "2.6"

View File

@@ -0,0 +1,42 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: rsync-config
data:
run-rsync.sh: |-
#!/bin/sh
set -eu
echo "Starting rsync..."
no_change_count=0
while [ "$no_change_count" -lt 3 ]; do
# use the i flag to get per line output of each change
rsync_output=$(rsync -avzi --delete /local-data/ /persistent-data/)
# echo "$rsync_output"
# in this format rsync outputs at least 4 lines:
# ---
# sending incremental file list
#
# sent 145,483 bytes received 717 bytes 26,581.82 bytes/sec
# total size is 708,682,765 speedup is 4,847.35
# ---
# even though a non-zero number of bytes is sent, no changes were made
line_count=$(echo "$rsync_output" | wc -l)
if [ "$line_count" -eq 4 ]; then
echo "Rsync output was: $rsync_output"
no_change_count=$((no_change_count + 1))
echo "No changes detected. Incrementing no_change_count to $no_change_count."
else
no_change_count=0
echo "Changes detected. Resetting no_change_count to 0."
fi
echo "Rsync completed. Sleeping for 10 minutes..."
sleep 600
done
echo "No changes detected for 3 consecutive runs. Exiting."

View File

@@ -21,7 +21,7 @@ helmCharts:
- name: redis
releaseName: redis
repo: https://charts.bitnami.com/bitnami
version: 20.13.0
version: 20.13.4
valuesInline:
auth:
enabled: false

View File

@@ -0,0 +1,48 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: stump
spec:
replicas: 1
selector:
matchLabels:
app: stump
template:
metadata:
labels:
app: stump
spec:
containers:
- name: stump
image: stump
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
ports:
- containerPort: 10801
envFrom:
- configMapRef:
name: stump-config
volumeMounts:
- name: stump-data
mountPath: /data
- name: stump-config
mountPath: /config
volumes:
- name: stump-config
persistentVolumeClaim:
claimName: stump-config
- name: stump-data
persistentVolumeClaim:
claimName: stump-data

17
apps/stump/ingress.yaml Normal file
View File

@@ -0,0 +1,17 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: stump-ingressroute
spec:
entryPoints:
- websecure
routes:
- match: Host(`stump.kluster.moll.re`)
kind: Rule
services:
- name: stump-web
port: 10801
tls:
certResolver: default-tls

View File

@@ -0,0 +1,17 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- namespace.yaml
- pvc.yaml
- stump-config.configmap.yaml
- deployment.yaml
- service.yaml
- ingress.yaml
namespace: stump
images:
- name: stump
newName: aaronleopold/stump
newTag: "0.0.10"

View File

@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: placeholder

23
apps/stump/pvc.yaml Normal file
View File

@@ -0,0 +1,23 @@
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: stump-data
spec:
storageClassName: "nfs-client"
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: stump-config
spec:
storageClassName: "nfs-client"
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi

10
apps/stump/service.yaml Normal file
View File

@@ -0,0 +1,10 @@
apiVersion: v1
kind: Service
metadata:
name: stump-web
spec:
selector:
app: stump
ports:
- port: 10801
targetPort: 10801

View File

@@ -0,0 +1,8 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: stump-config
data:
STUMP_ENABLE_UPLOAD: "true"
STUMP_CONFIG_DIR: /config
ENABLE_KOREADER_SYNC: "true"

View File

@@ -27,6 +27,6 @@ images:
helmCharts:
- name: authelia
releaseName: authelia
version: 0.10.4
version: 0.10.6
repo: https://charts.authelia.com
valuesFile: authelia.values.yaml

View File

@@ -29,5 +29,5 @@ helmCharts:
- name: prometheus-node-exporter
releaseName: prometheus-node-exporter
repo: https://prometheus-community.github.io/helm-charts
version: 4.45.2
version: 4.45.3
valuesFile: prometheus-node-exporter.values.yaml

View File

@@ -11,4 +11,4 @@ resources:
images:
- name: renovate/renovate
newName: renovate/renovate
newTag: "39"
newTag: "40"

View File

@@ -13,6 +13,6 @@ namespace: traefik-system
helmCharts:
- name: traefik
releaseName: traefik
version: 35.0.1
version: 35.2.0
valuesFile: values.yaml
repo: https://traefik.github.io/charts

View File

@@ -41,5 +41,6 @@ resources:
- paperless/
- recipes/
- rss/
- stump/
- todos/
- whoami/

View File

@@ -0,0 +1,18 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: stump-application
spec:
project: apps
destination:
server: https://kubernetes.default.svc
namespace: stump
syncPolicy:
automated:
prune: true
selfHeal: true
sources:
- repoURL: ssh://git@git.kluster.moll.re:2222/remoll/k3s-infra.git
targetRevision: main
path: apps/stump

View File

@@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- application.yaml