Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: deploy beets #8664

Merged
merged 16 commits into from
Jan 15, 2025
26 changes: 26 additions & 0 deletions kubernetes/apps/default/beets/app/externalsecret.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/external-secrets.io/externalsecret_v1beta1.json
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: beets
spec:
refreshInterval: 5m
secretStoreRef:
kind: ClusterSecretStore
name: onepassword-connect
target:
name: beets-secret
template:
data:
config.toml: |
[frontend]
username = "{{ .BETANIN_USERNAME }}"
password = "{{ .BETANIN_PASSWORD }}"
[clients]
api_key = "{{ .BETANIN_API_KEY }}"
[server]
num_parallel_jobs = 1
dataFrom:
- extract:
key: beets
115 changes: 115 additions & 0 deletions kubernetes/apps/default/beets/app/helmrelease.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2.schema.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: beets
spec:
interval: 30m
chart:
spec:
chart: app-template
version: 3.6.1
sourceRef:
kind: HelmRepository
name: bjw-s
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
dependsOn:
- name: rook-ceph-cluster
namespace: rook-ceph
values:
controllers:
beets:
annotations:
reloader.stakater.com/auto: "true"
containers:
app:
image:
repository: ghcr.io/jee-r/beets
tag: latest@sha256:1c7c2e0eff470bd5e5014af7d1ef362e927c989bb2bf0be5c98da1bba0bd929b
env:
BETANIN_HOST: 0.0.0.0
BETANIN_PORT: &port 80
MODE: betanin
TZ: America/New_York
probes:
liveness:
enabled: true
readiness:
enabled: true
startup:
enabled: true
spec:
failureThreshold: 30
periodSeconds: 10
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities: { drop: ["ALL"] }
resources:
requests:
cpu: 10m
limits:
memory: 1Gi
defaultPodOptions:
securityContext:
runAsNonRoot: true
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch
seccompProfile: { type: RuntimeDefault }
service:
app:
controller: beets
ports:
http:
port: *port
ingress:
app:
className: internal
hosts:
- host: "{{ .Release.Name }}.devbu.io"
paths:
- path: /
service:
identifier: app
port: http
persistence:
config:
existingClaim: beets
tmp:
type: emptyDir
media:
type: nfs
server: expanse.internal
path: /mnt/eros/Media
advancedMounts:
beets:
app:
- path: /downloads
subPath: Downloads/soulseek/complete
- path: /tunes
subPath: Library/Tunes
config-file:
type: configMap
name: beets-configmap
globalMounts:
- path: /config/.config/beets/config.yaml
subPath: config.yaml
readOnly: true
secret-file:
type: secret
name: beets-secret
globalMounts:
- path: /config/.config/betanin/config.toml
subPath: config.toml
readOnly: true
17 changes: 17 additions & 0 deletions kubernetes/apps/default/beets/app/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../templates/gatus/guarded
- ../../../../templates/volsync
configMapGenerator:
- name: beets-configmap
files:
- config.yaml=./resources/config.yaml
generatorOptions:
disableNameSuffixHash: true
annotations:
kustomize.toolkit.fluxcd.io/substitute: disabled
14 changes: 14 additions & 0 deletions kubernetes/apps/default/beets/app/resources/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
directory: /tunes
paths:
default: $albumartist/[$year] $album%aunique{}/$track $title
singleton: Non-Album/$artist/$title
comp: Compilations/$album%aunique{}/$track $title
plugins: fetchart embedart
import:
move: true
fetchart:
auto: yes
embedart:
auto: yes
ifempty: yes
27 changes: 27 additions & 0 deletions kubernetes/apps/default/beets/ks.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app beets
namespace: flux-system
spec:
targetNamespace: default
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn:
- name: external-secrets-stores
- name: volsync
path: ./kubernetes/apps/default/beets/app
prune: true
sourceRef:
kind: GitRepository
name: flux-system
wait: false
interval: 30m
timeout: 5m
postBuild:
substitute:
APP: *app
VOLSYNC_CAPACITY: 1Gi
1 change: 1 addition & 0 deletions kubernetes/apps/default/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ resources:
- ./atuin/ks.yaml
- ./autobrr/ks.yaml
- ./bazarr/ks.yaml
- ./beets/ks.yaml
- ./cross-seed/ks.yaml
- ./echo-server/ks.yaml
- ./emqx/ks.yaml
Expand Down
Loading