Skip to content

[servarr] fix: decouple /media mount from jellyfin.enabled#69

Open
cgrard wants to merge 1 commit into
kubitodev:mainfrom
cgrard:fix/decouple-media-mount
Open

[servarr] fix: decouple /media mount from jellyfin.enabled#69
cgrard wants to merge 1 commit into
kubitodev:mainfrom
cgrard:fix/decouple-media-mount

Conversation

@cgrard

@cgrard cgrard commented Jul 13, 2026

Copy link
Copy Markdown

The *arr containers (sonarr, radarr, lidarr, bazarr, qbittorrent, cleanuparr) only mount their shared /media volume when both jellyfin.enabled and jellyfin.persistence.media.enabled are true. This means operators who don't run Jellyfin from this chart must keep a "ghost" jellyfin.enabled=true with replicaCount=0 just to get /media wired into the other apps.

Introduce a top-level sharedMedia key that gates the /media mount independently:

sharedMedia:
enabled: false
existingClaim: ""

When sharedMedia.enabled=true and sharedMedia.existingClaim is set, every *arr container mounts /media from that claim, whether or not Jellyfin is enabled.

Backwards compatibility: the legacy jellyfin.enabled + jellyfin.persistence.media.enabled path is preserved as a second branch inside the new helpers. Existing deployments render byte-for- byte identically (verified with helm template diff).

Two helpers were added in templates/_helpers.tpl to keep the per-app conditions concise and consistent:

  • servarr.mediaEnabled -> truthy when either mechanism is active
  • servarr.mediaClaimName -> resolves the PVC name to mount

Chart version bumped 1.5.2 -> 1.5.3 (patch: bug fix, no user-visible breakage).

Kubito Helm Charts PR Checklist

Thank you for your contribution! Please ensure the following:

  • [] Chart Version: Updated version in Chart.yaml for the relevant chart.

  • [] README Update: If values.yaml was changed, run:

    readme-generator -v charts/your-chart/values.yaml -r charts/your-chart/README.md
  • [] Testing: Tested the chart locally, and it works as expected.

Changes Summary

Briefly describe your changes and why they are needed.

Related Issues

List any relevant issues, e.g., Fixes #123.

The *arr containers (sonarr, radarr, lidarr, bazarr, qbittorrent,
cleanuparr) only mount their shared /media volume when both
jellyfin.enabled and jellyfin.persistence.media.enabled are true.
This means operators who don't run Jellyfin from this chart must
keep a "ghost" jellyfin.enabled=true with replicaCount=0 just to
get /media wired into the other apps.

Introduce a top-level sharedMedia key that gates the /media mount
independently:

  sharedMedia:
    enabled: false
    existingClaim: ""

When sharedMedia.enabled=true and sharedMedia.existingClaim is set,
every *arr container mounts /media from that claim, whether or not
Jellyfin is enabled.

Backwards compatibility: the legacy jellyfin.enabled +
jellyfin.persistence.media.enabled path is preserved as a second
branch inside the new helpers. Existing deployments render byte-for-
byte identically (verified with helm template diff).

Two helpers were added in templates/_helpers.tpl to keep the
per-app conditions concise and consistent:
  - servarr.mediaEnabled   -> truthy when either mechanism is active
  - servarr.mediaClaimName -> resolves the PVC name to mount

Chart version bumped 1.5.2 -> 1.5.3 (patch: bug fix, no user-visible
breakage).

Signed-off-by: Cédric <cedric.grard@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant