questions.yaml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  1. groups:
  2. - name: netboot.xyz Configuration
  3. description: Configure netboot.xyz.
  4. - name: Network Configuration
  5. description: Configure Network for netboot.xyz.
  6. - name: Storage Configuration
  7. description: Configure Storage for netboot.xyz
  8. - name: Resources Configuration
  9. description: Configure Resources for netboot.xyz
  10. portals:
  11. web_portal:
  12. protocols:
  13. - "$kubernetes-resource_configmap_portal_protocol"
  14. host:
  15. - "$kubernetes-resource_configmap_portal_host"
  16. ports:
  17. - "$kubernetes-resource_configmap_portal_port"
  18. path: "$kubernetes-resource_configmap_portal_path"
  19. questions:
  20. - variable: TZ
  21. group: netboot.xyz Configuration
  22. label: Timezone
  23. schema:
  24. type: string
  25. default: Etc/UTC
  26. required: true
  27. $ref:
  28. - definitions/timezone
  29. - variable: netbootConfig
  30. label: ""
  31. group: netboot.xyz Configuration
  32. schema:
  33. type: dict
  34. attrs:
  35. - variable: tftpdOpts
  36. label: TFTPD Options
  37. description: |
  38. Additional TFTPD options.
  39. schema:
  40. type: list
  41. default: []
  42. items:
  43. - variable: option
  44. label: Option
  45. schema:
  46. type: string
  47. required: true
  48. - variable: additionalEnvs
  49. label: Additional Environment Variables
  50. description: Configure additional environment variables for netboot.xyz.
  51. schema:
  52. type: list
  53. default: []
  54. items:
  55. - variable: env
  56. label: Environment Variable
  57. schema:
  58. type: dict
  59. attrs:
  60. - variable: name
  61. label: Name
  62. schema:
  63. type: string
  64. required: true
  65. - variable: value
  66. label: Value
  67. schema:
  68. type: string
  69. required: true
  70. - variable: netbootNetwork
  71. label: ""
  72. group: Network Configuration
  73. schema:
  74. type: dict
  75. attrs:
  76. - variable: hostNetwork
  77. label: Host Network
  78. description: |
  79. Bind to the host network. </br>
  80. Required for TFTP.
  81. schema:
  82. type: boolean
  83. default: true
  84. - variable: tftpPort
  85. label: TFTP Port
  86. description: The TFTP port for netboot.xyz.
  87. schema:
  88. show_if: [["hostNetwork", "=", false]]
  89. type: int
  90. default: 31009
  91. min: 9000
  92. max: 65535
  93. required: true
  94. - variable: webHttpPort
  95. label: Portal HTTP Port
  96. description: The HTTP port for the netboot.xyz Portal.
  97. schema:
  98. type: int
  99. default: 31010
  100. min: 9000
  101. max: 65535
  102. required: true
  103. - variable: webAssetsPort
  104. label: Assets Port
  105. description: The Assets port for the netboot.xyz, configures the NGINX_PORT variable on the container.
  106. schema:
  107. type: int
  108. default: 31011
  109. min: 9000
  110. max: 65535
  111. required: true
  112. - variable: netbootStorage
  113. label: ""
  114. group: Storage Configuration
  115. schema:
  116. type: dict
  117. attrs:
  118. - variable: config
  119. label: netboot.xyz Config Storage
  120. description: The path to store netboot.xyz configuration.
  121. schema:
  122. type: dict
  123. attrs:
  124. - variable: type
  125. label: Type
  126. description: |
  127. ixVolume: Is dataset created automatically by the system.</br>
  128. Host Path: Is a path that already exists on the system.
  129. schema:
  130. type: string
  131. required: true
  132. immutable: true
  133. default: "ixVolume"
  134. enum:
  135. - value: "hostPath"
  136. description: Host Path (Path that already exists on the system)
  137. - value: "ixVolume"
  138. description: ixVolume (Dataset created automatically by the system)
  139. - variable: ixVolumeConfig
  140. label: ixVolume Configuration
  141. description: The configuration for the ixVolume dataset.
  142. schema:
  143. type: dict
  144. show_if: [["type", "=", "ixVolume"]]
  145. $ref:
  146. - "normalize/ixVolume"
  147. attrs:
  148. - variable: aclEnable
  149. label: Enable ACL
  150. description: Enable ACL for the dataset.
  151. schema:
  152. type: boolean
  153. default: false
  154. - variable: datasetName
  155. label: Dataset Name
  156. description: The name of the dataset to use for storage.
  157. schema:
  158. type: string
  159. required: true
  160. immutable: true
  161. hidden: true
  162. default: "config"
  163. - variable: aclEntries
  164. label: ACL Configuration
  165. schema:
  166. type: dict
  167. show_if: [["aclEnable", "=", true]]
  168. attrs: []
  169. - variable: hostPathConfig
  170. label: Host Path Configuration
  171. schema:
  172. type: dict
  173. show_if: [["type", "=", "hostPath"]]
  174. attrs:
  175. - variable: aclEnable
  176. label: Enable ACL
  177. description: Enable ACL for the dataset.
  178. schema:
  179. type: boolean
  180. default: false
  181. - variable: acl
  182. label: ACL Configuration
  183. schema:
  184. type: dict
  185. show_if: [["aclEnable", "=", true]]
  186. attrs: []
  187. $ref:
  188. - "normalize/acl"
  189. - variable: hostPath
  190. label: Host Path
  191. description: The host path to use for storage.
  192. schema:
  193. type: hostpath
  194. show_if: [["aclEnable", "=", false]]
  195. required: true
  196. - variable: assets
  197. label: netboot.xyz Assets Storage
  198. description: The path to store netboot.xyz assets.
  199. schema:
  200. type: dict
  201. attrs:
  202. - variable: type
  203. label: Type
  204. description: |
  205. ixVolume: Is dataset created automatically by the system.</br>
  206. Host Path: Is a path that already exists on the system.
  207. schema:
  208. type: string
  209. required: true
  210. immutable: true
  211. default: "ixVolume"
  212. enum:
  213. - value: "hostPath"
  214. description: Host Path (Path that already exists on the system)
  215. - value: "ixVolume"
  216. description: ixVolume (Dataset created automatically by the system)
  217. - variable: ixVolumeConfig
  218. label: ixVolume Configuration
  219. description: The configuration for the ixVolume dataset.
  220. schema:
  221. type: dict
  222. show_if: [["type", "=", "ixVolume"]]
  223. $ref:
  224. - "normalize/ixVolume"
  225. attrs:
  226. - variable: aclEnable
  227. label: Enable ACL
  228. description: Enable ACL for the dataset.
  229. schema:
  230. type: boolean
  231. default: false
  232. - variable: datasetName
  233. label: Dataset Name
  234. description: The name of the dataset to use for storage.
  235. schema:
  236. type: string
  237. required: true
  238. immutable: true
  239. hidden: true
  240. default: "assets"
  241. - variable: aclEntries
  242. label: ACL Configuration
  243. schema:
  244. type: dict
  245. show_if: [["aclEnable", "=", true]]
  246. attrs: []
  247. - variable: hostPathConfig
  248. label: Host Path Configuration
  249. schema:
  250. type: dict
  251. show_if: [["type", "=", "hostPath"]]
  252. attrs:
  253. - variable: aclEnable
  254. label: Enable ACL
  255. description: Enable ACL for the dataset.
  256. schema:
  257. type: boolean
  258. default: false
  259. - variable: acl
  260. label: ACL Configuration
  261. schema:
  262. type: dict
  263. show_if: [["aclEnable", "=", true]]
  264. attrs: []
  265. $ref:
  266. - "normalize/acl"
  267. - variable: hostPath
  268. label: Host Path
  269. description: The host path to use for storage.
  270. schema:
  271. type: hostpath
  272. show_if: [["aclEnable", "=", false]]
  273. required: true
  274. - variable: resources
  275. group: Resources Configuration
  276. label: ""
  277. schema:
  278. type: dict
  279. attrs:
  280. - variable: limits
  281. label: Limits
  282. schema:
  283. type: dict
  284. attrs:
  285. - variable: cpu
  286. label: CPU
  287. description: CPU limit for netboot.xyz.
  288. schema:
  289. type: string
  290. max_length: 6
  291. valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$'
  292. valid_chars_error: |
  293. Valid CPU limit formats are</br>
  294. - Plain Integer - eg. 1</br>
  295. - Float - eg. 0.5</br>
  296. - Milicpu - eg. 500m
  297. default: "4000m"
  298. required: true
  299. - variable: memory
  300. label: Memory
  301. description: Memory limit for netboot.xyz.
  302. schema:
  303. type: string
  304. max_length: 12
  305. valid_chars: '^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$'
  306. valid_chars_error: |
  307. Valid Memory limit formats are</br>
  308. - Suffixed with E/P/T/G/M/K - eg. 1G</br>
  309. - Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi</br>
  310. - Plain Integer in bytes - eg. 1024</br>
  311. - Exponent - eg. 134e6
  312. default: "8Gi"
  313. required: true