groups: - name: Jellyfin Configuration description: Configure Jellyfin - name: User and Group Configuration description: Configure User and Group for Jellyfin - name: Network Configuration description: Configure Network for Jellyfin - name: Storage Configuration description: Configure Storage for Jellyfin - name: Resources Configuration description: Configure Resources for Jellyfin portals: web_portal: protocols: - "$kubernetes-resource_configmap_portal_protocol" host: - "$kubernetes-resource_configmap_portal_host" ports: - "$kubernetes-resource_configmap_portal_port" path: "$kubernetes-resource_configmap_portal_path" questions: - variable: jellyfinConfig label: "" group: Jellyfin Configuration schema: type: dict attrs: - variable: publishServerUrl label: Published Server URL description: Optional - The URL that Jellyfin will be advertised. schema: type: string default: "" - variable: additionalEnvs label: Additional Environment Variables description: Configure additional environment variables for Jellyfin. schema: type: list default: [] items: - variable: env label: Environment Variable schema: type: dict attrs: - variable: name label: Name schema: type: string required: true - variable: value label: Value schema: type: string required: true - variable: jellyfinRunAs label: "" group: User and Group Configuration schema: type: dict attrs: - variable: user label: User ID description: The user id that Jellyfin will run as. schema: type: int min: 2 default: 568 required: true - variable: group label: Group ID description: The group id that Jellyfin will run as. schema: type: int min: 2 default: 568 required: true - variable: jellyfinNetwork label: "" group: Network Configuration schema: type: dict attrs: - variable: hostNetwork label: Host Network description: | Bind to the host network. While it's recommended to keep this disabled.
It's required for autodiscovery to work. schema: type: boolean default: false - variable: webPort label: Web Port description: The port for the Jellyfin Web UI. schema: type: int default: 30013 show_if: [["hostNetwork", "=", false]] min: 9000 max: 65535 required: true - variable: jellyfinStorage label: "" group: Storage Configuration schema: type: dict attrs: - variable: config label: Jellyfin Config Storage description: The path to store Jellyfin Configuration. schema: type: dict attrs: - variable: type label: Type description: | ixVolume: Is dataset created automatically by the system.
Host Path: Is a path that already exists on the system. schema: type: string required: true default: "ixVolume" enum: - value: "hostPath" description: Host Path (Path that already exists on the system) - value: "ixVolume" description: ixVolume (Dataset created automatically by the system) - variable: datasetName label: Dataset Name schema: type: string show_if: [["type", "=", "ixVolume"]] required: true hidden: true immutable: true default: "config" $ref: - "normalize/ixVolume" - variable: hostPath label: Host Path schema: type: hostpath show_if: [["type", "=", "hostPath"]] immutable: true required: true - variable: cache label: Jellyfin Cache Storage description: The path to store Jellyfin Cache. schema: type: dict attrs: - variable: type label: Type description: | ixVolume: Is dataset created automatically by the system.
Host Path: Is a path that already exists on the system. schema: type: string required: true default: "ixVolume" enum: - value: "hostPath" description: Host Path (Path that already exists on the system) - value: "ixVolume" description: ixVolume (Dataset created automatically by the system) - variable: datasetName label: Dataset Name schema: type: string show_if: [["type", "=", "ixVolume"]] required: true hidden: true immutable: true default: "cache" $ref: - "normalize/ixVolume" - variable: hostPath label: Host Path schema: type: hostpath show_if: [["type", "=", "hostPath"]] immutable: true required: true - variable: transcodes label: Jellyfin Transcodes Storage description: The path to store Jellyfin Transcodes. schema: type: dict attrs: - variable: type label: Type description: | ixVolume: Is dataset created automatically by the system.
Host Path: Is a path that already exists on the system.
emptyDir: Is a temporary directory that will be created on the disk or in memory. schema: type: string required: true default: "ixVolume" enum: - value: "hostPath" description: Host Path (Path that already exists on the system) - value: "ixVolume" description: ixVolume (Dataset created automatically by the system) - value: "emptyDir" description: emptyDir (Temporary directory created on the disk or in memory) - variable: datasetName label: Dataset Name schema: type: string show_if: [["type", "=", "ixVolume"]] required: true hidden: true immutable: true default: "transcodes" $ref: - "normalize/ixVolume" - variable: hostPath label: Host Path schema: type: hostpath show_if: [["type", "=", "hostPath"]] immutable: true required: true - variable: medium label: emptyDir Medium description: | Disk: Creates a temporary directory on the disk.
Memory: Creates a temporary directory in memory. schema: type: string show_if: [["type", "=", "emptyDir"]] default: "" enum: - value: "" description: Disk (Temporary directory created on the disk) - value: "Memory" description: Memory (Temporary directory created in memory) - variable: size label: emptyDir Size Limit description: | The maximum size of the temporary directory.
For example: 2Gi schema: type: string show_if: [["type", "=", "emptyDir"]] default: "2Gi" - variable: additionalStorages label: Additional Storage description: Additional storage for Jellyfin. schema: type: list default: [] items: - variable: storageEntry label: Storage Entry schema: type: dict attrs: - variable: type label: Type description: | ixVolume: Is dataset created automatically by the system.
Host Path: Is a path that already exists on the system. schema: type: string required: true default: "ixVolume" enum: - value: "hostPath" description: Host Path (Path that already exists on the system) - value: "ixVolume" description: ixVolume (Dataset created automatically by the system) - variable: mountPath label: Mount Path description: The path inside the container to mount the storage. schema: type: path required: true - variable: hostPath label: Host Path description: The host path to use for storage. schema: type: hostpath show_if: [["type", "=", "hostPath"]] required: true - variable: datasetName label: Dataset Name description: The name of the dataset to use for storage. schema: type: string show_if: [["type", "=", "ixVolume"]] required: true immutable: true default: "storage_entry" $ref: - "normalize/ixVolume" - variable: resources group: Resources Configuration label: "" schema: type: dict attrs: - variable: limits label: Limits schema: type: dict attrs: - variable: cpu label: CPU description: CPU limit for Jellyfin. schema: type: string max_length: 6 valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$' valid_chars_error: | Valid CPU limit formats are
- Plain Integer - eg. 1
- Float - eg. 0.5
- Milicpu - eg. 500m default: "4000m" required: true - variable: memory label: Memory description: Memory limit for Jellyfin. schema: type: string max_length: 12 valid_chars: '^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$' valid_chars_error: | Valid Memory limit formats are
- Suffixed with E/P/T/G/M/K - eg. 1G
- Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi
- Plain Integer in bytes - eg. 1024
- Exponent - eg. 134e6 default: "8Gi" required: true - variable: jellyfinGPU group: Resources Configuration label: GPU Configuration schema: type: dict $ref: - "definitions/gpuConfiguration" attrs: []