mirror of
https://github.com/outbackdingo/homelab-v.git
synced 2026-08-25 14:53:19 +00:00
feat(app): add audiobookshelf application
Signed-off-by: Vegard Hagen <[email protected]>
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: audiobookshelf
|
||||
namespace: audiobookshelf
|
||||
labels:
|
||||
app: audiobookshelf
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: audiobookshelf
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
namespace: audiobookshelf
|
||||
labels:
|
||||
app: audiobookshelf
|
||||
spec:
|
||||
nodeSelector:
|
||||
topology.kubernetes.io/zone: euclid
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
runAsUser: 2501
|
||||
runAsGroup: 2501
|
||||
fsGroup: 2501
|
||||
fsGroupChangePolicy: OnRootMismatch
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
containers:
|
||||
- name: audiobookshelf
|
||||
image: ghcr.io/advplyr/audiobookshelf:2.21.0 # renovate: docker=ghcr.io/advplyr/audiobookshelf
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
readOnlyRootFilesystem: true
|
||||
capabilities:
|
||||
drop: [ "ALL" ]
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 80
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: common-env
|
||||
optional: true
|
||||
volumeMounts:
|
||||
- name: audiobookshelf
|
||||
mountPath: /config
|
||||
subPath: config
|
||||
- name: audiobookshelf
|
||||
mountPath: /metadata
|
||||
subPath: metadata
|
||||
- name: audiobooks
|
||||
mountPath: /audiobooks
|
||||
- name: podcasts
|
||||
mountPath: /podcasts
|
||||
- name: tmp
|
||||
mountPath: /tmp
|
||||
resources:
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 384Mi
|
||||
limits:
|
||||
cpu: 1000m
|
||||
memory: 512Mi
|
||||
volumes:
|
||||
- name: audiobookshelf
|
||||
persistentVolumeClaim:
|
||||
claimName: audiobookshelf
|
||||
- name: audiobooks
|
||||
nfs:
|
||||
server: 192.168.1.117
|
||||
path: /mnt/pool-0/data/media/audiobooks
|
||||
- name: podcasts
|
||||
nfs:
|
||||
server: 192.168.1.117
|
||||
path: /mnt/pool-0/data/media/podcasts
|
||||
- name: tmp
|
||||
emptyDir: { }
|
||||
@@ -0,0 +1,20 @@
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: audiobookshelf
|
||||
namespace: audiobookshelf
|
||||
spec:
|
||||
parentRefs:
|
||||
- name: internal
|
||||
namespace: gateway
|
||||
hostnames:
|
||||
- "audiobookshelf.stonegarden.dev"
|
||||
- "abs.stonegarden.dev"
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: /
|
||||
backendRefs:
|
||||
- name: audiobookshelf
|
||||
port: 80
|
||||
@@ -0,0 +1,15 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
configMapGenerator:
|
||||
- name: common-env
|
||||
namespace: audiobookshelf
|
||||
literals:
|
||||
- TZ=Europe/Oslo
|
||||
|
||||
resources:
|
||||
- ns.yaml
|
||||
- pvc.yaml
|
||||
- svc.yaml
|
||||
- http-route.yaml
|
||||
- deployment.yaml
|
||||
@@ -0,0 +1,4 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: audiobookshelf
|
||||
@@ -0,0 +1,13 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: audiobookshelf
|
||||
namespace: audiobookshelf
|
||||
spec:
|
||||
storageClassName: proxmox-csi
|
||||
volumeName: pv-audiobookshelf
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 4G
|
||||
@@ -0,0 +1,13 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: audiobookshelf
|
||||
namespace: audiobookshelf
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: audiobookshelf
|
||||
ports:
|
||||
- name: web
|
||||
port: 80
|
||||
targetPort: http
|
||||
@@ -11,6 +11,8 @@ spec:
|
||||
server: '*'
|
||||
- namespace: 'arr'
|
||||
server: '*'
|
||||
- namespace: 'audiobookshelf'
|
||||
server: '*'
|
||||
- namespace: 'plex'
|
||||
server: '*'
|
||||
- namespace: 'jellyfin'
|
||||
|
||||
@@ -19,6 +19,10 @@ kubernetes_volumes = {
|
||||
node = "euclid"
|
||||
size = "1G"
|
||||
}
|
||||
pv-audiobookshelf = {
|
||||
node = "euclid"
|
||||
size = "4G"
|
||||
}
|
||||
pv-remark42 = {
|
||||
node = "euclid"
|
||||
size = "1G"
|
||||
|
||||
Reference in New Issue
Block a user