apiVersion: apps/v1 kind: Deployment metadata: name: qbittorrent labels: app: qbittorrent {{- include "media.labels" . | nindent 4 }} spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: qbittorrent template: metadata: labels: app: qbittorrent spec: {{- include "media.requireMacWorker" . | nindent 6 }} containers: - name: qbittorrent image: {{ .Values.qbittorrent.image }} ports: - containerPort: {{ .Values.qbittorrent.webuiPort }} protocol: TCP - containerPort: 34034 protocol: TCP - containerPort: 34034 protocol: UDP env: {{- include "media.commonEnv" . | nindent 12 }} - name: WEBUI_PORTS value: "{{ .Values.qbittorrent.webuiPort }}/tcp" volumeMounts: - name: config mountPath: /config - name: data mountPath: /data volumes: - name: config hostPath: path: {{ .Values.serviceData }}/qbittorrent/config type: DirectoryOrCreate - name: data hostPath: path: /dogstore/sonarr/data type: DirectoryOrCreate --- apiVersion: v1 kind: Service metadata: name: qbittorrent labels: app: qbittorrent spec: selector: app: qbittorrent ports: - name: webui port: {{ .Values.qbittorrent.webuiPort }} targetPort: {{ .Values.qbittorrent.webuiPort }} - name: bt-tcp port: 34034 targetPort: 34034 protocol: TCP - name: bt-udp port: 34034 targetPort: 34034 protocol: UDP --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: qbittorrent-internal annotations: kubernetes.io/ingress.class: traefik-internal spec: entryPoints: - web routes: - match: Host(`qbittorrent.{{ .Values.internalDomain }}`) kind: Rule services: - name: qbittorrent port: {{ .Values.qbittorrent.webuiPort }} --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: qbittorrent-internal-tls annotations: kubernetes.io/ingress.class: traefik-internal spec: entryPoints: - websecure routes: - match: Host(`qbittorrent.{{ .Values.internalDomain }}`) kind: Rule services: - name: qbittorrent port: {{ .Values.qbittorrent.webuiPort }} tls: {}