467 lines
17 KiB
YAML
467 lines
17 KiB
YAML
# Include{groups}
|
|
portals: {}
|
|
questions:
|
|
# Include{global}
|
|
- variable: controller
|
|
group: "Controller"
|
|
label: ""
|
|
schema:
|
|
additional_attrs: true
|
|
type: dict
|
|
attrs:
|
|
- variable: advanced
|
|
label: "Show Advanced Controller Settings"
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
show_subquestions_if: true
|
|
subquestions:
|
|
- variable: type
|
|
description: "Please specify type of workload to deploy"
|
|
label: "(Advanced) Controller Type"
|
|
schema:
|
|
type: string
|
|
default: "deployment"
|
|
required: true
|
|
enum:
|
|
- value: "deployment"
|
|
description: "Deployment"
|
|
- value: "statefulset"
|
|
description: "Statefulset"
|
|
- value: "daemonset"
|
|
description: "Daemonset"
|
|
- variable: replicas
|
|
description: "Number of desired pod replicas"
|
|
label: "Desired Replicas"
|
|
schema:
|
|
type: int
|
|
default: 1
|
|
required: true
|
|
- variable: strategy
|
|
description: "Please specify type of workload to deploy"
|
|
label: "(Advanced) Update Strategy"
|
|
schema:
|
|
type: string
|
|
default: "Recreate"
|
|
required: true
|
|
enum:
|
|
- value: "Recreate"
|
|
description: "Recreate: Kill existing pods before creating new ones"
|
|
- value: "RollingUpdate"
|
|
description: "RollingUpdate: Create new pods and then kill old ones"
|
|
- value: "OnDelete"
|
|
description: "(Legacy) OnDelete: ignore .spec.template changes"
|
|
# Include{controllerExpert}
|
|
|
|
- variable: env
|
|
group: "Container Configuration"
|
|
label: "Image Environment"
|
|
schema:
|
|
additional_attrs: true
|
|
type: dict
|
|
attrs:
|
|
- variable: AUTOSTART
|
|
label: "Auto Start"
|
|
description: "true = Enabled :: Runs script automatically on startup"
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
- variable: SCRIPTINTERVAL
|
|
label: "Script Interval"
|
|
description: "#s or #m or #h or #d :: s = seconds, m = minutes, h = hours, d = days :: Amount of time between each script run, when AUTOSTART is enabled"
|
|
schema:
|
|
type: string
|
|
default: "1h"
|
|
- variable: DOWNLOADMODE
|
|
label: "Download Mode"
|
|
description: >
|
|
"`wanted` or `artist` :: wanted mode only download missing/cutoff ::
|
|
artist mode downloads all albums by an artist (requires lidarr volume mapping root media folders for import)"
|
|
schema:
|
|
type: string
|
|
default: "wanted"
|
|
enum:
|
|
- value: "wanted"
|
|
description: "Only missing/cutoff"
|
|
- value: "artist"
|
|
description: "All albums"
|
|
- variable: FALLBACKSEARCH
|
|
label: "Fallback Search"
|
|
description: "True or False :: True = enabled :: Allows DL client to search for missing songs when they are not available"
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
- variable: LIST
|
|
label: "LIST"
|
|
description: "Both or missing or cutoff :: both = missing + cutoff :: missng = lidarr missing list :: cutoff = lidarr cutoff list"
|
|
schema:
|
|
type: string
|
|
default: "both"
|
|
enum:
|
|
- value: "both"
|
|
description: "missing + cutoff"
|
|
- value: "missing"
|
|
description: "lidarr missing list"
|
|
- value: "cutoff"
|
|
description: "lidarr cutoff list"
|
|
- variable: SearchType
|
|
label: "Search Type"
|
|
description: |
|
|
both or artist or fuzzy
|
|
both = artist + fuzzy searching
|
|
artist = only artist searching
|
|
fuzzy = only fuzzy searching (Various Artist is always fuzzy searched, regardless of setting)
|
|
schema:
|
|
type: string
|
|
default: "both"
|
|
enum:
|
|
- value: "both"
|
|
description: "Artist + fuzzy searching."
|
|
- value: "artist"
|
|
description: "Only artist searching."
|
|
- value: "fuzzy"
|
|
description: "Only fuzzy searching."
|
|
- variable: Concurrency
|
|
label: "Concurrency"
|
|
description: "Number of concurrent downloads"
|
|
schema:
|
|
type: int
|
|
default: 1
|
|
- variable: EMBEDDED_COVER_QUALITY
|
|
label: "Embedded Cover Quality"
|
|
description: "Controls the quality of the cover image compression in percentage, 100 = no compression"
|
|
schema:
|
|
type: int
|
|
default: 80
|
|
- variable: FORMAT
|
|
label: "Format"
|
|
description: |
|
|
FLAC or MP3 or OPUS or AAC or ALAC.
|
|
FLAC is an audio coding format for lossless compression of digital audio.
|
|
MP3 (or mp3) as a file format commonly designates files containing an elementary stream of MPEG-1 Audio or MPEG-2 Audio encoded data.
|
|
Opus is a lossy audio coding format developed by the Xiph.Org Foundation and standardized by the Internet Engineering Task Force.
|
|
Advanced Audio Coding (AAC) is an audio coding standard for lossy digital audio compression.
|
|
schema:
|
|
type: string
|
|
default: "FLAC"
|
|
enum:
|
|
- value: "FLAC"
|
|
description: "FLAC"
|
|
- value: "MP3"
|
|
description: "MP3"
|
|
- value: "OPUS"
|
|
description: "OPUS"
|
|
- value: "AAC"
|
|
description: "AAC"
|
|
- value: "ALAC"
|
|
description: "ALAC"
|
|
- variable: BITRATE
|
|
label: "Bit Rate"
|
|
description: "FLAC -> OPUS/AAC/MP3 will be converted using this bitrate (MP3 320/128 is native, not converted)"
|
|
schema:
|
|
type: int
|
|
default: 320
|
|
- variable: ENABLEPOSTPROCESSING
|
|
label: "Enable Postprocessing"
|
|
description: "true = enabled :: enables or disables post processing processes as much as possible"
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
- variable: FORCECONVERT
|
|
label: "Force Convert"
|
|
description: "true = enabled :: This will convert lossy MP3 to desired target format (exluding FLAC/ALAC, ALAC will convert to AAC)"
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
- variable: requirequality
|
|
label: "Require Quality"
|
|
description: "true = enabled :: Requires all downloaded files match target file extension (mp3 or flac) when enabled"
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
- variable: MatchDistance
|
|
label: "Match Distance"
|
|
description: >
|
|
"Set as an integer, the higher the number, the more lenient it is.
|
|
Example: A match score of 0 is a perfect match :: For more information,
|
|
this score is produced using this function: Algorithm Implementation/Strings/Levenshtein distance"
|
|
schema:
|
|
type: int
|
|
default: 10
|
|
- variable: replaygain
|
|
label: "Replay Gain"
|
|
description: "true = enabled :: Scans and analyzes files to add replaygain tags to song metadata"
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
- variable: FolderPermissions
|
|
label: "Folder Permissions"
|
|
description: "Based on chmod linux permissions"
|
|
schema:
|
|
type: int
|
|
default: 766
|
|
- variable: FilePermissions
|
|
label: "File Permissions"
|
|
description: "Based on chmod linux permissions"
|
|
schema:
|
|
type: int
|
|
default: 666
|
|
- variable: MBRAINZMIRROR
|
|
label: "Mbrainz Mirror"
|
|
description: "OPTIONAL :: Only change if using a different mirror"
|
|
schema:
|
|
type: string
|
|
default: "https://musicbrainz.org"
|
|
- variable: MBRATELIMIT
|
|
label: "Mb Rate Limit"
|
|
description: "OPTIONAL: musicbrainz rate limit, musicbrainz allows only 1 connection per second, max setting is 10 :: Set to 101 to disable limit"
|
|
schema:
|
|
type: int
|
|
default: 1
|
|
- variable: LidarrUrl
|
|
label: "Lidarr Url"
|
|
description: "Set domain or IP to your Lidarr instance including port. If using reverse proxy, do not use a trailing slash. Ensure you specify http/s."
|
|
schema:
|
|
type: string
|
|
default: "http://x.x.x.x:8686"
|
|
- variable: LidarrAPIkey
|
|
label: "Lidarr Api Key"
|
|
description: "Lidarr API key."
|
|
schema:
|
|
type: string
|
|
default: "LIDARRAPI"
|
|
- variable: ARL_TOKEN
|
|
label: "ARL Token"
|
|
description: "Deezer ARL Cookie"
|
|
schema:
|
|
type: string
|
|
default: "ARLTOKEN"
|
|
- variable: NOTIFYPLEX
|
|
label: "Notify PLEX"
|
|
description: "true = enabled :: ONLY APPLIES ARTIST MODE :: Plex must have a music library added and be configured to use the exact same mount point as Lidarr's root folder"
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
show_subquestions_if: true
|
|
subquestions:
|
|
- variable: PLEXLIBRARYNAME
|
|
label: "PLEX Library Name"
|
|
description: "This must exactly match the name of the Plex Library that contains the Lidarr Media Folder data"
|
|
schema:
|
|
type: string
|
|
default: "Music"
|
|
- variable: PLEXURL
|
|
label: "PLEX URL"
|
|
description: "Path to PLEX."
|
|
schema:
|
|
type: string
|
|
default: "http://x.x.x.x:32400"
|
|
- variable: PLEXTOKEN
|
|
label: "PLEX Token"
|
|
description: "PLEX API token."
|
|
schema:
|
|
type: string
|
|
default: "plextoken"
|
|
- variable: ALBUM_TYPE_FILTER
|
|
label: "Album Type Filter"
|
|
description: 'Filter Types: COMPILE, SINGLE, ALBUM, EP (this is a ", " separated list of Album Types to skip) (Applicable to artist mode only)'
|
|
schema:
|
|
type: string
|
|
default: "COMPILE"
|
|
- variable: POSTPROCESSTHREADS
|
|
label: "Post Process Threads"
|
|
description: "Controls number of threads used for Format conversion and replay gain tagging"
|
|
schema:
|
|
type: int
|
|
default: 1
|
|
# Include{containerConfig}
|
|
|
|
|
|
- variable: serviceexpert
|
|
group: "Networking and Services"
|
|
label: "Show Expert Config"
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
show_subquestions_if: true
|
|
subquestions:
|
|
- variable: hostNetwork
|
|
group: "Networking and Services"
|
|
label: "Host-Networking (Complicated)"
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
|
|
# Include{serviceExpert}
|
|
|
|
# Include{serviceList}
|
|
|
|
- variable: persistence
|
|
label: "Integrated Persistent Storage"
|
|
description: "Integrated Persistent Storage"
|
|
group: "Storage and Persistence"
|
|
schema:
|
|
additional_attrs: true
|
|
type: dict
|
|
attrs:
|
|
- variable: config
|
|
label: "App Config Storage"
|
|
description: "Stores the Application Configuration."
|
|
schema:
|
|
additional_attrs: true
|
|
type: dict
|
|
attrs:
|
|
- variable: type
|
|
label: "Type of Storage"
|
|
description: "Sets the persistence type, Anything other than PVC could break rollback!"
|
|
schema:
|
|
type: string
|
|
default: "simplePVC"
|
|
enum:
|
|
- value: "simplePVC"
|
|
description: "PVC (simple)"
|
|
- value: "simpleHP"
|
|
description: "HostPath (simple)"
|
|
- value: "emptyDir"
|
|
description: "emptyDir"
|
|
- value: "pvc"
|
|
description: "pvc"
|
|
- value: "hostPath"
|
|
description: "hostPath"
|
|
# Include{persistenceBasic}
|
|
- variable: hostPath
|
|
label: "hostPath"
|
|
description: "Path inside the container the storage is mounted"
|
|
schema:
|
|
show_if: [["type", "=", "hostPath"]]
|
|
type: hostpath
|
|
- variable: medium
|
|
label: "EmptyDir Medium"
|
|
schema:
|
|
show_if: [["type", "=", "emptyDir"]]
|
|
type: string
|
|
default: ""
|
|
enum:
|
|
- value: ""
|
|
description: "Default"
|
|
- value: "Memory"
|
|
description: "Memory"
|
|
# Include{persistenceAdvanced}
|
|
- variable: data
|
|
label: "App Data Storage"
|
|
description: "Stores the Application Data."
|
|
schema:
|
|
additional_attrs: true
|
|
type: dict
|
|
attrs:
|
|
- variable: type
|
|
label: "Type of Storage"
|
|
description: "Sets the persistence type, Anything other than PVC could break rollback!"
|
|
schema:
|
|
type: string
|
|
default: "simplePVC"
|
|
enum:
|
|
- value: "simplePVC"
|
|
description: "PVC (simple)"
|
|
- value: "simpleHP"
|
|
description: "HostPath (simple)"
|
|
- value: "emptyDir"
|
|
description: "emptyDir"
|
|
- value: "pvc"
|
|
description: "pvc"
|
|
- value: "hostPath"
|
|
description: "hostPath"
|
|
# Include{persistenceBasic}
|
|
- variable: hostPath
|
|
label: "hostPath"
|
|
description: "Path inside the container the storage is mounted"
|
|
schema:
|
|
show_if: [["type", "=", "hostPath"]]
|
|
type: hostpath
|
|
- variable: medium
|
|
label: "EmptyDir Medium"
|
|
schema:
|
|
show_if: [["type", "=", "emptyDir"]]
|
|
type: string
|
|
default: ""
|
|
enum:
|
|
- value: ""
|
|
description: "Default"
|
|
- value: "Memory"
|
|
description: "Memory"
|
|
# Include{persistenceAdvanced}
|
|
# Include{persistenceList}
|
|
|
|
|
|
# Include{ingressList}
|
|
# Include{security}
|
|
|
|
- variable: advancedSecurity
|
|
label: "Show Advanced Security Settings"
|
|
group: "Security and Permissions"
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
show_subquestions_if: true
|
|
subquestions:
|
|
- variable: securityContext
|
|
label: "Security Context"
|
|
schema:
|
|
additional_attrs: true
|
|
type: dict
|
|
attrs:
|
|
- variable: privileged
|
|
label: "Privileged mode"
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
- variable: readOnlyRootFilesystem
|
|
label: "ReadOnly Root Filesystem"
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
- variable: allowPrivilegeEscalation
|
|
label: "Allow Privilege Escalation"
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
- variable: runAsNonRoot
|
|
label: "runAsNonRoot"
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
# Include{securityContextAdvanced}
|
|
|
|
- variable: podSecurityContext
|
|
group: "Security and Permissions"
|
|
label: "Pod Security Context"
|
|
schema:
|
|
additional_attrs: true
|
|
type: dict
|
|
attrs:
|
|
- variable: runAsUser
|
|
label: "runAsUser"
|
|
description: "The UserID of the user running the application"
|
|
schema:
|
|
type: int
|
|
default: 0
|
|
- variable: runAsGroup
|
|
label: "runAsGroup"
|
|
description: The groupID this App of the user running the application"
|
|
schema:
|
|
type: int
|
|
default: 0
|
|
- variable: fsGroup
|
|
label: "fsGroup"
|
|
description: "The group that should own ALL storage."
|
|
schema:
|
|
type: int
|
|
default: 568
|
|
# Include{podSecurityContextAdvanced}
|
|
|
|
# Include{resources}
|
|
|
|
# Include{advanced}
|
|
|
|
# Include{addons}
|