From 48d91e9ce77f66a8e163b5a67299aa9cbb4b0c5b Mon Sep 17 00:00:00 2001 From: Alex Lebens Date: Sat, 3 Jan 2026 22:59:21 -0600 Subject: [PATCH] replace rayflume-ytdl-sub with yubal-playlist --- clusters/cl01tl/helm/blocky/values.yaml | 2 +- clusters/cl01tl/helm/gatus/values.yaml | 4 +- clusters/cl01tl/helm/homepage/values.yaml | 8 +- clusters/cl01tl/helm/rayflume/Chart.lock | 12 -- clusters/cl01tl/helm/rayflume/Chart.yaml | 27 ----- .../rayflume/templates/external-secret.yaml | 42 ------- clusters/cl01tl/helm/rayflume/values.yaml | 104 ------------------ clusters/cl01tl/helm/ytdl-sub/values.yaml | 81 -------------- .../{ytdl-sub => yubal-playlist}/Chart.yaml | 16 +-- .../templates/persistent-volume-claim.yaml | 6 +- .../templates/persistent-volume.yaml | 4 +- .../cl01tl/helm/yubal-playlist/values.yaml | 70 ++++++++++++ hosts/ps08rp/blocky/config.yml | 3 +- hosts/ps09rp/blocky/config.yml | 24 +++- 14 files changed, 113 insertions(+), 290 deletions(-) delete mode 100644 clusters/cl01tl/helm/rayflume/Chart.lock delete mode 100644 clusters/cl01tl/helm/rayflume/Chart.yaml delete mode 100644 clusters/cl01tl/helm/rayflume/templates/external-secret.yaml delete mode 100644 clusters/cl01tl/helm/rayflume/values.yaml delete mode 100644 clusters/cl01tl/helm/ytdl-sub/values.yaml rename clusters/cl01tl/helm/{ytdl-sub => yubal-playlist}/Chart.yaml (57%) rename clusters/cl01tl/helm/{ytdl-sub => yubal-playlist}/templates/persistent-volume-claim.yaml (71%) rename clusters/cl01tl/helm/{ytdl-sub => yubal-playlist}/templates/persistent-volume.yaml (84%) create mode 100644 clusters/cl01tl/helm/yubal-playlist/values.yaml diff --git a/clusters/cl01tl/helm/blocky/values.yaml b/clusters/cl01tl/helm/blocky/values.yaml index faf4a23ed..8d0b3c82a 100644 --- a/clusters/cl01tl/helm/blocky/values.yaml +++ b/clusters/cl01tl/helm/blocky/values.yaml @@ -152,7 +152,6 @@ blocky: radarr-4k IN CNAME traefik-cl01tl radarr-anime IN CNAME traefik-cl01tl radarr-standup IN CNAME traefik-cl01tl - rayflume IN CNAME traefik-cl01tl searxng IN CNAME traefik-cl01tl seerr IN CNAME traefik-cl01tl slskd IN CNAME traefik-cl01tl @@ -166,6 +165,7 @@ blocky: vault IN CNAME traefik-cl01tl whodb IN CNAME traefik-cl01tl yamtrack IN CNAME traefik-cl01tl + yubal-playlist IN CNAME traefik-cl01tl blocking: denylists: diff --git a/clusters/cl01tl/helm/gatus/values.yaml b/clusters/cl01tl/helm/gatus/values.yaml index 018c42a8a..eb61ac0c3 100644 --- a/clusters/cl01tl/helm/gatus/values.yaml +++ b/clusters/cl01tl/helm/gatus/values.yaml @@ -313,8 +313,8 @@ gatus: - name: lidatube url: https://lidatube.alexlebens.net <<: *defaults - - name: rayflume - url: https://rayflume.alexlebens.net + - name: yubal-playlist + url: https://yubal-playlist.alexlebens.net <<: *defaults - name: slskd url: https://slskd.alexlebens.net diff --git a/clusters/cl01tl/helm/homepage/values.yaml b/clusters/cl01tl/helm/homepage/values.yaml index 4ed521b5e..1a6c5e539 100644 --- a/clusters/cl01tl/helm/homepage/values.yaml +++ b/clusters/cl01tl/helm/homepage/values.yaml @@ -655,11 +655,11 @@ homepage: url: http://lidarr.lidarr:80 key: {{ "{{HOMEPAGE_VAR_LIDARR_KEY}}" }} fields: ["wanted", "queued", "artists"] - - RayFlume: - icon: sh-youtubarr.webp + - Yubal Playlist: + icon: sh-yubal.webp description: Playlist to Lidarr Import - href: https://rayflume.alexlebens.net - siteMonitor: http://rayflume.rayflume:80 + href: https://yubal-playlist.alexlebens.net + siteMonitor: http://yubal-playlist.yubal-playlist:80 statusStyle: dot - LidaTube: icon: sh-lidatube.webp diff --git a/clusters/cl01tl/helm/rayflume/Chart.lock b/clusters/cl01tl/helm/rayflume/Chart.lock deleted file mode 100644 index 832aae784..000000000 --- a/clusters/cl01tl/helm/rayflume/Chart.lock +++ /dev/null @@ -1,12 +0,0 @@ -dependencies: -- name: app-template - repository: https://bjw-s-labs.github.io/helm-charts/ - version: 4.5.0 -- name: redis-replication - repository: oci://harbor.alexlebens.net/helm-charts - version: 0.5.0 -- name: volsync-target - repository: oci://harbor.alexlebens.net/helm-charts - version: 0.7.0 -digest: sha256:8ffb9b2d1e452cad49196824787d52f55fcc0309722fbb433a1eb2a99e9d19e1 -generated: "2025-12-27T13:32:17.225782-06:00" diff --git a/clusters/cl01tl/helm/rayflume/Chart.yaml b/clusters/cl01tl/helm/rayflume/Chart.yaml deleted file mode 100644 index 1844d993b..000000000 --- a/clusters/cl01tl/helm/rayflume/Chart.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: v2 -name: rayflume -version: 1.0.0 -description: RayFlume -keywords: - - rayflume - - music - - lidarr -home: https://wiki.alexlebens.dev/s/ -sources: - - https://gitea.alexlebens.dev/alexlebens/RayFlume - - https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template -maintainers: - - name: alexlebens -dependencies: - - name: app-template - alias: rayflume - repository: https://bjw-s-labs.github.io/helm-charts/ - version: 4.5.0 - - name: redis-replication - version: 0.5.0 - repository: oci://harbor.alexlebens.net/helm-charts - - name: volsync-target - alias: volsync-target-data - version: 0.7.0 - repository: oci://harbor.alexlebens.net/helm-charts -appVersion: 0.0.9 diff --git a/clusters/cl01tl/helm/rayflume/templates/external-secret.yaml b/clusters/cl01tl/helm/rayflume/templates/external-secret.yaml deleted file mode 100644 index dc01fdeb3..000000000 --- a/clusters/cl01tl/helm/rayflume/templates/external-secret.yaml +++ /dev/null @@ -1,42 +0,0 @@ -apiVersion: external-secrets.io/v1 -kind: ExternalSecret -metadata: - name: rayflume-config-secret - namespace: {{ .Release.Namespace }} - labels: - app.kubernetes.io/name: rayflume-config-secret - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/part-of: {{ .Release.Name }} -spec: - secretStoreRef: - kind: ClusterSecretStore - name: vault - data: - - secretKey: SECRET_KEY - remoteRef: - conversionStrategy: Default - decodingStrategy: None - key: /cl01tl/rayflume/config - metadataPolicy: None - property: SECRET_KEY - - secretKey: LIDARR_TOKEN - remoteRef: - conversionStrategy: Default - decodingStrategy: None - key: /cl01tl/rayflume/config - metadataPolicy: None - property: LIDARR_TOKEN - - secretKey: YOUTUBE_API_KEY - remoteRef: - conversionStrategy: Default - decodingStrategy: None - key: /cl01tl/rayflume/config - metadataPolicy: None - property: YOUTUBE_API_KEY - - secretKey: MB_USER_AGENT - remoteRef: - conversionStrategy: Default - decodingStrategy: None - key: /cl01tl/rayflume/config - metadataPolicy: None - property: MB_USER_AGENT diff --git a/clusters/cl01tl/helm/rayflume/values.yaml b/clusters/cl01tl/helm/rayflume/values.yaml deleted file mode 100644 index 28beb50d4..000000000 --- a/clusters/cl01tl/helm/rayflume/values.yaml +++ /dev/null @@ -1,104 +0,0 @@ -rayflume: - controllers: - main: - type: deployment - replicas: 1 - strategy: Recreate - revisionHistoryLimit: 3 - containers: - main: - image: - repository: harbor.alexlebens.net/images/rayflume - tag: 0.0.9 - pullPolicy: IfNotPresent - env: - - name: DEBUG - value: True - - name: ALLOWED_HOSTS - value: rayflume.alexlebens.net,rayflume.rayflume - - name: SECRET_KEY - valueFrom: - secretKeyRef: - name: rayflume-config-secret - key: SECRET_KEY - - name: LIDARR_TOKEN - valueFrom: - secretKeyRef: - name: rayflume-config-secret - key: LIDARR_TOKEN - - name: YOUTUBE_API_KEY - valueFrom: - secretKeyRef: - name: rayflume-config-secret - key: YOUTUBE_API_KEY - - name: MB_USER_AGENT - valueFrom: - secretKeyRef: - name: rayflume-config-secret - key: MB_USER_AGENT - - name: CELERY_BROKER_URL - value: redis://redis-replication-rayflume-master.rayflume:6379/0 - - name: CELERY_RESULT_BACKEND - value: redis://redis-replication-rayflume-master.rayflume:6379/0 - resources: - requests: - cpu: 10m - memory: 64Mi - service: - main: - controller: main - ports: - http: - port: 80 - targetPort: 80 - protocol: HTTP - route: - main: - kind: HTTPRoute - parentRefs: - - group: gateway.networking.k8s.io - kind: Gateway - name: traefik-gateway - namespace: traefik - hostnames: - - rayflume.alexlebens.net - rules: - - backendRefs: - - group: '' - kind: Service - name: rayflume - port: 80 - weight: 100 - matches: - - path: - type: PathPrefix - value: / - persistence: - data: - forceRename: rayflume-data - storageClass: ceph-block - accessMode: ReadWriteOnce - size: 1Gi - advancedMounts: - main: - main: - - path: /data - readOnly: false -redis-replication: - existingSecret: - enabled: false - redisReplication: - clusterSize: 1 - redisSentinel: - enabled: false - clusterSize: 3 -volsync-target-data: - pvcTarget: rayflume-data - local: - enabled: true - schedule: 16 11 * * * - remote: - enabled: false - external: - enabled: true - schedule: 16 12 * * * diff --git a/clusters/cl01tl/helm/ytdl-sub/values.yaml b/clusters/cl01tl/helm/ytdl-sub/values.yaml deleted file mode 100644 index 5387c3529..000000000 --- a/clusters/cl01tl/helm/ytdl-sub/values.yaml +++ /dev/null @@ -1,81 +0,0 @@ -ytdl-sub: - controllers: - main: - type: cronjob - cronjob: - suspend: false - concurrencyPolicy: Forbid - timeZone: US/Central - schedule: 12 0 * * * - startingDeadlineSeconds: 90 - successfulJobsHistory: 1 - failedJobsHistory: 1 - backoffLimit: 3 - parallelism: 1 - containers: - main: - image: - repository: ghcr.io/jmbannon/ytdl-sub - tag: 2025.12.30 - pullPolicy: IfNotPresent - command: - - ytdl-sub - - -c - - /config/config.yaml - - sub - env: - - name: TZ - value: America/Chicago - - name: CRON_RUN_ON_START - value: false - resources: - requests: - cpu: 10m - memory: 128Mi - configMaps: - config: - enabled: true - data: - config.yaml: | - configuration: - working_directory: /cache - subscriptions.yaml: | - __preset__: - embed_thumbnail: True - square_thumbnail: True - overrides: - music_directory: /music - YouTube Releases | Max MP3 Quality: - = YouTube: - "Music Saved": "https://www.youtube.com/playlist?list=PLtiOoYqxYXtKK3fMya_xhqK0Wit0i10Gy&si=8wNBH-kGT9Nx0XBK" - - persistence: - config: - enabled: true - type: configMap - name: ytdl-sub - advancedMounts: - main: - main: - - path: /config/config.yaml - readOnly: true - mountPropagation: None - subPath: config.yaml - - path: /config/subscriptions.yaml - readOnly: true - mountPropagation: None - subPath: subscriptions.yaml - cache: - type: emptyDir - advancedMounts: - main: - main: - - path: /cache - readOnly: false - music: - existingClaim: ytdl-sub-nfs-storage - advancedMounts: - main: - main: - - path: /music - readOnly: false diff --git a/clusters/cl01tl/helm/ytdl-sub/Chart.yaml b/clusters/cl01tl/helm/yubal-playlist/Chart.yaml similarity index 57% rename from clusters/cl01tl/helm/ytdl-sub/Chart.yaml rename to clusters/cl01tl/helm/yubal-playlist/Chart.yaml index e9752c6b9..6affd8adb 100644 --- a/clusters/cl01tl/helm/ytdl-sub/Chart.yaml +++ b/clusters/cl01tl/helm/yubal-playlist/Chart.yaml @@ -1,22 +1,22 @@ apiVersion: v2 -name: ytdl-sub +name: yubal-playlist version: 1.0.0 -description: ytdl-sub +description: yubal-playlist keywords: - - ytdl-sub + - yubal-playlist - music - youtube home: https://wiki.alexlebens.dev/s/ sources: - - https://github.com/jmbannon/ytdl-sub - - https://github.com/jmbannon/ytdl-sub/pkgs/container/ytdl-sub + - https://gitea.alexlebens.dev/alexlebens/yubal-playlist + - https://github.com/guillevc/yubal - https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template maintainers: - name: alexlebens dependencies: - name: app-template - alias: ytdl-sub + alias: yubal-playlist repository: https://bjw-s-labs.github.io/helm-charts/ version: 4.5.0 -# renovate: github=jmbannon/ytdl-sub -appVersion: 2025.12.26 +# renovate: github=alexlebens/yubal-playlist +appVersion: 0.0.1 diff --git a/clusters/cl01tl/helm/ytdl-sub/templates/persistent-volume-claim.yaml b/clusters/cl01tl/helm/yubal-playlist/templates/persistent-volume-claim.yaml similarity index 71% rename from clusters/cl01tl/helm/ytdl-sub/templates/persistent-volume-claim.yaml rename to clusters/cl01tl/helm/yubal-playlist/templates/persistent-volume-claim.yaml index c225aeda1..19b35cee5 100644 --- a/clusters/cl01tl/helm/ytdl-sub/templates/persistent-volume-claim.yaml +++ b/clusters/cl01tl/helm/yubal-playlist/templates/persistent-volume-claim.yaml @@ -1,14 +1,14 @@ apiVersion: v1 kind: PersistentVolumeClaim metadata: - name: ytdl-sub-nfs-storage + name: yubal-playlist-nfs-storage namespace: {{ .Release.Namespace }} labels: - app.kubernetes.io/name: ytdl-sub-nfs-storage + app.kubernetes.io/name: yubal-playlist-nfs-storage app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }} spec: - volumeName: ytdl-sub-nfs-storage + volumeName: yubal-playlist-nfs-storage storageClassName: nfs-client accessModes: - ReadWriteMany diff --git a/clusters/cl01tl/helm/ytdl-sub/templates/persistent-volume.yaml b/clusters/cl01tl/helm/yubal-playlist/templates/persistent-volume.yaml similarity index 84% rename from clusters/cl01tl/helm/ytdl-sub/templates/persistent-volume.yaml rename to clusters/cl01tl/helm/yubal-playlist/templates/persistent-volume.yaml index 8375628a2..c6b49f94e 100644 --- a/clusters/cl01tl/helm/ytdl-sub/templates/persistent-volume.yaml +++ b/clusters/cl01tl/helm/yubal-playlist/templates/persistent-volume.yaml @@ -1,10 +1,10 @@ apiVersion: v1 kind: PersistentVolume metadata: - name: ytdl-sub-nfs-storage + name: yubal-playlist-nfs-storage namespace: {{ .Release.Namespace }} labels: - app.kubernetes.io/name: ytdl-sub-nfs-storage + app.kubernetes.io/name: yubal-playlist-nfs-storage app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }} spec: diff --git a/clusters/cl01tl/helm/yubal-playlist/values.yaml b/clusters/cl01tl/helm/yubal-playlist/values.yaml new file mode 100644 index 000000000..09dacea15 --- /dev/null +++ b/clusters/cl01tl/helm/yubal-playlist/values.yaml @@ -0,0 +1,70 @@ +yubal-playlist: + controllers: + main: + type: deployment + replicas: 1 + strategy: Recreate + revisionHistoryLimit: 3 + containers: + main: + image: + repository: harbor.alexlebens.net/images/yubal-playlist + tag: 0.0.1 + pullPolicy: IfNotPresent + env: + - name: YUBAL_TZ + value: US/Chicago + - name: YUBAL_PORT + value: 8000 + - name: YUBAL_DEBUG + value: 8000 + - name: YUBAL_MB_USER_AGENT + value: alexanderlebens@gmail.com + resources: + requests: + cpu: 10m + memory: 128Mi + service: + main: + controller: main + ports: + http: + port: 80 + targetPort: 8000 + protocol: HTTP + route: + main: + kind: HTTPRoute + parentRefs: + - group: gateway.networking.k8s.io + kind: Gateway + name: traefik-gateway + namespace: traefik + hostnames: + - yubal-playlist.alexlebens.net + rules: + - backendRefs: + - group: '' + kind: Service + name: yubal-playlist + port: 80 + weight: 100 + matches: + - path: + type: PathPrefix + value: / + persistence: + cache: + type: emptyDir + advancedMounts: + main: + main: + - path: /app/ytdlp + readOnly: false + music: + existingClaim: ytdl-sub-nfs-storage + advancedMounts: + main: + main: + - path: /app/data + readOnly: false diff --git a/hosts/ps08rp/blocky/config.yml b/hosts/ps08rp/blocky/config.yml index 12813ddcf..4827d4384 100644 --- a/hosts/ps08rp/blocky/config.yml +++ b/hosts/ps08rp/blocky/config.yml @@ -75,7 +75,6 @@ customDNS: blocky IN A 10.232.1.22 cilium-cl01tl IN A 10.232.1.23 - ;; Application Names actual IN CNAME traefik-cl01tl alertmanager IN CNAME traefik-cl01tl @@ -128,7 +127,6 @@ customDNS: radarr-4k IN CNAME traefik-cl01tl radarr-anime IN CNAME traefik-cl01tl radarr-standup IN CNAME traefik-cl01tl - rayflume IN CNAME traefik-cl01tl searxng IN CNAME traefik-cl01tl seerr IN CNAME traefik-cl01tl slskd IN CNAME traefik-cl01tl @@ -142,6 +140,7 @@ customDNS: vault IN CNAME traefik-cl01tl whodb IN CNAME traefik-cl01tl yamtrack IN CNAME traefik-cl01tl + yubal-playlist IN CNAME traefik-cl01tl blocking: denylists: diff --git a/hosts/ps09rp/blocky/config.yml b/hosts/ps09rp/blocky/config.yml index 12813ddcf..f33806316 100644 --- a/hosts/ps09rp/blocky/config.yml +++ b/hosts/ps09rp/blocky/config.yml @@ -49,6 +49,27 @@ customDNS: it05sp IN A 10.230.0.100 ; Shelly Plug + ;; Computer Names + nw01un IN A 192.168.1.1 ; Unifi Gateway + + ps08rp IN A 10.232.1.51 ; DNS + ps09rp IN A 10.232.1.52 ; DNS + ps02sn IN A 10.232.1.61 ; Synology Web + ps02sn-bond IN A 10.232.1.64 ; Synology Bond for Storage + + pd05wd IN A 10.230.0.115 ; Desktop + pl02mc IN A 10.230.0.105 ; Laptop + + dv01hr IN A 10.232.1.72 ; HD Homerun + dv02kv IN A 10.232.1.71 ; Pi KVM + + it01ag IN A 10.232.1.83 ; Airgradient + it02ph IN A 10.232.1.85 ; Phillips Hue + it03tb IN A 10.232.1.81 ; TubesZB ZigBee + it04tb IN A 10.232.1.82 ; TubesZB Z-Wave + it05sp IN A 10.230.0.100 ; Shelly Plug + + ;; Common Names synology IN CNAME ps02sn synologybond IN CNAME ps02sn-bond @@ -75,7 +96,6 @@ customDNS: blocky IN A 10.232.1.22 cilium-cl01tl IN A 10.232.1.23 - ;; Application Names actual IN CNAME traefik-cl01tl alertmanager IN CNAME traefik-cl01tl @@ -128,7 +148,6 @@ customDNS: radarr-4k IN CNAME traefik-cl01tl radarr-anime IN CNAME traefik-cl01tl radarr-standup IN CNAME traefik-cl01tl - rayflume IN CNAME traefik-cl01tl searxng IN CNAME traefik-cl01tl seerr IN CNAME traefik-cl01tl slskd IN CNAME traefik-cl01tl @@ -142,6 +161,7 @@ customDNS: vault IN CNAME traefik-cl01tl whodb IN CNAME traefik-cl01tl yamtrack IN CNAME traefik-cl01tl + yubal-playlist IN CNAME traefik-cl01tl blocking: denylists: