apiVersion: v1 kind: PersistentVolumeClaim metadata: name: music-assistant labels: &labels app.kubernetes.io/name: music-assistant app.kubernetes.io/component: music-assistant spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi --- apiVersion: v1 kind: Service metadata: name: music-assistant labels: &labels app.kubernetes.io/name: music-assistant app.kubernetes.io/component: music-assistant spec: ports: - port: 8095 name: http selector: *labels --- apiVersion: apps/v1 kind: StatefulSet metadata: name: music-assistant labels: &labels app.kubernetes.io/name: music-assistant app.kubernetes.io/component: music-assistant spec: serviceName: music-assistant selector: matchLabels: *labels template: metadata: labels: *labels spec: containers: - name: music-assistant image: ghcr.io/music-assistant/server imagePullPolicy: IfNotPresent ports: - containerPort: 8095 name: http readinessProbe: &probe httpGet: port: http path: / failureThreshold: 3 periodSeconds: 60 successThreshold: 1 timeoutSeconds: 1 startupProbe: <<: *probe failureThreshold: 90 periodSeconds: 1 volumeMounts: - mountPath: /data name: music-assistant-data subPath: data dnsPolicy: ClusterFirstWithHostNet hostNetwork: true securityContext: runAsNonRoot: true runAsUser: 8095 runAsGroup: 8095 fsGroup: 8095 volumes: - name: music-assistant-data persistentVolumeClaim: claimName: music-assistant