apiVersion: apps/v1 kind: Deployment metadata: name: transmission namespace: media spec: replicas: 1 selector: matchLabels: app: transmission strategy: type: Recreate template: metadata: labels: app: transmission spec: containers: - image: haugene/transmission-openvpn:dev name: transmission imagePullPolicy: Always envFrom: - configMapRef: name: transmission-config optional: false - secretRef: name: transmission-secret livenessProbe: failureThreshold: 3 initialDelaySeconds: 10 periodSeconds: 2 successThreshold: 1 tcpSocket: port: 9091 timeoutSeconds: 2 readinessProbe: failureThreshold: 3 initialDelaySeconds: 10 periodSeconds: 2 successThreshold: 2 tcpSocket: port: 9091 timeoutSeconds: 2 securityContext: allowPrivilegeEscalation: true capabilities: add: - NET_ADMIN privileged: true volumeMounts: - mountPath: /data/downloads name: data subPath: downloads - mountPath: /config name: config initContainers: - name: init-media-filesystem image: busybox command: - mkdir - -p - -v - /data/downloads/movies - /data/downloads/tv - /data/downloads/books - /data/downloads/audiobooks - /data/media/movies - /data/media/tv - /data/media/books - /data/media/audiobooks volumeMounts: - mountPath: /data name: data restartPolicy: Always terminationGracePeriodSeconds: 30 volumes: - name: data persistentVolumeClaim: claimName: media-data - name: config persistentVolumeClaim: claimName: transmission-config