apiVersion: apps/v1
kind: Deployment
metadata:
namespace: media
name: tdarr
spec:
selector:
matchLabels:
app: tdarr
revisionHistoryLimit: 10
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
template:
metadata:
labels:
app: tdarr
spec:
volumes:
- name: tdarr-server
hostPath:
path: /mnt/tdarr/server
type: Directory
- name: tdarr-config
hostPath:
path: /mnt/tdarr/config
type: Directory
- name: nfs
hostPath:
path: /nfs
type: Directory
- name: cache
hostPath:
path: /mnt/tdarr/cache
type: Directory
containers:
- name: tdarr
image: ghcr.io/haveagitgat/tdarr
volumeMounts:
- name: cache
mountPath: /temp
- name: nfs
mountPath: /nfs
- name: tdarr-config
mountPath: /app/configs
- name: tdarr-server
mountPath: /app/server
ports:
- containerPort: 8266
- containerPort: 8265
env:
- name: PGID
value: "1000"
- name: PUID
value: "1000"
- name: nodeName
value: "server-node"
- name: internalNode
value: "true"
- name: webUIPort
value: "8265"
- name: serverPort
value: "8266"
- name: serverIP
value: "0.0.0.0"
resources:
limits:
cpu: "10"
memory: "6Gi"
requests:
cpu: "2"
memory: "2Gi"
securityContext:
privileged: true
capabilities:
drop: ["ALL"]
---
apiVersion: v1
kind: Service
metadata:
namespace: media
name: tdarr
spec:
type: ClusterIP
selector:
app: tdarr
ports:
- port: 8265
targetPort: 8265
---
apiVersion: v1
kind: Service
metadata:
namespace: media
name: tdarr-server
spec:
type: ClusterIP
selector:
app: tdarr
ports:
- port: 8266
targetPort: 8266
Once this is working then I setup something like below for a node. Notice here that disk
is NFS share and media
is the namespace.
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: media
name: tdarr-node
spec:
selector:
matchLabels:
app: tdarr-node
revisionHistoryLimit: 10
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
template:
metadata:
labels:
app: tdarr-node
spec:
nodeSelector:
kubernetes.io/arch: amd64
kubernetes.io/hostname: hpbook
volumes:
- name: tdarr-config
hostPath:
path: /mnt/tdarr/config
type: Directory
- name: tdarr-config
hostPath:
path: /mnt/tdarr/cache
type: Directory
- name: nfs
nfs:
server: nfs.lan
path: /nfs
containers:
- name: tdarr
image: ghcr.io/haveagitgat/tdarr_node
volumeMounts:
- name: tdarr-config
mountPath: /app/configs
- name: nfs
mountPath: /nfs
- name: cache
mountPath: /temp
ports:
- containerPort: 8266
env:
- name: PGID
value: "1000"
- name: PUID
value: "1000"
- name: nodeName
value: "NODE_NAME"
- name: serverPort
value: "8266"
- name: serverIP
value: "tdarr-server.media"
securityContext:
privileged: true
capabilities:
drop: ["ALL"]