questions.yaml 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392
  1. groups:
  2. - name: TFTPD Configuration
  3. description: Configure TFTPD
  4. - name: Network Configuration
  5. description: Configure Network for TFTPD
  6. - name: Storage Configuration
  7. description: Configure Storage for TFTPD
  8. - name: Labels Configuration
  9. description: Configure Labels for TFTPD
  10. - name: Resources Configuration
  11. description: Configure Resources for TFTPD
  12. questions:
  13. - variable: TZ
  14. label: Timezone
  15. group: TFTPD Configuration
  16. schema:
  17. type: string
  18. default: Etc/UTC
  19. required: true
  20. $ref:
  21. - definitions/timezone
  22. - variable: tftpd
  23. label: ""
  24. group: TFTPD Configuration
  25. schema:
  26. type: dict
  27. attrs:
  28. - variable: allow_create
  29. label: Allow Create
  30. description: Allow creation of files.
  31. schema:
  32. type: boolean
  33. default: false
  34. - variable: additional_envs
  35. label: Additional Environment Variables
  36. schema:
  37. type: list
  38. default: []
  39. items:
  40. - variable: env
  41. label: Environment Variable
  42. schema:
  43. type: dict
  44. attrs:
  45. - variable: name
  46. label: Name
  47. schema:
  48. type: string
  49. required: true
  50. - variable: value
  51. label: Value
  52. schema:
  53. type: string
  54. - variable: network
  55. label: ""
  56. group: Network Configuration
  57. schema:
  58. type: dict
  59. attrs:
  60. - variable: tftp_port
  61. label: TFTP Port
  62. schema:
  63. type: dict
  64. show_if: [["host_network", "=", false]]
  65. attrs:
  66. - variable: bind_mode
  67. label: Port Bind Mode
  68. description: |
  69. The port bind mode.</br>
  70. - Publish: The port will be published on the host for external access.</br>
  71. - Expose: The port will be exposed for inter-container communication.</br>
  72. - None: The port will not be exposed or published.</br>
  73. Note: If the Dockerfile defines an EXPOSE directive,
  74. the port will still be exposed for inter-container communication regardless of this setting.
  75. schema:
  76. type: string
  77. default: "published"
  78. enum:
  79. - value: "published"
  80. description: Publish port on the host for external access
  81. - value: "exposed"
  82. description: Expose port for inter-container communication
  83. - value: ""
  84. description: None
  85. - variable: port_number
  86. label: Port Number
  87. schema:
  88. type: int
  89. show_if: [["bind_mode", "=", "published"]]
  90. default: 30031
  91. min: 1
  92. max: 65535
  93. required: true
  94. - variable: host_ips
  95. label: Host IPs
  96. description: IPs on the host to bind this port
  97. schema:
  98. type: list
  99. show_if: [["bind_mode", "=", "published"]]
  100. default: []
  101. items:
  102. - variable: host_ip
  103. label: Host IP
  104. schema:
  105. type: string
  106. required: true
  107. $ref:
  108. - definitions/node_bind_ip
  109. - variable: host_network
  110. label: Host Network
  111. description: |
  112. Bind to the host network. It's recommended to keep this disabled.
  113. schema:
  114. type: boolean
  115. default: true
  116. - variable: storage
  117. label: ""
  118. group: Storage Configuration
  119. schema:
  120. type: dict
  121. attrs:
  122. - variable: tftpboot
  123. label: TFTPD tftpboot Storage
  124. description: The path to store TFTPD tftpboot.
  125. schema:
  126. type: dict
  127. attrs:
  128. - variable: type
  129. label: Type
  130. description: |
  131. ixVolume: Is dataset created automatically by the system.</br>
  132. Host Path: Is a path that already exists on the system.
  133. schema:
  134. type: string
  135. required: true
  136. default: "ix_volume"
  137. enum:
  138. - value: "host_path"
  139. description: Host Path (Path that already exists on the system)
  140. - value: "ix_volume"
  141. description: ixVolume (Dataset created automatically by the system)
  142. - variable: ix_volume_config
  143. label: ixVolume Configuration
  144. description: The configuration for the ixVolume dataset.
  145. schema:
  146. type: dict
  147. show_if: [["type", "=", "ix_volume"]]
  148. $ref:
  149. - "normalize/ix_volume"
  150. attrs:
  151. - variable: acl_enable
  152. label: Enable ACL
  153. description: Enable ACL for the storage.
  154. schema:
  155. type: boolean
  156. default: false
  157. - variable: dataset_name
  158. label: Dataset Name
  159. description: The name of the dataset to use for storage.
  160. schema:
  161. type: string
  162. required: true
  163. hidden: true
  164. default: "tftpboot"
  165. - variable: acl_entries
  166. label: ACL Configuration
  167. schema:
  168. type: dict
  169. show_if: [["acl_enable", "=", true]]
  170. attrs: []
  171. - variable: host_path_config
  172. label: Host Path Configuration
  173. schema:
  174. type: dict
  175. show_if: [["type", "=", "host_path"]]
  176. attrs:
  177. - variable: acl_enable
  178. label: Enable ACL
  179. description: Enable ACL for the storage.
  180. schema:
  181. type: boolean
  182. default: false
  183. - variable: acl
  184. label: ACL Configuration
  185. schema:
  186. type: dict
  187. show_if: [["acl_enable", "=", true]]
  188. attrs: []
  189. $ref:
  190. - "normalize/acl"
  191. - variable: path
  192. label: Host Path
  193. description: The host path to use for storage.
  194. schema:
  195. type: hostpath
  196. show_if: [["acl_enable", "=", false]]
  197. required: true
  198. - variable: additional_storage
  199. label: Additional Storage
  200. schema:
  201. type: list
  202. default: []
  203. items:
  204. - variable: storageEntry
  205. label: Storage Entry
  206. schema:
  207. type: dict
  208. attrs:
  209. - variable: type
  210. label: Type
  211. description: |
  212. ixVolume: Is dataset created automatically by the system.</br>
  213. Host Path: Is a path that already exists on the system.</br>
  214. SMB Share: Is a SMB share that is mounted to as a volume.
  215. schema:
  216. type: string
  217. required: true
  218. default: "ix_volume"
  219. enum:
  220. - value: "host_path"
  221. description: Host Path (Path that already exists on the system)
  222. - value: "ix_volume"
  223. description: ixVolume (Dataset created automatically by the system)
  224. - value: "cifs"
  225. description: SMB/CIFS Share (Mounts a volume to a SMB share)
  226. - variable: read_only
  227. label: Read Only
  228. description: Mount the volume as read only.
  229. schema:
  230. type: boolean
  231. default: false
  232. - variable: mount_path
  233. label: Mount Path
  234. description: The path inside the container to mount the storage.
  235. schema:
  236. type: path
  237. required: true
  238. - variable: host_path_config
  239. label: Host Path Configuration
  240. schema:
  241. type: dict
  242. show_if: [["type", "=", "host_path"]]
  243. attrs:
  244. - variable: acl_enable
  245. label: Enable ACL
  246. description: Enable ACL for the storage.
  247. schema:
  248. type: boolean
  249. default: false
  250. - variable: acl
  251. label: ACL Configuration
  252. schema:
  253. type: dict
  254. show_if: [["acl_enable", "=", true]]
  255. attrs: []
  256. $ref:
  257. - "normalize/acl"
  258. - variable: path
  259. label: Host Path
  260. description: The host path to use for storage.
  261. schema:
  262. type: hostpath
  263. show_if: [["acl_enable", "=", false]]
  264. required: true
  265. - variable: ix_volume_config
  266. label: ixVolume Configuration
  267. description: The configuration for the ixVolume dataset.
  268. schema:
  269. type: dict
  270. show_if: [["type", "=", "ix_volume"]]
  271. $ref:
  272. - "normalize/ix_volume"
  273. attrs:
  274. - variable: acl_enable
  275. label: Enable ACL
  276. description: Enable ACL for the storage.
  277. schema:
  278. type: boolean
  279. default: false
  280. - variable: dataset_name
  281. label: Dataset Name
  282. description: The name of the dataset to use for storage.
  283. schema:
  284. type: string
  285. required: true
  286. default: "storage_entry"
  287. - variable: acl_entries
  288. label: ACL Configuration
  289. schema:
  290. type: dict
  291. show_if: [["acl_enable", "=", true]]
  292. attrs: []
  293. - variable: cifs_config
  294. label: SMB Configuration
  295. description: The configuration for the SMB dataset.
  296. schema:
  297. type: dict
  298. show_if: [["type", "=", "cifs"]]
  299. attrs:
  300. - variable: server
  301. label: Server
  302. description: The server to mount the SMB share.
  303. schema:
  304. type: string
  305. required: true
  306. - variable: path
  307. label: Path
  308. description: The path to mount the SMB share.
  309. schema:
  310. type: string
  311. required: true
  312. - variable: username
  313. label: Username
  314. description: The username to use for the SMB share.
  315. schema:
  316. type: string
  317. required: true
  318. - variable: password
  319. label: Password
  320. description: The password to use for the SMB share.
  321. schema:
  322. type: string
  323. required: true
  324. private: true
  325. - variable: domain
  326. label: Domain
  327. description: The domain to use for the SMB share.
  328. schema:
  329. type: string
  330. - variable: labels
  331. label: ""
  332. group: Labels Configuration
  333. schema:
  334. type: list
  335. default: []
  336. items:
  337. - variable: label
  338. label: Label
  339. schema:
  340. type: dict
  341. attrs:
  342. - variable: key
  343. label: Key
  344. schema:
  345. type: string
  346. required: true
  347. - variable: value
  348. label: Value
  349. schema:
  350. type: string
  351. required: true
  352. - variable: containers
  353. label: Containers
  354. description: Containers where the label should be applied
  355. schema:
  356. type: list
  357. items:
  358. - variable: container
  359. label: Container
  360. schema:
  361. type: string
  362. required: true
  363. enum:
  364. - value: tftpd
  365. description: tftpd
  366. - variable: resources
  367. label: ""
  368. group: Resources Configuration
  369. schema:
  370. type: dict
  371. attrs:
  372. - variable: limits
  373. label: Limits
  374. schema:
  375. type: dict
  376. attrs:
  377. - variable: cpus
  378. label: CPUs
  379. description: CPUs limit for TFTPD.
  380. schema:
  381. type: int
  382. default: 2
  383. required: true
  384. - variable: memory
  385. label: Memory (in MB)
  386. description: Memory limit for TFTPD.
  387. schema:
  388. type: int
  389. default: 4096
  390. required: true