From e9621885d3ff97da3194b8834dcce7a50f636d06 Mon Sep 17 00:00:00 2001 From: Alex Lebens Date: Thu, 25 Dec 2025 21:04:27 -0600 Subject: [PATCH] add rayflume --- 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 | 92 +++++++++++++++++++ 4 files changed, 173 insertions(+) create mode 100644 clusters/cl01tl/helm/rayflume/Chart.lock create mode 100644 clusters/cl01tl/helm/rayflume/Chart.yaml create mode 100644 clusters/cl01tl/helm/rayflume/templates/external-secret.yaml create mode 100644 clusters/cl01tl/helm/rayflume/values.yaml diff --git a/clusters/cl01tl/helm/rayflume/Chart.lock b/clusters/cl01tl/helm/rayflume/Chart.lock new file mode 100644 index 000000000..6499adbb1 --- /dev/null +++ b/clusters/cl01tl/helm/rayflume/Chart.lock @@ -0,0 +1,12 @@ +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.6.0 +digest: sha256:b6407c3cb6cb6b71d289f73e943111899c8e7711c3141c86774d103014543af2 +generated: "2025-12-25T21:03:03.423717-06:00" diff --git a/clusters/cl01tl/helm/rayflume/Chart.yaml b/clusters/cl01tl/helm/rayflume/Chart.yaml new file mode 100644 index 000000000..174253bc9 --- /dev/null +++ b/clusters/cl01tl/helm/rayflume/Chart.yaml @@ -0,0 +1,27 @@ +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.6.0 + repository: oci://harbor.alexlebens.net/helm-charts +appVersion: 0.0.1 diff --git a/clusters/cl01tl/helm/rayflume/templates/external-secret.yaml b/clusters/cl01tl/helm/rayflume/templates/external-secret.yaml new file mode 100644 index 000000000..dc01fdeb3 --- /dev/null +++ b/clusters/cl01tl/helm/rayflume/templates/external-secret.yaml @@ -0,0 +1,42 @@ +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 new file mode 100644 index 000000000..5077300af --- /dev/null +++ b/clusters/cl01tl/helm/rayflume/values.yaml @@ -0,0 +1,92 @@ +rayflume: + controllers: + main: + type: deployment + replicas: 1 + strategy: Recreate + revisionHistoryLimit: 3 + containers: + main: + image: + repository: harbor.alexlebens.net/images/rayflume + tag: 0.0.1 + pullPolicy: IfNotPresent + env: + - name: DEBUG + value: False + - name: SECRET_KEY + valueFrom: + secretKeyRef: + name: rayflume-config-secret + key: SECRET_KEY + - name: ALLOWED_HOSTS + value: rayflume.alexlebens.net + - 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: YOUTUBE_QUOTA_SAFE_PAGE_SIZE + value: 50 + - name: MB_USER_AGENT + valueFrom: + secretKeyRef: + name: rayflume-config-secret + key: MB_USER_AGENT + - name: CELERY_BROKER_URL + value: redis://redis-replication-rayflume-master:6379/0 + - name: CELERY_RESULT_BACKEND + value: redis://redis-replication-rayflume-master:6379/0 + - name: REFRESH_MINUTES + value: 60 + 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 +volsync-target-data: + pvcTarget: rayflume-data