questions.yaml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  1. groups:
  2. - name: "Plex Configuration"
  3. description: "Configure plex deployment"
  4. - name: "Networking"
  5. description: "Configure networking for container"
  6. - name: "Storage"
  7. description: "Persist and share data that is separate from the lifecycle of the container"
  8. - name: "Workload Details"
  9. description: "Configure how workload should be deployed"
  10. - name: "Scaling/Upgrade Policy"
  11. description: "Configure how pods are replaced when configuration is upgraded"
  12. - name: "Restart Policy"
  13. description: "Configure when pod should be restarted in case of failure"
  14. - name: "Resource Reservation"
  15. description: "Specify resources to be allocated to workload"
  16. - name: "Advanced DNS Settings"
  17. description: "Configure DNS settings"
  18. portals:
  19. web_portal:
  20. protocols:
  21. - "http"
  22. host:
  23. - "$node_ip"
  24. ports:
  25. - "$variable-plexServiceTCP.port"
  26. path: "/web"
  27. questions:
  28. - variable: enablePlexPass
  29. label: "Use PlexPass"
  30. group: "Plex Configuration"
  31. schema:
  32. type: boolean
  33. default: false
  34. - variable: dnsConfig
  35. label: "DNS Configuration"
  36. group: "Advanced DNS Settings"
  37. schema:
  38. type: dict
  39. attrs:
  40. - variable: options
  41. label: "DNS Options"
  42. schema:
  43. type: list
  44. items:
  45. - variable: optionsEntry
  46. label: "Option Entry Configuration"
  47. schema:
  48. type: dict
  49. attrs:
  50. - variable: name
  51. label: "Option Name"
  52. schema:
  53. type: string
  54. required: true
  55. - variable: value
  56. label: "Option Value"
  57. schema:
  58. type: string
  59. required: true
  60. - variable: claimToken
  61. label: "Plex Claim Token"
  62. group: "Plex Configuration"
  63. 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."
  64. schema:
  65. type: string
  66. default: ""
  67. - variable: hostNetwork
  68. label: "Configure Host Network"
  69. group: "Networking"
  70. schema:
  71. type: boolean
  72. default: false
  73. - variable: environmentVariables
  74. label: "Environment Variables for Plex"
  75. group: "Plex Configuration"
  76. schema:
  77. type: list
  78. default: []
  79. items:
  80. - variable: environmentVariable
  81. label: "Environment Variable"
  82. schema:
  83. type: dict
  84. attrs:
  85. - variable: name
  86. label: "Name"
  87. schema:
  88. type: string
  89. - variable: value
  90. label: "Value"
  91. schema:
  92. type: string
  93. - variable: timezone
  94. label: "Plex container timezone"
  95. group: "Plex Configuration"
  96. schema:
  97. type: string
  98. default: "Etc/UTC"
  99. $ref:
  100. - "definitions/timezone"
  101. # Update strategy
  102. - variable: updateStrategy
  103. description: "Upgrade Policy"
  104. label: "Update Strategy"
  105. group: "Scaling/Upgrade Policy"
  106. schema:
  107. type: string
  108. default: "Recreate"
  109. enum:
  110. - value: "RollingUpdate"
  111. description: "Create new pods and then kill old ones"
  112. - value: "Recreate"
  113. description: "Kill existing pods before creating new ones"
  114. # Port configuration
  115. - variable: plexServiceTCP
  116. label: "Configure Plex TCP Service"
  117. group: "Networking"
  118. schema:
  119. type: dict
  120. attrs:
  121. - variable: port
  122. label: "Port to expose for Plex UI"
  123. schema:
  124. type: int
  125. min: 9000
  126. max: 65535
  127. default: 32400
  128. # Specify GPU configuration
  129. - variable: gpuConfiguration
  130. label: "GPU Configuration"
  131. group: "Resource Reservation"
  132. schema:
  133. type: dict
  134. $ref:
  135. - "definitions/gpuConfiguration"
  136. attrs: []
  137. - variable: appVolumeMounts
  138. label: "Plex Storage"
  139. group: "Storage"
  140. schema:
  141. type: dict
  142. attrs:
  143. - variable: transcode
  144. label: "Transcode Volume"
  145. schema:
  146. type: dict
  147. attrs:
  148. - variable: datasetName
  149. label: "Plex Transcode Volume Name"
  150. schema:
  151. type: string
  152. $ref:
  153. - "normalize/ixVolume"
  154. show_if: [["hostPathEnabled", "=", false]]
  155. default: "ix-plex_transcode"
  156. hidden: true
  157. editable: false
  158. - variable: mountPath
  159. label: "Plex Transcode Mount Path"
  160. description: "Path where the volume will be mounted inside the pod"
  161. schema:
  162. type: path
  163. hidden: true
  164. editable: false
  165. default: "/transcode"
  166. - variable: hostPathEnabled
  167. label: "Enable Host Path for Plex Transcode Volume"
  168. schema:
  169. type: boolean
  170. default: false
  171. show_subquestions_if: true
  172. subquestions:
  173. - variable: hostPath
  174. label: "Host Path for Plex Transcode Volume"
  175. schema:
  176. type: hostpath
  177. required: true
  178. $ref:
  179. - "validations/hostPath"
  180. - variable: data
  181. label: "Data Volume"
  182. schema:
  183. type: dict
  184. attrs:
  185. - variable: datasetName
  186. label: "Plex Data Volume Name"
  187. schema:
  188. type: string
  189. $ref:
  190. - "normalize/ixVolume"
  191. show_if: [["hostPathEnabled", "=", false]]
  192. default: "ix-plex_data"
  193. editable: false
  194. hidden: true
  195. - variable: mountPath
  196. label: "Plex Data Mount Path"
  197. description: "Path where the volume will be mounted inside the pod"
  198. schema:
  199. type: path
  200. hidden: true
  201. editable: false
  202. default: "/data"
  203. - variable: hostPathEnabled
  204. label: "Enable Host Path for Plex Data Volume"
  205. schema:
  206. type: boolean
  207. default: false
  208. show_subquestions_if: true
  209. subquestions:
  210. - variable: hostPath
  211. label: "Host Path for Plex Data Volume"
  212. schema:
  213. type: hostpath
  214. required: true
  215. $ref:
  216. - "validations/hostPath"
  217. - variable: config
  218. label: "Config Volume"
  219. schema:
  220. type: dict
  221. attrs:
  222. - variable: datasetName
  223. label: "Plex Config Volume Name"
  224. schema:
  225. type: string
  226. $ref:
  227. - "normalize/ixVolume"
  228. show_if: [["hostPathEnabled", "=", false]]
  229. default: "ix-plex_config"
  230. editable: false
  231. hidden: true
  232. - variable: mountPath
  233. label: "Plex Config Mount Path"
  234. description: "Path where the volume will be mounted inside the pod"
  235. schema:
  236. type: path
  237. editable: false
  238. hidden: true
  239. default: "/config"
  240. - variable: hostPathEnabled
  241. label: "Enable Host Path for Plex Config Volume"
  242. schema:
  243. type: boolean
  244. default: false
  245. show_subquestions_if: true
  246. subquestions:
  247. - variable: hostPath
  248. label: "Host Path for Plex Config Volume"
  249. schema:
  250. type: hostpath
  251. required: true
  252. $ref:
  253. - "validations/hostPath"
  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"
  292. - variable: extraAppVolumeMounts
  293. label: "Plex Extra Host Path Volumes"
  294. group: "Storage"
  295. schema:
  296. type: list
  297. items:
  298. - variable: extraAppVolume
  299. label: "Plex Host Path Volume"
  300. description: "Add an extra host path volume for plex application"
  301. schema:
  302. type: dict
  303. attrs:
  304. - variable: mountPath
  305. label: "Mount Path in Pod"
  306. description: "Path where the volume will be mounted inside the pod"
  307. schema:
  308. type: path
  309. required: true
  310. - variable: hostPath
  311. label: "Host Path"
  312. description: "Host path"
  313. schema:
  314. type: hostpath
  315. required: true
  316. - variable: readOnly
  317. label: "Read Only"
  318. description: "Mount hostpath in read-only mode"
  319. schema:
  320. type: boolean
  321. default: false