Chart version: 4.1.4
Api version: v1
App version:
DEPRECATED - Sonarr is a television show downloading client
Chart Type
Set me up:
helm repo add center
Install Chart:
helm install sonarr center/billimek/sonarr
Versions (0)

DEPRECATED - sonarr televsion show download client

This chart has been deprecated and moved to its new home:

helm repo add k8s-at-home
helm install k8s-at-home/sonarr

This is a helm chart for sonarr leveraging the image


$ helm repo add billimek
$ helm install billimek/sonarr

Installing the Chart

To install the chart with the release name my-release:

helm install --name my-release billimek/sonarr


Chart versions 3.2.0 and earlier used separate PVCs for Downloads and TV. This presented an issue where Sonarr would be unable to hard-link files between the /downloads and /tv directories when importing media. This is caused because each PVC is exposed to the pod as a separate filesystem. This resulted in Sonarr copying files rather than linking; using additional storage without the user’s knowledge.

This chart now uses a single PVC for Downloads and TV. This means all of your media (and downloads) must be in, or be subdirectories of, a single directory. If upgrading from v1 of the chart, do the following:

  1. Uninstall your current release
  2. On your backing store, organize your media, ie. media/tv, media/downloads
  3. If using a pre-existing PVC, create a single new PVC for all of your media
  4. Refer to the configuration for updates to the chart values
  5. Re-install the chart
  6. Update your settings in the app to point to the new PVC, which is mounted at /media. This can be done using Sonarr’s Series Editor under the Series tab. Simply select all series in your library, and use the editor to change the Root Folder and hit save.

Uninstalling the Chart

To uninstall/delete the my-release deployment:

helm delete my-release --purge

The command removes all the Kubernetes components associated with the chart and deletes the release.


The following tables lists the configurable parameters of the Sentry chart and their default values.

Parameter Description Default
image.repository Image repository linuxserver/sonarr
image.tag Image tag. Possible values listed here.
image.pullPolicy Image pull policy IfNotPresent
strategyType Specifies the strategy used to replace old Pods by new ones Recreate
timezone Timezone the instance should run as, e.g. ‘America/New_York’ UTC
puid process userID the instance should run as 1001
pgid process groupID the instance should run as 1001
exportarr.enabled Enable Prometheus monitoring with Exportarr false
exportarr.image.repository Exportarr image repository onedr0p/exportarr
exportarr.image.tag Exportarr image tag v0.3.0
exportarr.image.pullPolicy Exportarr image pullPolicy IfNotPresent
exportarr.port Prometheus scrape port 9707
exportarr.url Sonarr’s URL http://sonarr.default.svc.cluster.local:8989
exportarr.apikey Sonarr’s API Key
exportarr.enableEpisodeQualityMetrics Enable episode quality metrics gathering false
exportarr.serviceMonitor.enabled Enable Prometheus Operator ServiceMonitor monitoring false
exportarr.serviceMonitor.namespace Define namespace where to deploy the ServiceMonitor resource (namespace where you are deploying)
exportarr.serviceMonitor.path Prometheus scrape path /metrics
exportarr.serviceMonitor.interval Prometheus scrape interval 4m
exportarr.serviceMonitor.scrapeTimeout Prometheus scrape timeout 90s
exportarr.serviceMonitor.additionalLabels Add custom labels to ServiceMonitor {}
probes.liveness.initialDelaySeconds Specify liveness initialDelaySeconds parameter for the deployment 60
probes.liveness.failureThreshold Specify liveness failureThreshold parameter for the deployment 5
probes.liveness.timeoutSeconds Specify liveness timeoutSeconds parameter for the deployment 10
probes.readiness.initialDelaySeconds Specify readiness initialDelaySeconds parameter for the deployment 60
probes.readiness.failureThreshold Specify readiness failureThreshold parameter for the deployment 5
probes.readiness.timeoutSeconds Specify readiness timeoutSeconds parameter for the deployment 10
service.type Kubernetes service type for the GUI ClusterIP
service.port Kubernetes port where the GUI is exposed 8989
service.annotations Service annotations for the GUI {}
service.labels Custom labels {}
service.loadBalancerIP Loadbalancer IP for the GUI {}
service.loadBalancerSourceRanges List of IP CIDRs allowed access to load balancer (if supported) None
ingress.enabled Enables Ingress false
ingress.annotations Ingress annotations {}
ingress.labels Custom labels {}
ingress.path Ingress path /
ingress.hosts Ingress accepted hostnames chart-example.local
ingress.tls Ingress TLS configuration []
persistence.config.enabled Use persistent volume to store configuration data true
persistence.config.size Size of persistent volume claim 1Gi
persistence.config.existingClaim Use an existing PVC to persist data nil
persistence.config.storageClass Type of persistent volume claim -
persistence.config.subPath Mount a sub directory if set nil
persistence.config.accessMode Persistence access mode ReadWriteOnce
persistence.config.skipuninstall Do not delete the pvc upon helm uninstall false Use persistent volume for media true Size of persistent volume claim 10Gi Use an existing PVC to persist data nil Type of persistent volume claim - Mount a sub directory if set nil Persistence access mode ReadWriteOnce Do not delete the pvc upon helm uninstall false
persistence.extraExistingClaimMounts Optionally add multiple existing claims []
resources CPU/Memory resource requests/limits {}
nodeSelector Node labels for pod assignment {}
tolerations Toleration labels for pod assignment []
affinity Affinity settings for pod assignment {}
podAnnotations Key-value pairs to add as pod annotations {}
deploymentAnnotations Key-value pairs to add as deployment annotations {}

Specify each parameter using the --set key=value[,key=value] argument to helm install. For example,

helm install --name my-release \
  --set timezone="America/New York" \

Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,

helm install --name my-release -f values.yaml stable/sonarr


If you get Error: rendered manifests contain a resource that already exists. Unable to continue with install: existing resource conflict: ... it may be because you uninstalled the chart with skipuninstall enabled, you need to manually delete the pvc or use existingClaim.

Read through the values.yaml file. It has several commented out suggested values.