questions.yaml 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495
  1. groups:
  2. - name: I2P Configuration
  3. description: Configure I2P
  4. - name: Network Configuration
  5. description: Configure Network for I2P
  6. - name: Storage Configuration
  7. description: Configure Storage for I2P
  8. - name: Labels Configuration
  9. description: Configure Labels for I2P
  10. - name: Resources Configuration
  11. description: Configure Resources for I2P
  12. questions:
  13. - variable: TZ
  14. group: I2P Configuration
  15. label: Timezone
  16. schema:
  17. type: string
  18. default: Etc/UTC
  19. required: true
  20. $ref:
  21. - definitions/timezone
  22. - variable: network
  23. label: ""
  24. group: Network Configuration
  25. schema:
  26. type: dict
  27. attrs:
  28. - variable: router_console_port
  29. label: I2P Router Console Port
  30. schema:
  31. type: dict
  32. attrs:
  33. - variable: bind_mode
  34. label: Port Bind Mode
  35. schema:
  36. type: string
  37. default: "published"
  38. enum:
  39. - value: "published"
  40. description: Publish port on the host for external access
  41. - value: "exposed"
  42. description: Expose port for inter-container communication
  43. - value: ""
  44. description: None
  45. - variable: port_number
  46. label: Port Number
  47. schema:
  48. type: int
  49. show_if: [["bind_mode", "=", "published"]]
  50. default: 7657
  51. min: 1
  52. max: 65535
  53. required: true
  54. - variable: host_ips
  55. label: Host IPs
  56. description: IPs on the host to bind this port
  57. schema:
  58. type: list
  59. show_if: [["bind_mode", "=", "published"]]
  60. default: []
  61. items:
  62. - variable: host_ip
  63. label: Host IP
  64. schema:
  65. type: string
  66. required: true
  67. $ref:
  68. - definitions/node_bind_ip
  69. - variable: http_proxy_port
  70. label: I2P HTTP Proxy Port
  71. schema:
  72. type: dict
  73. attrs:
  74. - variable: bind_mode
  75. label: Port Bind Mode
  76. schema:
  77. type: string
  78. default: "published"
  79. enum:
  80. - value: "published"
  81. description: Publish port on the host for external access
  82. - value: "exposed"
  83. description: Expose port for inter-container communication
  84. - value: ""
  85. description: None
  86. - variable: port_number
  87. label: Port Number
  88. schema:
  89. type: int
  90. show_if: [["bind_mode", "=", "published"]]
  91. default: 4444
  92. min: 1
  93. max: 65535
  94. required: true
  95. - variable: host_ips
  96. label: Host IPs
  97. description: IPs on the host to bind this port
  98. schema:
  99. type: list
  100. show_if: [["bind_mode", "=", "published"]]
  101. default: []
  102. items:
  103. - variable: host_ip
  104. label: Host IP
  105. schema:
  106. type: string
  107. required: true
  108. $ref:
  109. - definitions/node_bind_ip
  110. - variable: https_proxy_port
  111. label: I2P HTTPS Proxy Port
  112. schema:
  113. type: dict
  114. attrs:
  115. - variable: bind_mode
  116. label: Port Bind Mode
  117. schema:
  118. type: string
  119. default: "published"
  120. enum:
  121. - value: "published"
  122. description: Publish port on the host for external access
  123. - value: "exposed"
  124. description: Expose port for inter-container communication
  125. - value: ""
  126. description: None
  127. - variable: port_number
  128. label: Port Number
  129. schema:
  130. type: int
  131. show_if: [["bind_mode", "=", "published"]]
  132. default: 4445
  133. min: 1
  134. max: 65535
  135. required: true
  136. - variable: host_ips
  137. label: Host IPs
  138. description: IPs on the host to bind this port
  139. schema:
  140. type: list
  141. show_if: [["bind_mode", "=", "published"]]
  142. default: []
  143. items:
  144. - variable: host_ip
  145. label: Host IP
  146. schema:
  147. type: string
  148. required: true
  149. $ref:
  150. - definitions/node_bind_ip
  151. - variable: additional_ports
  152. label: Additional Ports
  153. schema:
  154. type: list
  155. items:
  156. - variable: port
  157. label: Port
  158. schema:
  159. type: dict
  160. attrs:
  161. - variable: bind_mode
  162. label: Port Bind Mode
  163. description: |
  164. The port bind mode.</br>
  165. - Publish: The port will be published on the host for external access.</br>
  166. - Expose: The port will be exposed for inter-container communication.</br>
  167. schema:
  168. type: string
  169. default: "published"
  170. enum:
  171. - value: "published"
  172. description: Publish port on the host for external access
  173. - value: "exposed"
  174. description: Expose port for inter-container communication
  175. - variable: port_number
  176. label: Port Number
  177. schema:
  178. type: int
  179. min: 1
  180. max: 65535
  181. required: true
  182. - variable: container_port
  183. label: Container Port
  184. schema:
  185. type: int
  186. min: 1
  187. max: 65535
  188. required: true
  189. - variable: protocol
  190. label: Protocol
  191. schema:
  192. type: string
  193. required: true
  194. default: "tcp"
  195. enum:
  196. - value: "tcp"
  197. description: TCP
  198. - value: "udp"
  199. description: UDP
  200. - variable: host_ips
  201. label: Host IPs
  202. description: IPs on the host to bind this port
  203. schema:
  204. type: list
  205. show_if: [["bind_mode", "=", "published"]]
  206. default: []
  207. items:
  208. - variable: host_ip
  209. label: Host IP
  210. schema:
  211. type: string
  212. required: true
  213. $ref:
  214. - definitions/node_bind_ip
  215. - variable: storage
  216. label: ""
  217. group: Storage Configuration
  218. schema:
  219. type: dict
  220. attrs:
  221. - variable: i2p_config
  222. label: I2P Configuration Storage
  223. schema:
  224. type: dict
  225. attrs:
  226. - variable: type
  227. label: Type
  228. description: |
  229. ixVolume: Is dataset created automatically by the system.</br>
  230. Host Path: Is a path that already exists on the system.
  231. schema:
  232. type: string
  233. required: true
  234. default: "ix_volume"
  235. enum:
  236. - value: "host_path"
  237. description: Host Path (Path that already exists on the system)
  238. - value: "ix_volume"
  239. description: ixVolume (Dataset created automatically by the system)
  240. - variable: ix_volume_config
  241. label: ixVolume Configuration
  242. description: The configuration for the ixVolume dataset.
  243. schema:
  244. type: dict
  245. show_if: [["type", "=", "ix_volume"]]
  246. $ref:
  247. - "normalize/ix_volume"
  248. attrs:
  249. - variable: acl_enable
  250. label: Enable ACL
  251. description: Enable ACL for the storage.
  252. schema:
  253. type: boolean
  254. default: false
  255. - variable: dataset_name
  256. label: Dataset Name
  257. description: The name of the dataset to use for storage.
  258. schema:
  259. type: string
  260. required: true
  261. hidden: true
  262. default: "i2p_config"
  263. - variable: acl_entries
  264. label: ACL Configuration
  265. schema:
  266. type: dict
  267. show_if: [["acl_enable", "=", true]]
  268. attrs: []
  269. - variable: host_path_config
  270. label: Host Path Configuration
  271. schema:
  272. type: dict
  273. show_if: [["type", "=", "host_path"]]
  274. attrs:
  275. - variable: acl_enable
  276. label: Enable ACL
  277. description: Enable ACL for the storage.
  278. schema:
  279. type: boolean
  280. default: false
  281. - variable: acl
  282. label: ACL Configuration
  283. schema:
  284. type: dict
  285. show_if: [["acl_enable", "=", true]]
  286. attrs: []
  287. $ref:
  288. - "normalize/acl"
  289. - variable: path
  290. label: Host Path
  291. description: The host path to use for storage.
  292. schema:
  293. type: hostpath
  294. show_if: [["acl_enable", "=", false]]
  295. required: true
  296. - variable: additional_storage
  297. label: Additional Storage
  298. schema:
  299. type: list
  300. default: []
  301. items:
  302. - variable: storageEntry
  303. label: Storage Entry
  304. schema:
  305. type: dict
  306. attrs:
  307. - variable: type
  308. label: Type
  309. description: |
  310. ixVolume: Is dataset created automatically by the system.</br>
  311. Host Path: Is a path that already exists on the system.</br>
  312. SMB Share: Is a SMB share that is mounted to as a volume.
  313. schema:
  314. type: string
  315. required: true
  316. default: "ix_volume"
  317. enum:
  318. - value: "host_path"
  319. description: Host Path (Path that already exists on the system)
  320. - value: "ix_volume"
  321. description: ixVolume (Dataset created automatically by the system)
  322. - value: "cifs"
  323. description: SMB/CIFS Share (Mounts a volume to a SMB share)
  324. - variable: read_only
  325. label: Read Only
  326. description: Mount the volume as read only.
  327. schema:
  328. type: boolean
  329. default: false
  330. - variable: mount_path
  331. label: Mount Path
  332. description: The path inside the container to mount the storage.
  333. schema:
  334. type: path
  335. required: true
  336. - variable: host_path_config
  337. label: Host Path Configuration
  338. schema:
  339. type: dict
  340. show_if: [["type", "=", "host_path"]]
  341. attrs:
  342. - variable: acl_enable
  343. label: Enable ACL
  344. description: Enable ACL for the storage.
  345. schema:
  346. type: boolean
  347. default: false
  348. - variable: acl
  349. label: ACL Configuration
  350. schema:
  351. type: dict
  352. show_if: [["acl_enable", "=", true]]
  353. attrs: []
  354. $ref:
  355. - "normalize/acl"
  356. - variable: path
  357. label: Host Path
  358. description: The host path to use for storage.
  359. schema:
  360. type: hostpath
  361. show_if: [["acl_enable", "=", false]]
  362. required: true
  363. - variable: ix_volume_config
  364. label: ixVolume Configuration
  365. description: The configuration for the ixVolume dataset.
  366. schema:
  367. type: dict
  368. show_if: [["type", "=", "ix_volume"]]
  369. $ref:
  370. - "normalize/ix_volume"
  371. attrs:
  372. - variable: acl_enable
  373. label: Enable ACL
  374. description: Enable ACL for the storage.
  375. schema:
  376. type: boolean
  377. default: false
  378. - variable: dataset_name
  379. label: Dataset Name
  380. description: The name of the dataset to use for storage.
  381. schema:
  382. type: string
  383. required: true
  384. default: "storage_entry"
  385. - variable: acl_entries
  386. label: ACL Configuration
  387. schema:
  388. type: dict
  389. show_if: [["acl_enable", "=", true]]
  390. attrs: []
  391. $ref:
  392. - "normalize/acl"
  393. - variable: cifs_config
  394. label: SMB Configuration
  395. description: The configuration for the SMB dataset.
  396. schema:
  397. type: dict
  398. show_if: [["type", "=", "cifs"]]
  399. attrs:
  400. - variable: server
  401. label: Server
  402. description: The server to mount the SMB share.
  403. schema:
  404. type: string
  405. required: true
  406. - variable: path
  407. label: Path
  408. description: The path to mount the SMB share.
  409. schema:
  410. type: string
  411. required: true
  412. - variable: username
  413. label: Username
  414. description: The username to use for the SMB share.
  415. schema:
  416. type: string
  417. required: true
  418. - variable: password
  419. label: Password
  420. description: The password to use for the SMB share.
  421. schema:
  422. type: string
  423. required: true
  424. private: true
  425. - variable: domain
  426. label: Domain
  427. description: The domain to use for the SMB share.
  428. schema:
  429. type: string
  430. - variable: labels
  431. label: ""
  432. group: Labels Configuration
  433. schema:
  434. type: list
  435. default: []
  436. items:
  437. - variable: label
  438. label: Label
  439. schema:
  440. type: dict
  441. attrs:
  442. - variable: key
  443. label: Key
  444. schema:
  445. type: string
  446. required: true
  447. - variable: value
  448. label: Value
  449. schema:
  450. type: string
  451. required: true
  452. - variable: containers
  453. label: Containers
  454. description: Containers where the label should be applied
  455. schema:
  456. type: list
  457. items:
  458. - variable: container
  459. label: Container
  460. schema:
  461. type: string
  462. required: true
  463. enum:
  464. - value: i2p
  465. description: i2p
  466. - variable: resources
  467. label: ""
  468. group: Resources Configuration
  469. schema:
  470. type: dict
  471. attrs:
  472. - variable: limits
  473. label: Limits
  474. schema:
  475. type: dict
  476. attrs:
  477. - variable: cpus
  478. label: CPUs
  479. description: CPUs limit for I2P.
  480. schema:
  481. type: int
  482. default: 2
  483. required: true
  484. - variable: memory
  485. label: Memory (in MB)
  486. description: Memory limit for I2P.
  487. schema:
  488. type: int
  489. default: 4096
  490. required: true