questions.yaml 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  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. questions:
  31. # Image related
  32. - variable: image
  33. description: "Docker Image Details"
  34. label: "Docker Image"
  35. group: "Container Images"
  36. schema:
  37. type: dict
  38. required: true
  39. attrs:
  40. - variable: repository
  41. description: "Docker image repository"
  42. label: "Image repository"
  43. schema:
  44. type: string
  45. required: true
  46. default: "plexinc/pms-docker"
  47. - variable: tag
  48. description: "Tag to use for specified image"
  49. label: "Image Tag"
  50. schema:
  51. type: string
  52. default: "1.20.2.3402-0fec14d92"
  53. - variable: pullPolicy
  54. description: "Docker Image Pull Policy"
  55. label: "Image Pull Policy"
  56. schema:
  57. type: string
  58. default: "IfNotPresent"
  59. enum:
  60. - value: "IfNotPresent"
  61. description: "Only pull image if not present on host"
  62. - value: "Always"
  63. description: "Always pull image even if present on host"
  64. - value: "Never"
  65. description: "Never pull image even if it's not present on host"
  66. - variable: claimToken
  67. label: "Plex Claim Token"
  68. group: "Plex Configuration"
  69. schema:
  70. type: string
  71. default: ""
  72. - variable: advertiseIp
  73. label: "Plex Advertise IP"
  74. group: "Plex Configuration"
  75. schema:
  76. type: string
  77. - variable: extraEnv
  78. label: "Environment variables for plex"
  79. group: "Plex Configuration"
  80. schema:
  81. type: dict
  82. additional_attrs: true
  83. attrs: []
  84. - variable: proxy
  85. label: "Configure Proxy environment variable"
  86. group: "Plex Configuration"
  87. schema:
  88. type: dict
  89. attrs:
  90. - variable: enabled
  91. label: "Enable Proxy"
  92. schema:
  93. type: boolean
  94. default: false
  95. - variable: http
  96. label: "HTTP Proxy"
  97. schema:
  98. type: string
  99. - variable: https
  100. label: "HTTPS Proxy"
  101. schema:
  102. type: string
  103. - variable: hostNetwork
  104. label: "Configure Host Network"
  105. group: "Networking"
  106. schema:
  107. type: boolean
  108. default: false
  109. # TODO: Add timezone validation $ref
  110. - variable: timezone
  111. label: "Plex container timezone"
  112. group: "Plex Configuration"
  113. schema:
  114. type: string
  115. default: "Etc/UTC"
  116. $ref:
  117. - "definitions/timezone"
  118. # Update strategy
  119. - variable: strategyType
  120. description: "Upgrade Policy"
  121. label: "Update Strategy"
  122. group: "Scaling/Upgrade Policy"
  123. schema:
  124. type: string
  125. default: "Recreate"
  126. enum:
  127. - value: "RollingUpdate"
  128. description: "Create new pods and then kill old ones"
  129. - value: "Recreate"
  130. description: "Kill existing pods before creating new ones"
  131. # Port configuration
  132. - variable: plexServiceTCP
  133. label: "Configure Plex TCP Service"
  134. group: "Networking"
  135. schema:
  136. type: dict
  137. attrs:
  138. - variable: port
  139. label: "Port to expose for Plex UI"
  140. schema:
  141. type: int
  142. min: 9000
  143. max: 65535
  144. default: 32400
  145. - variable: transcodeHostPathEnabled
  146. label: "Configure Host Path for Transcode"
  147. group: "Storage"
  148. schema:
  149. type: boolean
  150. default: false
  151. show_subquestions_if: true
  152. subquestions:
  153. - variable: transcodeHostPath
  154. label: "Specify HostPath for Transcode"
  155. schema:
  156. type: hostpath
  157. required: true
  158. - variable: transcodeVolume
  159. label: "Configure iXVolume"
  160. group: "Storage"
  161. schema:
  162. type: dict
  163. show_if: [["transcodeHostPathEnabled", "=", false]]
  164. $ref:
  165. - "normalize/ixVolume"
  166. attrs:
  167. - variable: mountPath
  168. label: "Mount Path"
  169. description: "Path where the volume will be mounted inside the pod"
  170. schema:
  171. type: path
  172. editable: false
  173. default: "/transcode"
  174. - variable: datasetName
  175. label: "Dataset Name"
  176. schema:
  177. type: string
  178. default: "ix-plex_transcode"
  179. editable: false
  180. - variable: dataHostPathEnabled
  181. label: "Configure Host Path for Data"
  182. group: "Storage"
  183. schema:
  184. type: boolean
  185. default: false
  186. show_subquestions_if: true
  187. subquestions:
  188. - variable: dataHostPath
  189. label: "Specify HostPath for Data"
  190. schema:
  191. type: hostpath
  192. required: true
  193. - variable: dataVolume
  194. label: "Configure data iXVolume"
  195. group: "Storage"
  196. schema:
  197. type: dict
  198. show_if: [["dataHostPathEnabled", "=", false]]
  199. $ref:
  200. - "normalize/ixVolume"
  201. attrs:
  202. - variable: mountPath
  203. label: "Mount Path"
  204. description: "Path where the volume will be mounted inside the pod"
  205. schema:
  206. type: path
  207. editable: false
  208. default: "/data"
  209. - variable: datasetName
  210. label: "Dataset Name"
  211. schema:
  212. type: string
  213. default: "ix-plex_data"
  214. editable: false
  215. - variable: configHostPathEnabled
  216. label: "Configure Host Path for Config"
  217. group: "Storage"
  218. schema:
  219. type: boolean
  220. default: false
  221. show_subquestions_if: true
  222. subquestions:
  223. - variable: configHostPath
  224. label: "Specify HostPath for Config"
  225. schema:
  226. type: hostpath
  227. required: true
  228. - variable: configVolume
  229. label: "Configure iXVolume"
  230. group: "Storage"
  231. schema:
  232. type: dict
  233. show_if: [["configHostPathEnabled", "=", false]]
  234. $ref:
  235. - "normalize/ixVolume"
  236. attrs:
  237. - variable: mountPath
  238. label: "Mount Path"
  239. description: "Path where the volume will be mounted inside the pod"
  240. schema:
  241. type: path
  242. editable: false
  243. default: "/config"
  244. - variable: datasetName
  245. label: "Dataset Name"
  246. schema:
  247. type: string
  248. default: "ix-plex_config"
  249. editable: false
  250. # Specify GPU configuration
  251. - variable: gpuConfiguration
  252. label: "GPU Configuration"
  253. group: "Resource Reservation"
  254. schema:
  255. type: dict
  256. $ref:
  257. - "definitions/gpuConfiguration"