diff --git a/charts/meelo/kustomization.yaml b/charts/meelo/kustomization.yaml new file mode 100644 index 0000000..c3c9a47 --- /dev/null +++ b/charts/meelo/kustomization.yaml @@ -0,0 +1,12 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +labels: +- includeSelectors: true + pairs: + app.kubernetes.io/name: meelo + +resources: +# - ./meelo +- ./ytdlp +- ./pv.yaml diff --git a/charts/meelo/pv.yaml b/charts/meelo/pv.yaml new file mode 100644 index 0000000..608369e --- /dev/null +++ b/charts/meelo/pv.yaml @@ -0,0 +1,29 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: meelo-music +spec: + accessModes: + - ReadWriteOnce + capacity: + storage: 200Ti + csi: + driver: zfs.csi.openebs.io + fsType: zfs + volumeAttributes: + openebs.io/poolname: ocean + volumeHandle: "music" + persistentVolumeReclaimPolicy: Retain +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: music +spec: + storageClassName: "" + volumeName: meelo-music + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 200Ti diff --git a/charts/meelo/ytdlp/deploy.yaml b/charts/meelo/ytdlp/deploy.yaml new file mode 100644 index 0000000..c890df8 --- /dev/null +++ b/charts/meelo/ytdlp/deploy.yaml @@ -0,0 +1,38 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: smartrss +spec: + template: + spec: + securityContext: + fsGroup: 1001 + runAsUser: 1001 + runAsGroup: 1001 + runAsNonRoot: true + fsGroupChangePolicy: OnRootMismatch + containers: + - name: smartrss + image: nixery.dev/shell/yt-dlp + command: [/app/ytdlp-sync.sh] + env: + - name: URL + valueFrom: + secretKeyRef: + name: yt-playlist + key: url + volumeMounts: + - name: scripts + mountPath: /app + readOnly: true + - name: musics + mountPath: /musics + volumes: + - name: scripts + configMap: + name: scripts + defaultMode: 0555 + - name: musics + persistentVolumeClaim: + claimName: musics + diff --git a/charts/meelo/ytdlp/kustomization.yaml b/charts/meelo/ytdlp/kustomization.yaml new file mode 100644 index 0000000..d513447 --- /dev/null +++ b/charts/meelo/ytdlp/kustomization.yaml @@ -0,0 +1,16 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +labels: +- includeSelectors: true + pairs: + app.kubernetes.io/component: ytdlp + +configMapGenerator: + - name: scripts + files: + - ./ytdlp-sync.sh + +resources: +- ./deploy.yaml +- ./secret.yaml diff --git a/charts/meelo/ytdlp/secret.yaml b/charts/meelo/ytdlp/secret.yaml new file mode 100644 index 0000000..62e9aa9 --- /dev/null +++ b/charts/meelo/ytdlp/secret.yaml @@ -0,0 +1,13 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: yt-playlist +spec: + refreshInterval: 24h + secretStoreRef: + name: bitwarden + kind: ClusterSecretStore + data: + - secretKey: url + remoteRef: + key: yt-playlist diff --git a/charts/meelo/ytdlp/ytdlp-sync.sh b/charts/meelo/ytdlp/ytdlp-sync.sh new file mode 100644 index 0000000..c2ff823 --- /dev/null +++ b/charts/meelo/ytdlp/ytdlp-sync.sh @@ -0,0 +1,9 @@ +#!/usr/bien/env bash + +# while true; do + 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" +# sleep 6h +# done diff --git a/charts/transmission/smartrss/deploy.yaml b/charts/transmission/smartrss/deploy.yaml index ab1fadf..06840d0 100644 --- a/charts/transmission/smartrss/deploy.yaml +++ b/charts/transmission/smartrss/deploy.yaml @@ -47,5 +47,4 @@ spec: defaultMode: 0555 - name: medias persistentVolumeClaim: - # TODO: use medias once i actually have some :c - claimName: downloads + claimName: medias