questions.yaml 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. groups:
  2. - name: "Configuration"
  3. description: "Qbittorent application configuration"
  4. - name: "Storage"
  5. description: "Configure storage for qbittorent"
  6. - name: "Networking"
  7. description: "Networking Configuration for qbittorent"
  8. - name: "Advanced DNS Settings"
  9. description: "Configure DNS settings"
  10. - name: "Resource Limits"
  11. description: "Set CPU/memory limits for Kubernetes Pod"
  12. portals:
  13. web_portal:
  14. protocols:
  15. - "http"
  16. host:
  17. - "$node_ip"
  18. ports:
  19. - "$variable-web_port"
  20. path: "/"
  21. questions:
  22. - variable: web_port
  23. label: "Web Port for qbittorent"
  24. group: Networking
  25. schema:
  26. type: int
  27. min: 8000
  28. max: 65535
  29. default: 20909
  30. required: true
  31. - variable: tcp_port
  32. label: "TCP Port for qbittorent"
  33. group: Networking
  34. schema:
  35. type: int
  36. min: 8000
  37. max: 65535
  38. default: 20988
  39. required: true
  40. - variable: udp_port
  41. label: "UDP Port for qbittorent"
  42. group: Networking
  43. schema:
  44. type: int
  45. min: 8000
  46. max: 65535
  47. default: 20989
  48. required: true
  49. - variable: dnsConfig
  50. label: "DNS Configuration"
  51. group: "Advanced DNS Settings"
  52. schema:
  53. type: dict
  54. attrs:
  55. - variable: options
  56. label: "DNS Options"
  57. schema:
  58. type: list
  59. items:
  60. - variable: optionsEntry
  61. label: "Option Entry Configuration"
  62. schema:
  63. type: dict
  64. attrs:
  65. - variable: name
  66. label: "Option Name"
  67. schema:
  68. type: string
  69. required: true
  70. - variable: value
  71. label: "Option Value"
  72. schema:
  73. type: string
  74. required: true
  75. - variable: ownerUID
  76. label: "Owner User ID"
  77. group: Configuration
  78. schema:
  79. type: int
  80. default: 568
  81. min: 1
  82. max: 65535
  83. - variable: ownerGID
  84. label: "Owner Group ID"
  85. group: Configuration
  86. schema:
  87. type: int
  88. default: 568
  89. min: 1
  90. max: 65535
  91. - variable: timezone
  92. label: "Timezone"
  93. group: "Configuration"
  94. schema:
  95. type: string
  96. $ref:
  97. - "definitions/timezone"
  98. - variable: environmentVariables
  99. label: "Qbittorent environment"
  100. group: "Configuration"
  101. schema:
  102. type: list
  103. default: [ ]
  104. items:
  105. - variable: environmentVariable
  106. label: "Environment Variable"
  107. schema:
  108. type: dict
  109. attrs:
  110. - variable: name
  111. label: "Name"
  112. schema:
  113. type: string
  114. - variable: value
  115. label: "Value"
  116. schema:
  117. type: string
  118. - variable: appVolumeMounts
  119. label: "Qbittorent Storage"
  120. group: "Storage"
  121. schema:
  122. type: dict
  123. attrs:
  124. - variable: config
  125. label: "Configuration Volume"
  126. schema:
  127. type: dict
  128. attrs:
  129. - variable: datasetName
  130. label: "Configuration Volume Dataset Name"
  131. schema:
  132. type: string
  133. hidden: true
  134. $ref:
  135. - "normalize/ixVolume"
  136. show_if: [["hostPathEnabled", "=", false]]
  137. default: "ix-qbittorent_config"
  138. editable: false
  139. - variable: mountPath
  140. label: "Configuration Mount Path"
  141. description: "Path where the volume will be mounted inside the pod"
  142. schema:
  143. type: path
  144. hidden: true
  145. editable: true
  146. default: "/config"
  147. - variable: hostPathEnabled
  148. label: "Enable Custom Host Path for Qbittorent Configuration Volume"
  149. schema:
  150. type: boolean
  151. default: false
  152. show_subquestions_if: true
  153. subquestions:
  154. - variable: hostPath
  155. label: "Host Path for Qbittorent Configuration Volume"
  156. schema:
  157. type: hostpath
  158. required: true
  159. - variable: downloads
  160. label: "Downloads Volume"
  161. schema:
  162. type: dict
  163. attrs:
  164. - variable: datasetName
  165. label: "Downloads Volume Dataset Name"
  166. schema:
  167. type: string
  168. hidden: true
  169. $ref:
  170. - "normalize/ixVolume"
  171. show_if: [["hostPathEnabled", "=", false]]
  172. default: "ix-qbittorent_data"
  173. editable: false
  174. - variable: mountPath
  175. label: "Downloads Mount Path"
  176. description: "Path where the volume will be mounted inside the pod"
  177. schema:
  178. type: path
  179. hidden: true
  180. editable: true
  181. default: "/downloads"
  182. - variable: hostPathEnabled
  183. label: "Enable Custom Host Path for Qbittorent Downloads Volume"
  184. schema:
  185. type: boolean
  186. default: false
  187. show_subquestions_if: true
  188. subquestions:
  189. - variable: hostPath
  190. label: "Host Path for Qbittorent Downloads Volume"
  191. schema:
  192. type: hostpath
  193. required: true
  194. - variable: extraAppVolumeMounts
  195. label: "Extra Host Path Volumes"
  196. group: "Storage"
  197. schema:
  198. type: list
  199. items:
  200. - variable: extraAppVolume
  201. label: "Host Path Volume"
  202. description: "Add an extra host path volume for Qbittorent application"
  203. schema:
  204. type: dict
  205. attrs:
  206. - variable: mountPath
  207. label: "Mount Path in Pod"
  208. description: "Path where the volume will be mounted inside the pod"
  209. schema:
  210. type: path
  211. required: true
  212. - variable: hostPath
  213. label: "Host Path"
  214. description: "Host path"
  215. schema:
  216. type: hostpath
  217. required: true
  218. - variable: enableResourceLimits
  219. label: "Enable Pod resource limits"
  220. group: "Resource Limits"
  221. schema:
  222. type: boolean
  223. default: false
  224. - variable: cpuLimit
  225. label: "CPU Limresource limitsit"
  226. description: "CPU resource limit allow plain integer values with suffix m(milli) e.g 1000m, 100."
  227. group: "Resource Limits"
  228. schema:
  229. type: string
  230. show_if: [["enableResourceLimits", "=", true]]
  231. valid_chars: "^\\d+(?:\\.\\d+(?!.*m$)|m?$)"
  232. default: "4000m"
  233. - variable: memLimit
  234. label: "Memory Limit"
  235. group: "Resource Limits"
  236. description: "Memory limits is specified by number of bytes. Followed by quantity suffix like E,P,T,G,M,k and Ei,Pi,Ti,Mi,Gi,Ki can also be used. e.g 129e6, 129M, 128974848000m, 123Mi"
  237. schema:
  238. type: string
  239. show_if: [["enableResourceLimits", "=", true]]
  240. valid_chars: "^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
  241. default: "8Gi"