questions.yaml 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. groups:
  2. - name: "Container Images"
  3. description: "Image to be used for container"
  4. - name: "Container Entrypoint"
  5. description: "Configuration of the executable that will be run when the container is started"
  6. - name: "Container Environment Variables"
  7. description: "Set the environment that will be visible to the container"
  8. - name: "Networking"
  9. description: "Configure networking for container"
  10. - name: "Storage"
  11. description: "Persist and share data that is separate from the lifecycle of the container"
  12. - name: "Plex Configuration"
  13. description: "Configure plex deployment"
  14. - name: "Workload Details"
  15. description: "Configure how workload should be deployed"
  16. - name: "Scaling/Upgrade Policy"
  17. description: "Configure how pods are replaced when configuration is upgraded"
  18. - name: "Restart Policy"
  19. description: "Configure when pod should be restarted in case of failure"
  20. - name: "Resource Reservation"
  21. description: "Specify resources to be allocated to workload"
  22. portals:
  23. web_portal:
  24. protocols:
  25. - "http"
  26. host:
  27. - "$node_ip"
  28. ports:
  29. - "$variable-plexServiceTCP.port"
  30. path: "/web"
  31. questions:
  32. # Image related
  33. - variable: image
  34. description: "Docker Image Details"
  35. label: "Docker Image"
  36. group: "Container Images"
  37. schema:
  38. type: dict
  39. required: true
  40. attrs:
  41. - variable: repository
  42. description: "Docker image repository"
  43. label: "Image repository"
  44. schema:
  45. type: string
  46. required: true
  47. default: "plexinc/pms-docker"
  48. - variable: tag
  49. description: "Tag to use for specified image"
  50. label: "Image Tag"
  51. schema:
  52. type: string
  53. default: "1.20.2.3402-0fec14d92"
  54. - variable: pullPolicy
  55. description: "Docker Image Pull Policy"
  56. label: "Image Pull Policy"
  57. schema:
  58. type: string
  59. default: "IfNotPresent"
  60. enum:
  61. - value: "IfNotPresent"
  62. description: "Only pull image if not present on host"
  63. - value: "Always"
  64. description: "Always pull image even if present on host"
  65. - value: "Never"
  66. description: "Never pull image even if it's not present on host"
  67. - variable: claimToken
  68. label: "Plex Claim Token"
  69. group: "Plex Configuration"
  70. description: "The claim token for the server to obtain a real server token. If not provided, server is will not be automatically logged in. If server is already logged in, this parameter is ignored. You can obtain a claim token to login your server to your plex account by visiting https://www.plex.tv/claim."
  71. schema:
  72. type: string
  73. default: ""
  74. - variable: hostNetwork
  75. label: "Configure Host Network"
  76. group: "Networking"
  77. schema:
  78. type: boolean
  79. default: false
  80. - variable: environmentVariables
  81. label: "Environment Variables for Plex"
  82. group: "Plex Configuration"
  83. schema:
  84. type: list
  85. default: []
  86. items:
  87. - variable: environmentVariable
  88. label: "Environment Variable"
  89. schema:
  90. type: dict
  91. attrs:
  92. - variable: name
  93. label: "Name"
  94. schema:
  95. type: string
  96. - variable: value
  97. label: "Value"
  98. schema:
  99. type: string
  100. - variable: timezone
  101. label: "Plex container timezone"
  102. group: "Plex Configuration"
  103. schema:
  104. type: string
  105. default: "Etc/UTC"
  106. $ref:
  107. - "definitions/timezone"
  108. # Update strategy
  109. - variable: updateStrategy
  110. description: "Upgrade Policy"
  111. label: "Update Strategy"
  112. group: "Scaling/Upgrade Policy"
  113. schema:
  114. type: string
  115. default: "Recreate"
  116. enum:
  117. - value: "RollingUpdate"
  118. description: "Create new pods and then kill old ones"
  119. - value: "Recreate"
  120. description: "Kill existing pods before creating new ones"
  121. # Port configuration
  122. - variable: plexServiceTCP
  123. label: "Configure Plex TCP Service"
  124. group: "Networking"
  125. schema:
  126. type: dict
  127. attrs:
  128. - variable: port
  129. label: "Port to expose for Plex UI"
  130. schema:
  131. type: int
  132. min: 9000
  133. max: 65535
  134. default: 32400
  135. # Specify GPU configuration
  136. - variable: gpuConfiguration
  137. label: "GPU Configuration"
  138. group: "Resource Reservation"
  139. schema:
  140. type: dict
  141. $ref:
  142. - "definitions/gpuConfiguration"
  143. - variable: appVolumeMounts
  144. label: "Plex Storage"
  145. group: "Storage"
  146. schema:
  147. type: dict
  148. attrs:
  149. - variable: transcode
  150. label: "Transcode Volume"
  151. schema:
  152. type: dict
  153. attrs:
  154. - variable: datasetName
  155. label: "Plex Transcode Volume Name"
  156. schema:
  157. type: string
  158. $ref:
  159. - "normalize/ixVolume"
  160. show_if: [["hostPathEnabled", "=", false]]
  161. default: "ix-plex_transcode"
  162. hidden: true
  163. editable: false
  164. - variable: mountPath
  165. label: "Plex Transcode Mount Path"
  166. description: "Path where the volume will be mounted inside the pod"
  167. schema:
  168. type: path
  169. hidden: true
  170. editable: false
  171. default: "/transcode"
  172. - variable: hostPathEnabled
  173. label: "Enable Host Path for Plex Transcode Volume"
  174. schema:
  175. type: boolean
  176. default: false
  177. show_subquestions_if: true
  178. subquestions:
  179. - variable: hostPath
  180. label: "Host Path for Plex Transcode Volume"
  181. schema:
  182. type: hostpath
  183. required: true
  184. - variable: data
  185. label: "Data Volume"
  186. schema:
  187. type: dict
  188. attrs:
  189. - variable: datasetName
  190. label: "Plex Data Volume Name"
  191. schema:
  192. type: string
  193. $ref:
  194. - "normalize/ixVolume"
  195. show_if: [["hostPathEnabled", "=", false]]
  196. default: "ix-plex_data"
  197. editable: false
  198. hidden: true
  199. - variable: mountPath
  200. label: "Plex Data Mount Path"
  201. description: "Path where the volume will be mounted inside the pod"
  202. schema:
  203. type: path
  204. hidden: true
  205. editable: false
  206. default: "/data"
  207. - variable: hostPathEnabled
  208. label: "Enable Host Path for Plex Data Volume"
  209. schema:
  210. type: boolean
  211. default: false
  212. show_subquestions_if: true
  213. subquestions:
  214. - variable: hostPath
  215. label: "Host Path for Plex Data Volume"
  216. schema:
  217. type: hostpath
  218. required: true
  219. - variable: config
  220. label: "Config Volume"
  221. schema:
  222. type: dict
  223. attrs:
  224. - variable: datasetName
  225. label: "Plex Config Volume Name"
  226. schema:
  227. type: string
  228. $ref:
  229. - "normalize/ixVolume"
  230. show_if: [["hostPathEnabled", "=", false]]
  231. default: "ix-plex_config"
  232. editable: false
  233. hidden: true
  234. - variable: mountPath
  235. label: "Plex Config Mount Path"
  236. description: "Path where the volume will be mounted inside the pod"
  237. schema:
  238. type: path
  239. editable: false
  240. hidden: true
  241. default: "/config"
  242. - variable: hostPathEnabled
  243. label: "Enable Host Path for Plex Config Volume"
  244. schema:
  245. type: boolean
  246. default: false
  247. show_subquestions_if: true
  248. subquestions:
  249. - variable: hostPath
  250. label: "Host Path for Plex Config Volume"
  251. schema:
  252. type: hostpath
  253. required: true
  254. - variable: shared
  255. label: "Shared Volume"
  256. schema:
  257. type: dict
  258. hidden: true
  259. attrs:
  260. - variable: emptyDir
  261. label: "Temporary Volume"
  262. schema:
  263. type: boolean
  264. default: true
  265. editable: false
  266. - variable: mountPath
  267. label: "Plex Shared Mount Path"
  268. description: "Path where the volume will be mounted inside the pod"
  269. schema:
  270. type: path
  271. editable: false
  272. default: "/shared"
  273. - variable: shared-logs
  274. label: "Shared Logs Volume"
  275. schema:
  276. type: dict
  277. hidden: true
  278. attrs:
  279. - variable: emptyDir
  280. label: "Temporary Volume"
  281. schema:
  282. type: boolean
  283. default: true
  284. editable: false
  285. - variable: mountPath
  286. label: "Plex Shared Logs Mount Path"
  287. description: "Path where the volume will be mounted inside the pod"
  288. schema:
  289. type: path
  290. editable: false
  291. default: "/config/Library/Application Support/Plex Media Server/Logs"