TrueChartsClone/test/plex/2.1.0/questions.yaml

269 lines
7.3 KiB
YAML

groups:
- name: "Container Images"
description: "Image to be used for container"
- name: "Container Entrypoint"
description: "Configuration of the executable that will be run when the container is started"
- name: "Container Environment Variables"
description: "Set the environment that will be visible to the container"
- name: "Networking"
description: "Configure networking for container"
- name: "Storage"
description: "Persist and share data that is separate from the lifecycle of the container"
- name: "Plex Configuration"
description: "Configure plex deployment"
- name: "Workload Details"
description: "Configure how workload should be deployed"
- name: "Scaling/Upgrade Policy"
description: "Configure how pods are replaced when configuration is upgraded"
- name: "Restart Policy"
description: "Configure when pod should be restarted in case of failure"
- name: "Resource Reservation"
description: "Specify resources to be allocated to workload"
questions:
# Image related
- variable: image
description: "Docker Image Details"
label: "Docker Image"
group: "Container Images"
schema:
type: dict
required: true
attrs:
- variable: repository
description: "Docker image repository"
label: "Image repository"
schema:
type: string
required: true
default: "plexinc/pms-docker"
- variable: tag
description: "Tag to use for specified image"
label: "Image Tag"
schema:
type: string
default: "1.20.2.3402-0fec14d92"
- variable: pullPolicy
description: "Docker Image Pull Policy"
label: "Image Pull Policy"
schema:
type: string
default: "IfNotPresent"
enum:
- value: "IfNotPresent"
description: "Only pull image if not present on host"
- value: "Always"
description: "Always pull image even if present on host"
- value: "Never"
description: "Never pull image even if it's not present on host"
- variable: claimToken
label: "Plex Claim Token"
group: "Plex Configuration"
schema:
type: string
default: ""
- variable: advertiseIp
label: "Plex Advertise IP"
group: "Plex Configuration"
schema:
type: string
- variable: extraEnv
label: "Environment variables for plex"
group: "Plex Configuration"
schema:
type: dict
additional_attrs: true
attrs: []
- variable: proxy
label: "Configure Proxy environment variable"
group: "Plex Configuration"
schema:
type: dict
attrs:
- variable: enabled
label: "Enable Proxy"
schema:
type: boolean
default: false
- variable: http
label: "HTTP Proxy"
schema:
type: string
- variable: https
label: "HTTPS Proxy"
schema:
type: string
- variable: hostNetwork
label: "Configure Host Network"
group: "Networking"
schema:
type: boolean
default: false
# TODO: Add timezone validation $ref
- variable: timezone
label: "Plex container timezone"
group: "Plex Configuration"
schema:
type: string
default: "Etc/UTC"
$ref:
- "definitions/timezone"
# Update strategy
- variable: strategyType
description: "Upgrade Policy"
label: "Update Strategy"
group: "Scaling/Upgrade Policy"
schema:
type: string
default: "Recreate"
enum:
- value: "RollingUpdate"
description: "Create new pods and then kill old ones"
- value: "Recreate"
description: "Kill existing pods before creating new ones"
# Port configuration
- variable: plexServiceTCP
label: "Configure Plex TCP Service"
group: "Networking"
schema:
type: dict
attrs:
- variable: port
label: "Port to expose for Plex UI"
schema:
type: int
min: 9000
max: 65535
default: 32400
- variable: transcodeHostPathEnabled
label: "Configure Host Path for Transcode"
group: "Storage"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: transcodeHostpath
label: "Specify HostPath for Transcode"
group: "Storage"
schema:
type: hostpath
required: true
- variable: transcodeVolume
label: "Configure iXVolume"
group: "Storage"
schema:
type: dict
show_if: [["transcodeHostPathEnabled", "=", false]]
$ref:
- "normalize/ixVolume"
attrs:
- variable: mountPath
label: "Mount Path"
description: "Path where the volume will be mounted inside the pod"
schema:
type: path
editable: false
default: "/transcode"
- variable: datasetName
label: "Dataset Name"
schema:
type: string
default: "ix-plex_transcode"
editable: false
- variable: dataHostPathEnabled
label: "Configure Host Path for Data"
group: "Storage"
schema:
type: boolean
default: false
show_subquestions_if: true
group: "Storage"
subquestions:
- variable: dataHostPath
label: "Specify HostPath for Data"
schema:
type: hostpath
required: true
- variable: dataVolume
label: "Configure data iXVolume"
group: "Storage"
schema:
type: dict
show_if: [["dataHostPathEnabled", "=", false]]
$ref:
- "normalize/ixVolume"
attrs:
- variable: mountPath
label: "Mount Path"
description: "Path where the volume will be mounted inside the pod"
schema:
type: path
editable: false
default: "/data"
- variable: datasetName
label: "Dataset Name"
schema:
type: string
default: "ix-plex_data"
editable: false
- variable: configHostPathEnabled
label: "Configure Host Path for Config"
group: "Storage"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: configHostPath
label: "Specify HostPath for Config"
group: "Storage"
schema:
type: hostpath
required: true
- variable: configVolume
label: "Configure iXVolume"
group: "Storage"
schema:
type: dict
show_if: [["configHostPathEnabled", "=", false]]
$ref:
- "normalize/ixVolume"
attrs:
- variable: mountPath
label: "Mount Path"
description: "Path where the volume will be mounted inside the pod"
schema:
type: path
editable: false
default: "/config"
- variable: datasetName
label: "Dataset Name"
schema:
type: string
default: "ix-plex_config"
editable: false
# Specify GPU configuration
- variable: gpuConfiguration
label: "GPU Configuration"
group: "Resource Reservation"
schema:
type: dict
$ref:
- "definitions/gpuConfiguration"