apiVersion: v1 kind: PersistentVolumeClaim metadata: name: sonarr-config labels: app: sonarr {{- include "media.labels" . | nindent 4 }} spec: accessModes: [ReadWriteOnce] storageClassName: {{ .Values.storageClass }} resources: requests: storage: {{ .Values.sonarr.configSize }} --- 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: 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 persistentVolumeClaim: claimName: sonarr-config - name: data hostPath: path: {{ .Values.dogstore }}/sonarr/data type: DirectoryOrCreate --- apiVersion: v1 kind: Service metadata: name: sonarr labels: app: sonarr spec: selector: app: sonarr ports: - port: 8989 targetPort: 8989 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: sonarr annotations: traefik.ingress.kubernetes.io/router.entrypoints: websecure traefik.ingress.kubernetes.io/router.tls.certresolver: {{ .Values.certResolver }} spec: rules: - host: sonarr.{{ .Values.domain }} http: paths: - path: / pathType: Prefix backend: service: name: sonarr port: number: 8989