BREAKING CHANGE: The 'initContainers' parameter is now deprecated in favor of 'extraInitContainers' for naming consistency with 'extraContainers'. Both parameters will work until 2030 for backward compatibility. The previous implementation used '.Values.initContainers' in the template but 'extraInitContainers' was defined in values.yaml, causing the feature to be completely non-functional. Changes: - Fix extraInitContainers not working (was referencing wrong parameter) - Add deprecated 'initContainers' parameter to values.yaml with @deprecated tag - Update deployment.yaml to support both parameters with OR logic - Add TODO comment to remove initContainers support after 2030 - Create NOTES.txt with: - Deprecation warning when using initContainers - Post-installation instructions for accessing Jellyfin - Persistence status information - Links to documentation - Improve extraInitContainers documentation with usage example - Bump chart version 2.5.0 -> 3.0.0 (major due to deprecation) - Add comprehensive changelog to artifacthub.io/changes Migration guide: Old: initContainers: [...] New: extraInitContainers: [...] The old parameter will continue to work but users will see a deprecation warning in NOTES.txt after installation. Follows best practices from community charts (Prometheus, Elastic, etc.) where 'extra*' prefix indicates user-provided extension points. Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Aleksei Sviridkin <f@lex.la>
276 lines
8.3 KiB
YAML
276 lines
8.3 KiB
YAML
# Default values for Jellyfin.
|
|
# This is a YAML-formatted file.
|
|
|
|
# -- Number of Jellyfin replicas to start. Should be left at 1.
|
|
replicaCount: 1
|
|
|
|
# -- Image pull secrets to authenticate with private repositories.
|
|
# See: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
|
imagePullSecrets: []
|
|
|
|
image:
|
|
# -- Container image repository for Jellyfin.
|
|
repository: docker.io/jellyfin/jellyfin
|
|
# -- Jellyfin container image tag. Leave empty to automatically use the Chart's app version.
|
|
tag: ""
|
|
# -- Image pull policy (Always, IfNotPresent, or Never).
|
|
pullPolicy: IfNotPresent
|
|
|
|
# -- Override the default name of the chart.
|
|
nameOverride: ""
|
|
# -- Override the default full name of the chart.
|
|
fullnameOverride: ""
|
|
|
|
# -- Service account configuration. See: https://kubernetes.io/docs/concepts/security/service-accounts/
|
|
serviceAccount:
|
|
# -- Specifies whether to create a service account.
|
|
create: true
|
|
# -- Automatically mount API credentials for the service account.
|
|
automount: true
|
|
# -- Annotations for the service account.
|
|
annotations: {}
|
|
# -- Custom name for the service account. If left empty, the name will be autogenerated.
|
|
name: ""
|
|
|
|
# -- Annotations to add to the pod.
|
|
podAnnotations: {}
|
|
# -- Additional labels to add to the pod.
|
|
podLabels: {}
|
|
|
|
# -- Security context for the pod.
|
|
podSecurityContext: {}
|
|
# fsGroup: 2000
|
|
|
|
# -- Security context for the container.
|
|
securityContext: {}
|
|
# capabilities:
|
|
# drop:
|
|
# - ALL
|
|
# readOnlyRootFilesystem: true
|
|
# runAsNonRoot: true
|
|
# runAsUser: 1000
|
|
|
|
# -- Define a custom runtimeClassName for the pod.
|
|
runtimeClassName: ''
|
|
|
|
# -- Define a priorityClassName for the pod.
|
|
priorityClassName: ""
|
|
|
|
# -- Define a dnsConfig. See https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config
|
|
# Use this to provide a custom DNS resolver configuration
|
|
dnsConfig: {}
|
|
# nameservers:
|
|
# - 192.0.2.1
|
|
# searches:
|
|
# - ns1.svc.cluster-domain.example
|
|
# - my.dns.search.suffix
|
|
# options:
|
|
# - name: ndots
|
|
# value: "2"
|
|
# - name: edns0
|
|
|
|
# -- Define a dnsPolicy. See https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy
|
|
dnsPolicy: ""
|
|
|
|
# -- Deployment strategy configuration. See `kubectl explain deployment.spec.strategy`.
|
|
deploymentStrategy:
|
|
type: RollingUpdate
|
|
|
|
# -- Annotations to add to the deployment.
|
|
deploymentAnnotations: {}
|
|
|
|
service:
|
|
# # -- Custom name for the service port
|
|
# name: http
|
|
# -- Service type (ClusterIP, NodePort, or LoadBalancer).
|
|
type: ClusterIP
|
|
# -- Configure dual-stack IP family policy. See: https://kubernetes.io/docs/concepts/services-networking/dual-stack/
|
|
ipFamilyPolicy: ""
|
|
# -- Supported IP families (IPv4, IPv6).
|
|
ipFamilies: []
|
|
# -- Specific IP address for the LoadBalancer.
|
|
loadBalancerIP: ""
|
|
# -- Class of the LoadBalancer.
|
|
loadBalancerClass: ""
|
|
# -- Source ranges allowed to access the LoadBalancer.
|
|
loadBalancerSourceRanges: []
|
|
# -- Port for the Jellyfin service.
|
|
port: 8096
|
|
# -- Name of the port in the service.
|
|
portName: service
|
|
# -- Annotations for the service.
|
|
annotations: {}
|
|
# -- Labels for the service.
|
|
labels: {}
|
|
# -- External traffic policy (Cluster or Local).
|
|
# externalTrafficPolicy: Cluster
|
|
# -- NodePort for the service (if applicable).
|
|
# nodePort:
|
|
|
|
# -- Ingress configuration. See: https://kubernetes.io/docs/concepts/services-networking/ingress/
|
|
ingress:
|
|
enabled: false
|
|
className: ""
|
|
annotations: {}
|
|
# kubernetes.io/ingress.class: nginx
|
|
# kubernetes.io/tls-acme: "true"
|
|
hosts:
|
|
- host: chart-example.local
|
|
paths:
|
|
- path: /
|
|
pathType: ImplementationSpecific
|
|
tls: []
|
|
# - secretName: chart-example-tls
|
|
# hosts:
|
|
# - chart-example.local
|
|
|
|
# -- Resource requests and limits for the Jellyfin container.
|
|
resources: {}
|
|
# limits:
|
|
# cpu: 100m
|
|
# memory: 128Mi
|
|
# requests:
|
|
# cpu: 100m
|
|
# memory: 128Mi
|
|
|
|
# -- Configure liveness probe for Jellyfin.
|
|
livenessProbe:
|
|
initialDelaySeconds: 10
|
|
tcpSocket:
|
|
port: http
|
|
# successThreshold: 1
|
|
# failureThreshold: 3
|
|
# timeoutSeconds: 1
|
|
# periodSeconds: 10
|
|
|
|
# -- Configure readiness probe for Jellyfin.
|
|
readinessProbe:
|
|
initialDelaySeconds: 10
|
|
tcpSocket:
|
|
port: http
|
|
# successThreshold: 1
|
|
# failureThreshold: 3
|
|
# timeoutSeconds: 1
|
|
# periodSeconds: 10
|
|
|
|
# -- Additional volumes to mount in the Jellyfin pod.
|
|
volumes: []
|
|
# - name: foo
|
|
# secret:
|
|
# secretName: mysecret
|
|
# optional: false
|
|
|
|
# -- Additional volume mounts for the Jellyfin container.
|
|
volumeMounts: []
|
|
# - name: foo
|
|
# mountPath: "/etc/foo"
|
|
# readOnly: true
|
|
|
|
# -- Node selector for pod scheduling.
|
|
nodeSelector: {}
|
|
|
|
# -- Tolerations for pod scheduling.
|
|
tolerations: []
|
|
|
|
# -- Affinity rules for pod scheduling.
|
|
affinity: {}
|
|
|
|
# -- Privileged pod settings for advanced use cases
|
|
podPrivileges:
|
|
# -- Enable hostIPC namespace. Required for NVIDIA MPS (Multi-Process Service) GPU sharing. See: https://docs.nvidia.com/deploy/mps/index.html
|
|
hostIPC: false
|
|
# -- Enable hostNetwork. Allows pod to use the host's network namespace.
|
|
hostNetwork: false
|
|
# -- Enable hostPID namespace. Allows pod to see processes on the host.
|
|
hostPID: false
|
|
|
|
jellyfin:
|
|
# -- Enable DLNA. Requires host network. See: https://jellyfin.org/docs/general/networking/dlna.html
|
|
enableDLNA: false
|
|
# -- Custom command to use as container entrypoint.
|
|
command: []
|
|
# -- Additional arguments for the entrypoint command.
|
|
args: []
|
|
# -- Additional environment variables for the container.
|
|
env: []
|
|
|
|
persistence:
|
|
config:
|
|
# -- set to false to use emptyDir
|
|
enabled: true
|
|
accessMode: ReadWriteOnce
|
|
size: 5Gi
|
|
# -- Custom annotations to be added to the PVC
|
|
annotations: {}
|
|
# -- If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner.
|
|
storageClass: ''
|
|
## -- Use an existing PVC for this mount
|
|
# existingClaim: ''
|
|
media:
|
|
# -- set to false to use emptyDir
|
|
enabled: true
|
|
# -- Type of volume for media storage (pvc, hostPath, emptyDir). If 'enabled' is false, 'emptyDir' is used regardless of this setting.
|
|
type: pvc
|
|
# -- Path on the host node for media storage, only used if type is 'hostPath'.
|
|
hostPath: ""
|
|
# -- PVC specific settings, only used if type is 'pvc'.
|
|
accessMode: ReadWriteOnce
|
|
size: 25Gi
|
|
# -- Custom annotations to be added to the PVC
|
|
annotations: {}
|
|
# -- If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner.
|
|
storageClass: ''
|
|
## -- Use an existing PVC for this mount
|
|
# existingClaim: ''
|
|
|
|
# -- Configuration for metrics collection and monitoring
|
|
metrics:
|
|
# -- Enable or disable metrics collection
|
|
enabled: false
|
|
# -- Configuration for the Prometheus ServiceMonitor
|
|
serviceMonitor:
|
|
# -- Enable or disable the creation of a ServiceMonitor resource
|
|
enabled: false
|
|
# -- Namespace where the ServiceMonitor resource should be created. Defaults to Release.Namespace
|
|
namespace: ''
|
|
# -- Labels to add to the ServiceMonitor resource
|
|
labels: {}
|
|
# -- Interval at which metrics should be scraped
|
|
interval: 30s
|
|
# -- Timeout for scraping metrics
|
|
scrapeTimeout: 30s
|
|
# -- Path to scrape for metrics
|
|
path: /metrics
|
|
# -- Port to scrape for metrics
|
|
port: 8096
|
|
# -- Scheme to use for scraping metrics (http or https)
|
|
scheme: http
|
|
# -- TLS configuration for scraping metrics
|
|
tlsConfig: {}
|
|
# -- Relabeling rules for the scraped metrics
|
|
relabelings: []
|
|
# -- Relabeling rules for the metrics before ingestion
|
|
metricRelabelings: []
|
|
# -- Target labels to add to the scraped metrics
|
|
targetLabels: []
|
|
|
|
# -- DEPRECATED: Use extraInitContainers instead. Will be removed after 2030.
|
|
# @deprecated - This parameter is deprecated, use extraInitContainers instead
|
|
initContainers: []
|
|
|
|
# -- Additional init containers to run inside the pod.
|
|
# Init containers run before the main application container starts.
|
|
# See: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
|
|
# Example:
|
|
# extraInitContainers:
|
|
# - name: init-config
|
|
# image: busybox:1.35
|
|
# command: ['sh', '-c', 'echo "Initializing..." && sleep 5']
|
|
# volumeMounts:
|
|
# - name: config
|
|
# mountPath: /config
|
|
extraInitContainers: []
|
|
|
|
# -- additional sidecar containers to run inside the pod.
|
|
extraContainers: []
|