--- apiVersion: apps/v1 kind: Deployment metadata: name: audiobookshelf namespace: plex spec: strategy: type: Recreate selector: matchLabels: app: audiobookshelf replicas: 1 template: metadata: labels: app: audiobookshelf annotations: backup.velero.io/backup-volumes-excludes: media spec: containers: - name: audiobookshelf image: ghcr.io/advplyr/audiobookshelf:latest imagePullPolicy: Always ports: - containerPort: 80 name: http-web-svc volumeMounts: - mountPath: /config name: data subPath: config - mountPath: /metadata name: data subPath: metadata - mountPath: /audiobooks name: media subPath: Audiobooks - mountPath: /podcasts name: media subPath: Podcasts env: - name: TZ value: America/New_York livenessProbe: #httpGet: # path: /web/index.html # port: 13378 #failureThreshold: 5 #initialDelaySeconds: 10 #periodSeconds: 30 #timeoutSeconds: 10 resources: #limits: # ephemeral-storage: "10Gi" volumes: - name: data persistentVolumeClaim: claimName: audiobookshelf-pvc - name: media persistentVolumeClaim: claimName: plex-pvc readOnly: true --- apiVersion: v1 kind: Service metadata: name: audiobookshelf-service namespace: plex spec: selector: app: audiobookshelf type: ClusterIP ports: - name: audiobookshelf-web-port protocol: TCP port: 80 targetPort: http-web-svc --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: audiobookshelf namespace: plex annotations: traefik.ingress.kubernetes.io/router.entrypoints: websecure spec: rules: - host: audiobookshelf.jibby.org http: paths: - path: / pathType: Prefix backend: service: name: audiobookshelf-service port: number: 80