Skip to content

Instantly share code, notes, and snippets.

@daemonp
Created February 15, 2020 10:25
Show Gist options
  • Save daemonp/337374d6db6d01023ee4ead3723c8b61 to your computer and use it in GitHub Desktop.
Save daemonp/337374d6db6d01023ee4ead3723c8b61 to your computer and use it in GitHub Desktop.
# Roon manifest for k8s
---
apiVersion: v1
kind: Service
metadata:
labels:
app: roon
name: roon
namespace: home
annotations:
external-dns.alpha.kubernetes.io/hostname: roon.home.io
metallb.universe.tf/address-pool: default
spec:
ports:
- name: roon
port: 9100
targetPort: 9100
selector:
app: roon
type: LoadBalancer
loadBalancerIP: 192.168.0.5
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
service: roon
name: roon
namespace: home
spec:
strategy:
type: Recreate
replicas: 1
selector:
matchLabels:
app: roon
template:
metadata:
labels:
app: roon
spec:
hostNetwork: true
hostname: roon
containers:
- image: steefdebruijn/docker-roonserver:latest
securityContext:
privileged: true
name: roon
env:
- name: TZ
value: "Europe/London"
ports:
- containerPort: 9100
protocol: TCP
- containerPort: 9101
protocol: TCP
- containerPort: 9102
protocol: TCP
- containerPort: 9103
protocol: TCP
- containerPort: 9104
protocol: TCP
- containerPort: 9105
protocol: TCP
- containerPort: 9106
protocol: TCP
- containerPort: 9107
protocol: TCP
- containerPort: 9108
protocol: TCP
- containerPort: 9109
protocol: TCP
- containerPort: 9110
protocol: TCP
- containerPort: 9003
protocol: UDP
resources:
requests:
memory: 500Mi
limits:
memory: 2000Mi
volumeMounts:
- mountPath: /app
name: roon-app
- mountPath: /music
name: roon-music
- mountPath: /data
name: roon-data
- mountPath: /backup
name: roon-backup
volumes:
- name: roon-app
persistentVolumeClaim:
claimName: roon-app
- name: roon-music
persistentVolumeClaim:
claimName: roon-music
- name: roon-data
persistentVolumeClaim:
claimName: roon-data
- name: roon-backup
persistentVolumeClaim:
claimName: roon-backup
# Data Volume
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: roon-data
namespace: home
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: nfs.home.io
path: "/data/music/roon-data"
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: roon-data
namespace: home
annotations:
volume.beta.kubernetes.io/storage-class: ""
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
# Library volume
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: roon-music
namespace: home
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: nfs.home.io
path: "/data/music/library"
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: roon-music
namespace: home
annotations:
volume.beta.kubernetes.io/storage-class: ""
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
# App volume
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: roon-app
namespace: home
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: nfs.home.io
path: "/data/music/roon-app"
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: roon-app
namespace: home
annotations:
volume.beta.kubernetes.io/storage-class: ""
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
# Backup volumes
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: roon-backup
namespace: home
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: nfs.home.io
path: "/data/music/roon-backup"
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: roon-backup
namespace: home
annotations:
volume.beta.kubernetes.io/storage-class: ""
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment