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