Thank you for installing {{ .Chart.Name }}.

Your release is named {{ .Release.Name }}.

To learn more about the release, try:

  $ helm status {{ .Release.Name }}
  $ helm get all {{ .Release.Name }}

{{- if .Values.ingress.enabled }}

Jellyfin is available via Ingress at:
{{- range .Values.ingress.hosts }}
  http{{ if $.Values.ingress.tls }}s{{ end }}://{{ .host }}{{ (index .paths 0).path }}
{{- end }}
{{- else }}

To access Jellyfin, you can use port-forwarding:

  $ kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ include "jellyfin.fullname" . }} {{ .Values.service.port }}:{{ .Values.service.port }}

Then visit http://localhost:{{ .Values.service.port }} in your browser.
{{- end }}

{{- if .Values.startupProbe }}
{{- $startupTimeout := mul (default 10 .Values.startupProbe.periodSeconds) (default 30 .Values.startupProbe.failureThreshold) }}

Startup Configuration:
  Startup Probe: Enabled
  Max Startup Time: {{ $startupTimeout }}s ({{ div $startupTimeout 60 }} minutes)

  The startup probe gives Jellyfin enough time to initialize, especially
  with large media libraries. After startup succeeds, liveness and
  readiness probes take over for health monitoring.

  {{- if gt $startupTimeout 600 }}
  ⚠ NOTE: Startup timeout is very long ({{ div $startupTimeout 60 }}+ minutes).
  Consider optimizing your media library or reducing failureThreshold.
  {{- end }}
Persistence Configuration:
  Config: {{ if .Values.persistence.config.enabled }}{{ .Values.persistence.config.type | default "pvc" }}{{ if .Values.persistence.config.existingClaim }} (existing: {{ .Values.persistence.config.existingClaim }}){{ end }}{{ else }}emptyDir{{ end }}
  Media: {{ if .Values.persistence.media.enabled }}{{ .Values.persistence.media.type | default "pvc" }}{{ if .Values.persistence.media.existingClaim }} (existing: {{ .Values.persistence.media.existingClaim }}){{ end }}{{ else }}emptyDir{{ end }}
  Cache: {{ if .Values.persistence.cache.enabled }}{{ .Values.persistence.cache.type | default "pvc" }}{{ if .Values.persistence.cache.existingClaim }} (existing: {{ .Values.persistence.cache.existingClaim }}){{ end }}{{ else }}emptyDir{{ end }}

{{- if and .Values.persistence.cache.enabled (eq .Values.persistence.cache.type "pvc") }}
Cache Volume:
  Dedicated cache volume is enabled for improved performance.
  Size: {{ .Values.persistence.cache.size }}
  Access Mode: {{ .Values.persistence.cache.accessMode }}
  {{- if .Values.persistence.cache.storageClass }}
  Storage Class: {{ .Values.persistence.cache.storageClass }}
  {{- end }}

  Benefits:
  - Faster transcoding and metadata operations
  - Separate cache lifecycle from config/media
  - Can use faster storage class (SSD) for cache
{{- end }}

{{- if and .Values.persistence.cache.enabled (eq .Values.persistence.cache.type "hostPath") }}
⚠ WARNING: Using hostPath for cache - ensure {{ .Values.persistence.cache.hostPath }} exists on the node
{{- if or .Values.service.ipFamilyPolicy .Values.service.ipFamilies }}

Service IP Configuration:
{{- if .Values.service.ipFamilyPolicy }}
  IP Family Policy: {{ .Values.service.ipFamilyPolicy }}
{{- end }}
{{- if .Values.service.ipFamilies }}
  IP Families: {{ .Values.service.ipFamilies | join ", " }}
  {{- if eq (index .Values.service.ipFamilies 0) "IPv6" }}
  ⚠ NOTE: IPv6 primary - ensure your probes use httpGet instead of tcpSocket for compatibility
  {{- end }}
  {{- if has "IPv6" .Values.service.ipFamilies }}
  {{- if not .Values.service.ipFamilyPolicy }}
  ⚠ WARNING: ipFamilies includes IPv6 but ipFamilyPolicy is not set
  {{- end }}
  {{- end }}
{{- end }}
{{- end }}
Deployment Configuration:
  Revision History Limit: {{ .Values.revisionHistoryLimit }}
  {{- $limit := int .Values.revisionHistoryLimit }}
  {{- if eq $limit 0 }}
  ⚠ WARNING: Revision history is disabled - rollback will not be possible!
  {{- else if eq $limit 1 }}
  ⚠ NOTE: Only 1 revision kept - limited rollback capability
  {{- else }}
  You can rollback to any of the last {{ .Values.revisionHistoryLimit }} revisions using:
    kubectl rollout undo deployment/{{ include "jellyfin.fullname" . }} --namespace {{ .Release.Namespace }}
  {{- end }}
