feat: add navidrome

This commit is contained in:
SeanOMik 2024-11-10 15:04:06 -05:00
parent 0967984e74
commit 22f699dfb0
Signed by: SeanOMik
GPG Key ID: FEC9E2FC15235964
4 changed files with 141 additions and 1 deletions

View File

@ -11,4 +11,5 @@ resources:
#- ./plex #- ./plex
- ./tautulli - ./tautulli
- ./ombi - ./ombi
- ./freshrss - ./freshrss
- ./navidrome/ks.yaml

View File

@ -0,0 +1,103 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2beta2.schema.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: navidrome
spec:
interval: 5m
chart:
spec:
chart: app-template
version: 3.4.0
sourceRef:
kind: HelmRepository
name: bjws-charts
namespace: flux-system
values:
controllers:
navidrome:
containers:
app:
image:
repository: deluan/navidrome
tag: 0.53.3
env:
ND_SCANSCHEDULE: 1h
ND_LOGLEVEL: info
probes:
liveness: &probes
enabled: true
custom: true
spec:
httpGet:
path: /
port: &port 4533
initialDelaySeconds: 0
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
readiness: *probes
startup:
enabled: true
spec:
failureThreshold: 30
periodSeconds: 10
# securityContext:
# allowPrivilegeEscalation: false
# readOnlyRootFilesystem: true
# capabilities: { drop: ["ALL"] }
defaultPodOptions:
securityContext:
# runAsNonRoot: true
runAsUser: 10000
runAsGroup: 10000
fsGroup: 10000
fsGroupChangePolicy: OnRootMismatch
service:
app:
controller: navidrome
ports:
http:
port: *port
ingress:
app:
annotations:
cert-manager.io/cluster-issuer: letsencrypt-production
traefik.ingress.kubernetes.io/router.entrypoints: websecure
#className: external
hosts:
- host: "navidrome.${SECRET_NEW_DOMAIN}"
paths:
- path: /
service:
identifier: app
port: http
persistence:
data:
existingClaim: navidrome
globalMounts:
- path: /data
cache:
type: persistentVolumeClaim
size: 15Gi
retain: true
storageClass: mainpool-hostpath
accessMode: ReadWriteOnce
globalMounts:
- path: /data/cache
media:
type: hostPath
hostPath: /mnt/MainPool/Media/Media/Music
globalMounts:
- path: /media
readOnly: true

View File

@ -0,0 +1,5 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../../../../common/templates/volsync
- ./helm-release.yaml

View File

@ -0,0 +1,31 @@
# 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 navidrome
namespace: flux-system
spec:
timeout: 5m
interval: 10m
targetNamespace: media
path: ./kubernetes/main/apps/media/navidrome/app
prune: true
sourceRef:
kind: GitRepository
name: home-cluster
decryption:
provider: sops
secretRef:
name: sops-gpg
dependsOn:
- name: openebs
- name: openebs-sc
postBuild:
substituteFrom:
- kind: ConfigMap
name: cluster-settings
- kind: Secret
name: cluster-secrets
substitute:
APP: *app
VOLSYNC_CAPACITY: 15Gi