diff --git a/clusters/cl01tl/manifests/grafana-operator/Cluster-grafana-operator-postgresql-18-cluster.yaml b/clusters/cl01tl/manifests/grafana-operator/Cluster-grafana-operator-postgresql-18-cluster.yaml index 6a414cf75..10f63da8b 100644 --- a/clusters/cl01tl/manifests/grafana-operator/Cluster-grafana-operator-postgresql-18-cluster.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/Cluster-grafana-operator-postgresql-18-cluster.yaml @@ -54,13 +54,13 @@ spec: bootstrap: recovery: database: app - source: grafana-operator-postgresql-18-backup-1 + source: grafana-operator-postgresql-18-backup-2 externalClusters: - - name: grafana-operator-postgresql-18-backup-1 + - name: grafana-operator-postgresql-18-backup-2 plugin: name: barman-cloud.cloudnative-pg.io enabled: true isWALArchiver: false parameters: barmanObjectName: "grafana-operator-postgresql-18-recovery" - serverName: grafana-operator-postgresql-18-backup-1 + serverName: grafana-operator-postgresql-18-backup-2 diff --git a/clusters/cl01tl/manifests/grafana-operator/ScheduledBackup-grafana-operator-postgresql-18-scheduled-backup-live-backup.yaml b/clusters/cl01tl/manifests/grafana-operator/ScheduledBackup-grafana-operator-postgresql-18-scheduled-backup-live-backup.yaml index 77ed9be12..8910ce105 100644 --- a/clusters/cl01tl/manifests/grafana-operator/ScheduledBackup-grafana-operator-postgresql-18-scheduled-backup-live-backup.yaml +++ b/clusters/cl01tl/manifests/grafana-operator/ScheduledBackup-grafana-operator-postgresql-18-scheduled-backup-live-backup.yaml @@ -13,7 +13,7 @@ metadata: app.kubernetes.io/name: "grafana-operator-postgresql-18-scheduled-backup-live-backup" spec: immediate: true - suspend: true + suspend: false schedule: "0 0 0 * * *" backupOwnerReference: self cluster: diff --git a/clusters/cl01tl/manifests/libation/CronJob-libation-main.yaml b/clusters/cl01tl/manifests/libation/CronJob-libation-main.yaml index 37230298d..cd307a142 100644 --- a/clusters/cl01tl/manifests/libation/CronJob-libation-main.yaml +++ b/clusters/cl01tl/manifests/libation/CronJob-libation-main.yaml @@ -50,9 +50,14 @@ spec: cpu: 10m memory: 128Mi volumeMounts: + - mountPath: /data + name: audiobooks - mountPath: /config name: config volumes: + - name: audiobooks + persistentVolumeClaim: + claimName: libation-nfs-storage - name: config persistentVolumeClaim: claimName: libation diff --git a/clusters/cl01tl/manifests/libation/Deployment-libation-debug.yaml b/clusters/cl01tl/manifests/libation/Deployment-libation-debug.yaml index 8ca8210e1..bc95a2084 100644 --- a/clusters/cl01tl/manifests/libation/Deployment-libation-debug.yaml +++ b/clusters/cl01tl/manifests/libation/Deployment-libation-debug.yaml @@ -45,9 +45,14 @@ spec: cpu: 10m memory: 32Mi volumeMounts: + - mountPath: /data + name: audiobooks - mountPath: /config name: config volumes: + - name: audiobooks + persistentVolumeClaim: + claimName: libation-nfs-storage - name: config persistentVolumeClaim: claimName: libation diff --git a/clusters/cl01tl/manifests/ytdl-sub/ConfigMap-ytdl-sub.yaml b/clusters/cl01tl/manifests/ytdl-sub/ConfigMap-ytdl-sub.yaml new file mode 100644 index 000000000..d6e462a1e --- /dev/null +++ b/clusters/cl01tl/manifests/ytdl-sub/ConfigMap-ytdl-sub.yaml @@ -0,0 +1,40 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: ytdl-sub + labels: + app.kubernetes.io/instance: ytdl-sub + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: ytdl-sub + helm.sh/chart: ytdl-sub-4.5.0 + namespace: ytdl-sub +data: + config.yaml: | + configuration: + working_directory: /cache + + presets: + Music: + preset: + - "Max MP3 Quality" + + embed_thumbnail: True + + square_thumbnail: True + + throttle_protection: + sleep_per_download_s: + min: 5 + max: 15 + sleep_per_subscription_s: + min: 5 + max: 15 + max_downloads_per_subscription: + min: 1 + max: 200 + + overrides: + music_directory: "/music" + subscriptions.yaml: | + Music: + - "https://www.youtube.com/playlist?list=PLtiOoYqxYXtKK3fMya_xhqK0Wit0i10Gy&si=8wNBH-kGT9Nx0XBK" # Music Saved diff --git a/clusters/cl01tl/manifests/ytdl-sub/CronJob-ytdl-sub.yaml b/clusters/cl01tl/manifests/ytdl-sub/CronJob-ytdl-sub.yaml new file mode 100644 index 000000000..0f1d3a524 --- /dev/null +++ b/clusters/cl01tl/manifests/ytdl-sub/CronJob-ytdl-sub.yaml @@ -0,0 +1,83 @@ +apiVersion: batch/v1 +kind: CronJob +metadata: + name: ytdl-sub + labels: + app.kubernetes.io/controller: main + app.kubernetes.io/instance: ytdl-sub + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: ytdl-sub + helm.sh/chart: ytdl-sub-4.5.0 + namespace: ytdl-sub +spec: + suspend: false + concurrencyPolicy: Forbid + startingDeadlineSeconds: 90 + timeZone: US/Central + schedule: "0 0 1 1 *" + successfulJobsHistoryLimit: 1 + failedJobsHistoryLimit: 1 + jobTemplate: + spec: + parallelism: 1 + backoffLimit: 3 + template: + metadata: + annotations: + checksum/configMaps: fe569dcb0775262f67f6e0444f99ab79b8bc7334a7bba3bbdc0fe41c984a70b5 + labels: + app.kubernetes.io/controller: main + app.kubernetes.io/instance: ytdl-sub + app.kubernetes.io/name: ytdl-sub + spec: + enableServiceLinks: false + serviceAccountName: default + automountServiceAccountToken: true + hostIPC: false + hostNetwork: false + hostPID: false + dnsPolicy: ClusterFirst + restartPolicy: Never + containers: + - args: + - --dry-run + - --config /config/config.yaml + - sub /config/subscriptions.yaml + command: + - ytdl-sub + env: + - name: TZ + value: America/Chicago + - name: CRON_RUN_ON_START + value: "false" + image: ghcr.io/jmbannon/ytdl-sub:2025.12.26 + imagePullPolicy: IfNotPresent + name: main + resources: + requests: + cpu: 10m + memory: 128Mi + volumeMounts: + - mountPath: /cache + name: cache + - mountPath: /config/config.yaml + mountPropagation: None + name: config + readOnly: true + subPath: config.yaml + - mountPath: /config/subscriptions.yaml + mountPropagation: None + name: config + readOnly: true + subPath: subscriptions.yaml + - mountPath: /music + name: music + volumes: + - emptyDir: {} + name: cache + - configMap: + name: ytdl-sub + name: config + - name: music + persistentVolumeClaim: + claimName: ytdl-sub-nfs-storage diff --git a/clusters/cl01tl/manifests/ytdl-sub/PersistentVolume-ytdl-sub-nfs-storage.yaml b/clusters/cl01tl/manifests/ytdl-sub/PersistentVolume-ytdl-sub-nfs-storage.yaml new file mode 100644 index 000000000..3ee9f45a5 --- /dev/null +++ b/clusters/cl01tl/manifests/ytdl-sub/PersistentVolume-ytdl-sub-nfs-storage.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: ytdl-sub-nfs-storage + namespace: ytdl-sub + labels: + app.kubernetes.io/name: ytdl-sub-nfs-storage + app.kubernetes.io/instance: ytdl-sub + app.kubernetes.io/part-of: ytdl-sub +spec: + persistentVolumeReclaimPolicy: Retain + storageClassName: nfs-client + capacity: + storage: 1Gi + accessModes: + - ReadWriteMany + nfs: + path: /volume2/Storage/Music Youtube/ + server: synologybond.alexlebens.net + mountOptions: + - vers=4 + - minorversion=1 + - noac diff --git a/clusters/cl01tl/manifests/ytdl-sub/PersistentVolumeClaim-ytdl-sub-nfs-storage.yaml b/clusters/cl01tl/manifests/ytdl-sub/PersistentVolumeClaim-ytdl-sub-nfs-storage.yaml new file mode 100644 index 000000000..37bb630be --- /dev/null +++ b/clusters/cl01tl/manifests/ytdl-sub/PersistentVolumeClaim-ytdl-sub-nfs-storage.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: ytdl-sub-nfs-storage + namespace: ytdl-sub + labels: + app.kubernetes.io/name: ytdl-sub-nfs-storage + app.kubernetes.io/instance: ytdl-sub + app.kubernetes.io/part-of: ytdl-sub +spec: + volumeName: ytdl-sub-nfs-storage + storageClassName: nfs-client + accessModes: + - ReadWriteMany + resources: + requests: + storage: 1Gi