Use cronjobs instead of while loops

This commit is contained in:
2025-09-22 12:16:35 +02:00
parent 30d027e764
commit 829ab56775
7 changed files with 114 additions and 112 deletions

View File

@@ -1,40 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: gitea-sync
spec:
template:
spec:
containers:
- name: sync
image: nixery.dev/shell/curl/jq
command:
- bash
- -c
- |-
while true; do
/app/mirror.sh -m user -u zoriya
sleep 24h
done
env:
- name: GITEA_URL
value: http://gitea-http.gitea.svc:3000
- name: ACCESS_TOKEN
valueFrom:
secretKeyRef:
name: gitea-sync
key: gitea-token
- name: GITHUB_TOKEN
valueFrom:
secretKeyRef:
name: gitea-sync
key: github-token
volumeMounts:
- name: scripts
mountPath: /app
volumes:
- name: scripts
configMap:
name: scripts
defaultMode: 0555

View File

@@ -0,0 +1,41 @@
apiVersion: batch/v1
kind: CronJob
metadata:
name: gitea-sync
spec:
schedule: "@daily"
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: sync
image: nixery.dev/shell/curl/jq
command:
- /app/mirror.sh
- -m
- user
- -u
- zoriya
env:
- name: GITEA_URL
value: http://gitea-http.gitea.svc:3000
- name: ACCESS_TOKEN
valueFrom:
secretKeyRef:
name: gitea-sync
key: gitea-token
- name: GITHUB_TOKEN
valueFrom:
secretKeyRef:
name: gitea-sync
key: github-token
volumeMounts:
- name: scripts
mountPath: /app
volumes:
- name: scripts
configMap:
name: scripts
defaultMode: 0555

View File

@@ -12,5 +12,5 @@ configMapGenerator:
- ./mirror.sh
resources:
- deploy.yaml
- job.yaml
- secret.yaml

View File

@@ -1,56 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: yt-dlp
spec:
template:
spec:
securityContext:
fsGroup: 1001
runAsUser: 1001
runAsGroup: 1001
runAsNonRoot: true
fsGroupChangePolicy: OnRootMismatch
containers:
- name: ytdlp
image: nixery.dev/shell/yt-dlp
workingDir: /work
command: [/app/ytdlp-sync.sh]
env:
- name: OUT
value: /musics
- name: LIVES_OUT
value: /musics/lives
- name: URL
valueFrom:
secretKeyRef:
name: ytdlp
key: url
- name: LIVES_URL
valueFrom:
secretKeyRef:
name: ytdlp
key: livesUrl
volumeMounts:
- name: scripts
mountPath: /app
readOnly: true
- name: cookies
mountPath: /app/secrets
- name: work
mountPath: /work
- name: musics
mountPath: /musics
volumes:
- name: scripts
configMap:
name: sync-scripts
defaultMode: 0555
- name: musics
persistentVolumeClaim:
claimName: musics
- name: work
emptyDir: {}
- name: cookies
secret:
secretName: ytdlp

View File

@@ -0,0 +1,60 @@
apiVersion: batch/v1
kind: CronJob
metadata:
name: yt-dlp
spec:
schedule: "@daily"
jobTemplate:
spec:
template:
spec:
securityContext:
fsGroup: 1001
runAsUser: 1001
runAsGroup: 1001
runAsNonRoot: true
fsGroupChangePolicy: OnRootMismatch
restartPolicy: OnFailure
containers:
- name: ytdlp
image: nixery.dev/shell/yt-dlp
workingDir: /work
command: [/app/ytdlp-sync.sh]
env:
- name: OUT
value: /musics
- name: LIVES_OUT
value: /musics/lives
- name: URL
valueFrom:
secretKeyRef:
name: ytdlp
key: url
- name: LIVES_URL
valueFrom:
secretKeyRef:
name: ytdlp
key: livesUrl
volumeMounts:
- name: scripts
mountPath: /app
readOnly: true
- name: cookies
mountPath: /app/secrets
- name: work
mountPath: /work
- name: musics
mountPath: /musics
volumes:
- name: scripts
configMap:
name: sync-scripts
defaultMode: 0555
- name: musics
persistentVolumeClaim:
claimName: musics
- name: work
emptyDir: {}
- name: cookies
secret:
secretName: ytdlp

View File

@@ -12,5 +12,5 @@ configMapGenerator:
- ./ytdlp-sync.sh
resources:
- ./deploy.yaml
- ./job.yaml
- ./secret.yaml

View File

@@ -1,17 +1,14 @@
#!/usr/bin/env bash
while true; do
yt-dlp "$LIVES_URL" -o "$LIVES_OUT/%(title)s.%(ext)s" \
--embed-thumbnail --embed-metadata --embed-chapters \
--download-archive "$LIVES_OUT/ytdlp-archive.txt" \
--cookies /app/secrets/cookies.txt \
--cache-dir "$(pwd)"
yt-dlp "$LIVES_URL" -o "$LIVES_OUT/%(title)s.%(ext)s" \
--embed-thumbnail --embed-metadata --embed-chapters \
--download-archive "$LIVES_OUT/ytdlp-archive.txt" \
--cookies /app/secrets/cookies.txt \
--cache-dir "$(pwd)"
yt-dlp "$URL" -o "$OUT/%(artist)s - %(title)s.%(ext)s" \
--extract-audio \
--embed-thumbnail --embed-metadata --embed-chapters \
--download-archive "$OUT/ytdlp-archive.txt" \
--cookies /app/secrets/cookies.txt \
--cache-dir "$(pwd)"
sleep 6h
done
yt-dlp "$URL" -o "$OUT/%(artist)s - %(title)s.%(ext)s" \
--extract-audio \
--embed-thumbnail --embed-metadata --embed-chapters \
--download-archive "$OUT/ytdlp-archive.txt" \
--cookies /app/secrets/cookies.txt \
--cache-dir "$(pwd)"