music-assistant added
This commit is contained in:
6
music-assistant/kustomization.yaml
Normal file
6
music-assistant/kustomization.yaml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- main.yaml
|
||||||
93
music-assistant/main.yaml
Normal file
93
music-assistant/main.yaml
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: music-assistant
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: music-assistant
|
||||||
|
app.kubernetes.io/version: 2.7.11
|
||||||
|
helm.sh/chart: music-assistant-0.3.5
|
||||||
|
name: music-assistant-data
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 2Gi
|
||||||
|
storageClassName: openebs-3-replicas
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: music-assistant
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: music-assistant
|
||||||
|
app.kubernetes.io/version: 2.7.11
|
||||||
|
helm.sh/chart: music-assistant-0.3.5
|
||||||
|
name: music-assistant
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/instance: music-assistant
|
||||||
|
app.kubernetes.io/name: music-assistant
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: music-assistant
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: music-assistant
|
||||||
|
app.kubernetes.io/version: 2.7.11
|
||||||
|
helm.sh/chart: music-assistant-0.3.5
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: ghcr.io/music-assistant/server:2.8.0
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
livenessProbe:
|
||||||
|
failureThreshold: 3
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: web
|
||||||
|
initialDelaySeconds: 60
|
||||||
|
periodSeconds: 30
|
||||||
|
timeoutSeconds: 10
|
||||||
|
name: music-assistant
|
||||||
|
ports:
|
||||||
|
- containerPort: 8095
|
||||||
|
name: web
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: 8097
|
||||||
|
name: stream
|
||||||
|
protocol: TCP
|
||||||
|
readinessProbe:
|
||||||
|
failureThreshold: 3
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: web
|
||||||
|
initialDelaySeconds: 30
|
||||||
|
periodSeconds: 10
|
||||||
|
timeoutSeconds: 5
|
||||||
|
securityContext:
|
||||||
|
runAsGroup: 0
|
||||||
|
runAsNonRoot: false
|
||||||
|
runAsUser: 0
|
||||||
|
startupProbe:
|
||||||
|
failureThreshold: 30
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: web
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 10
|
||||||
|
timeoutSeconds: 5
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: data
|
||||||
|
dnsPolicy: ClusterFirst
|
||||||
|
hostNetwork: true
|
||||||
|
volumes:
|
||||||
|
- name: data
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: music-assistant-data
|
||||||
12
music-assistant/src/kustomization.yaml
Normal file
12
music-assistant/src/kustomization.yaml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
helmCharts:
|
||||||
|
- name: music-assistant
|
||||||
|
repo: https://bdclark.github.io/helm-charts
|
||||||
|
version: 0.3.5
|
||||||
|
releaseName: music-assistant
|
||||||
|
includeCRDs: true
|
||||||
|
namespace: music-assistant
|
||||||
|
valuesFile: values.yaml
|
||||||
242
music-assistant/src/values.yaml
Normal file
242
music-assistant/src/values.yaml
Normal file
@@ -0,0 +1,242 @@
|
|||||||
|
# Default values for music-assistant.
|
||||||
|
# This is a YAML-formatted file.
|
||||||
|
# Declare variables to be passed into your templates.
|
||||||
|
|
||||||
|
# Container image configuration
|
||||||
|
image:
|
||||||
|
# -- Image repository
|
||||||
|
repository: ghcr.io/music-assistant/server
|
||||||
|
# -- Image tag (defaults to appVersion)
|
||||||
|
tag: "2.8.0"
|
||||||
|
# -- Image pull policy
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
|
# -- Secrets for pulling images from private repositories
|
||||||
|
imagePullSecrets: []
|
||||||
|
|
||||||
|
# -- Override the chart name
|
||||||
|
nameOverride: ""
|
||||||
|
# -- Override the full release name
|
||||||
|
fullnameOverride: ""
|
||||||
|
|
||||||
|
# -- Annotations for the Deployment.
|
||||||
|
deploymentAnnotations: {}
|
||||||
|
|
||||||
|
# -- Additional labels for the Deployment.
|
||||||
|
extraDeploymentLabels: {}
|
||||||
|
|
||||||
|
# -- Extra labels applied to the pod
|
||||||
|
podLabels: {}
|
||||||
|
|
||||||
|
# -- Pod annotations applied to the Music Assistant pod
|
||||||
|
podAnnotations: {}
|
||||||
|
# Example Multi-CNI configuration:
|
||||||
|
# k8s.v1.cni.cncf.io/networks: "mac-vlan-vlan100"
|
||||||
|
# Example monitoring annotation:
|
||||||
|
# prometheus.io/scrape: "false" # MA doesn't expose metrics yet
|
||||||
|
|
||||||
|
# -- Labels to add to all resources.
|
||||||
|
commonLabels: {}
|
||||||
|
# app.kubernetes.io/part-of: media-stack
|
||||||
|
# app.kubernetes.io/component: music
|
||||||
|
|
||||||
|
# -- Pod security context
|
||||||
|
podSecurityContext: {}
|
||||||
|
# fsGroup: 568
|
||||||
|
|
||||||
|
# -- Resource requests/limits for the pod
|
||||||
|
resources: {}
|
||||||
|
# limits:
|
||||||
|
# cpu: 1000m
|
||||||
|
# memory: 1Gi
|
||||||
|
# requests:
|
||||||
|
# cpu: 100m
|
||||||
|
# memory: 256Mi
|
||||||
|
|
||||||
|
# Container security context
|
||||||
|
securityContext:
|
||||||
|
# -- Whether to run the container as non-root
|
||||||
|
runAsNonRoot: false # Default false for current MA images
|
||||||
|
# -- User ID to run the container as
|
||||||
|
runAsUser: 0 # Default 0, configurable for custom images
|
||||||
|
# -- Group ID to run the container as
|
||||||
|
runAsGroup: 0 # Default 0, configurable for custom images
|
||||||
|
# Capabilities for advanced use cases (SMB/network shares, local media access)
|
||||||
|
# Default: no additional capabilities for better security
|
||||||
|
capabilities:
|
||||||
|
enabled: false
|
||||||
|
add: []
|
||||||
|
# Example capabilities for advanced features:
|
||||||
|
# add:
|
||||||
|
# - DAC_READ_SEARCH # Required for SMB/network share access
|
||||||
|
# - SYS_ADMIN # Required for mounting network shares
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
|
||||||
|
# -- Run the pod in the node network namespace
|
||||||
|
hostNetwork: true
|
||||||
|
# -- DNS policy when using host networking
|
||||||
|
dnsPolicy: ClusterFirst
|
||||||
|
|
||||||
|
# Expose ports via hostPort instead of hostNetwork
|
||||||
|
hostPort:
|
||||||
|
# -- Enable hostPort configuration
|
||||||
|
enabled: false
|
||||||
|
# -- Host port for the web interface
|
||||||
|
webPort: 8095
|
||||||
|
# -- Host port for audio streaming
|
||||||
|
streamPort: 8097
|
||||||
|
|
||||||
|
# Service configuration (use when hostNetwork=false)
|
||||||
|
service:
|
||||||
|
# -- Create Service resources
|
||||||
|
enabled: false
|
||||||
|
# -- Service type (ClusterIP/LoadBalancer/NodePort)
|
||||||
|
type: ClusterIP
|
||||||
|
# -- Additional service annotations
|
||||||
|
annotations: {}
|
||||||
|
# MetalLB examples:
|
||||||
|
# metallb.universe.tf/address-pool: "production-public-ips"
|
||||||
|
# Cloud provider examples:
|
||||||
|
# service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
|
||||||
|
|
||||||
|
# Port configuration
|
||||||
|
# -- Port for the web interface
|
||||||
|
webPort: 8095 # Music Assistant web interface
|
||||||
|
# -- Port for audio streaming
|
||||||
|
streamPort: 8097 # Audio streaming port
|
||||||
|
|
||||||
|
# LoadBalancer configuration
|
||||||
|
# -- Static IP for LoadBalancer services
|
||||||
|
loadBalancerIP: ""
|
||||||
|
# -- Allowed source ranges for LoadBalancer
|
||||||
|
loadBalancerSourceRanges: []
|
||||||
|
# External traffic policy for LoadBalancer and NodePort
|
||||||
|
# -- Preserve client IP (Local) or use Cluster routing
|
||||||
|
externalTrafficPolicy: Cluster
|
||||||
|
# Session affinity for service
|
||||||
|
# -- Service session affinity mode
|
||||||
|
sessionAffinity: None
|
||||||
|
|
||||||
|
# Ingress configuration (web interface only)
|
||||||
|
ingress:
|
||||||
|
# -- Enable ingress
|
||||||
|
enabled: false
|
||||||
|
# -- Ingress class name
|
||||||
|
className: ""
|
||||||
|
# -- Additional ingress annotations
|
||||||
|
annotations: {}
|
||||||
|
# kubernetes.io/ingress.class: nginx
|
||||||
|
# kubernetes.io/tls-acme: "true"
|
||||||
|
# nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
||||||
|
# -- Ingress rules configuration
|
||||||
|
hosts:
|
||||||
|
- host: music-assistant.local
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
# -- TLS configuration for ingress
|
||||||
|
tls: []
|
||||||
|
# - secretName: music-assistant-tls
|
||||||
|
# hosts:
|
||||||
|
# - music-assistant.local
|
||||||
|
|
||||||
|
# Persistent storage for configuration/database
|
||||||
|
persistence:
|
||||||
|
# -- Enable persistent volume for Music Assistant data
|
||||||
|
enabled: true
|
||||||
|
# -- Storage class for PVC
|
||||||
|
# Set to "-" to disable dynamic provisioning and use default storage class
|
||||||
|
# Set to "" to use cluster default storage class
|
||||||
|
storageClass: openebs-3-replicas
|
||||||
|
# -- Access modes for the PVC
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
# -- Requested PVC size
|
||||||
|
size: 2Gi
|
||||||
|
# -- Use an existing PVC instead of creating a new one
|
||||||
|
# If defined, PVC must be created manually before volume will be bound
|
||||||
|
existingClaim: ""
|
||||||
|
# -- Annotations for PVC
|
||||||
|
annotations: {}
|
||||||
|
# k8up.io/backup: "true"
|
||||||
|
|
||||||
|
# -- Deployment update strategy (default: Recreate when persistence.enabled)
|
||||||
|
strategy: {}
|
||||||
|
# type: RollingUpdate
|
||||||
|
# rollingUpdate:
|
||||||
|
# maxSurge: 0
|
||||||
|
# maxUnavailable: 1
|
||||||
|
|
||||||
|
# -- Extra volumes to mount (e.g., media libraries)
|
||||||
|
additionalVolumes: []
|
||||||
|
# - name: media-nfs
|
||||||
|
# nfs:
|
||||||
|
# server: nas.example.com
|
||||||
|
# path: /volume1/media
|
||||||
|
# - name: media-local
|
||||||
|
# hostPath:
|
||||||
|
# path: /mnt/media
|
||||||
|
# type: Directory
|
||||||
|
|
||||||
|
# -- Additional volume mounts matching `additionalVolumes`
|
||||||
|
additionalMounts: []
|
||||||
|
# - name: media-nfs
|
||||||
|
# mountPath: /media/nfs
|
||||||
|
# readOnly: true
|
||||||
|
# - name: media-local
|
||||||
|
# mountPath: /media/local
|
||||||
|
# readOnly: true
|
||||||
|
|
||||||
|
# -- Extra environment variables for the container
|
||||||
|
env: []
|
||||||
|
# - name: MA_LOG_LEVEL
|
||||||
|
# value: "INFO"
|
||||||
|
# - name: TZ
|
||||||
|
# value: "America/New_York"
|
||||||
|
|
||||||
|
# -- Environment sources (ConfigMap/Secret refs)
|
||||||
|
envFrom: []
|
||||||
|
# - configMapRef:
|
||||||
|
# name: music-assistant-config
|
||||||
|
# - secretRef:
|
||||||
|
# name: music-assistant-secrets
|
||||||
|
|
||||||
|
# -- Liveness probe configuration
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: web
|
||||||
|
initialDelaySeconds: 60
|
||||||
|
periodSeconds: 30
|
||||||
|
timeoutSeconds: 10
|
||||||
|
failureThreshold: 3
|
||||||
|
|
||||||
|
# -- Readiness probe configuration
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: web
|
||||||
|
initialDelaySeconds: 30
|
||||||
|
periodSeconds: 10
|
||||||
|
timeoutSeconds: 5
|
||||||
|
failureThreshold: 3
|
||||||
|
|
||||||
|
# -- Startup probe configuration
|
||||||
|
startupProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: web
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 10
|
||||||
|
timeoutSeconds: 5
|
||||||
|
failureThreshold: 30
|
||||||
|
|
||||||
|
# -- Node selector for scheduling
|
||||||
|
nodeSelector: {}
|
||||||
|
|
||||||
|
# -- Pod tolerations
|
||||||
|
tolerations: []
|
||||||
|
|
||||||
|
# -- Pod affinity/anti-affinity rules
|
||||||
|
affinity: {}
|
||||||
Reference in New Issue
Block a user