questions.yaml 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743
  1. groups:
  2. - name: Roundcube Configuration
  3. description: Configure Roundcube
  4. - name: Network Configuration
  5. description: Configure Network for Roundcube
  6. - name: Storage Configuration
  7. description: Configure Storage for Roundcube
  8. - name: Resources Configuration
  9. description: Configure Resources for Roundcube
  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: roundcubeConfig
  21. label: ""
  22. group: Roundcube Configuration
  23. schema:
  24. type: dict
  25. attrs:
  26. - variable: defaultHost
  27. label: Default Host (IMAP)
  28. description: The default host to connect to.
  29. schema:
  30. type: string
  31. default: ""
  32. required: true
  33. - variable: defaultPort
  34. label: Default Port (IMAP)
  35. description: The default port to connect to.
  36. schema:
  37. type: int
  38. default: 143
  39. min: 1
  40. max: 65535
  41. required: true
  42. - variable: smtpServer
  43. label: SMTP Server
  44. description: The SMTP server to use.
  45. schema:
  46. type: string
  47. default: ""
  48. required: true
  49. - variable: smtpPort
  50. label: SMTP Port
  51. description: The SMTP port to use.
  52. schema:
  53. type: int
  54. default: 587
  55. min: 1
  56. max: 65535
  57. required: true
  58. - variable: skin
  59. label: Skin
  60. description: |
  61. Configures the default theme</br>
  62. If you don't have the theme installed,
  63. it will show an error on all pages.
  64. schema:
  65. type: string
  66. default: elastic
  67. required: true
  68. - variable: uploadMaxSize
  69. label: Upload Max Size
  70. description: The maximum size of an upload in MB.</br>
  71. schema:
  72. type: int
  73. default: 5
  74. min: 1
  75. required: true
  76. - variable: aspellDicts
  77. label: Aspell Dictionaries
  78. description: A list of aspell dictionaries to install.
  79. schema:
  80. type: list
  81. default: []
  82. items:
  83. - variable: aspellDict
  84. label: Aspell Dictionary
  85. schema:
  86. type: string
  87. required: true
  88. - variable: plugins
  89. label: Plugins
  90. description: A list of plugins to enable.
  91. schema:
  92. type: list
  93. default:
  94. - archive
  95. - zipdownload
  96. items:
  97. - variable: plugin
  98. label: Plugin
  99. schema:
  100. type: string
  101. required: true
  102. - variable: additionalEnvs
  103. label: Additional Environment Variables
  104. description: Configure additional environment variables for Roundcube.
  105. schema:
  106. type: list
  107. default: []
  108. items:
  109. - variable: env
  110. label: Environment Variable
  111. schema:
  112. type: dict
  113. attrs:
  114. - variable: name
  115. label: Name
  116. schema:
  117. type: string
  118. required: true
  119. - variable: value
  120. label: Value
  121. schema:
  122. type: string
  123. required: true
  124. - variable: roundcubeNetwork
  125. label: ""
  126. group: Network Configuration
  127. schema:
  128. type: dict
  129. attrs:
  130. - variable: webPort
  131. label: Web Port
  132. description: The port for the Roundcube WebUI.
  133. schema:
  134. type: int
  135. default: 31007
  136. min: 9000
  137. max: 65535
  138. required: true
  139. - variable: roundcubeStorage
  140. label: ""
  141. group: Storage Configuration
  142. schema:
  143. type: dict
  144. attrs:
  145. - variable: html
  146. label: Roundcube HTML Storage
  147. description: The path to store Roundcube HTML.
  148. schema:
  149. type: dict
  150. attrs:
  151. - variable: type
  152. label: Type
  153. description: |
  154. ixVolume: Is dataset created automatically by the system.</br>
  155. Host Path: Is a path that already exists on the system.
  156. schema:
  157. type: string
  158. required: true
  159. immutable: true
  160. default: ixVolume
  161. enum:
  162. - value: hostPath
  163. description: Host Path (Path that already exists on the system)
  164. - value: ixVolume
  165. description: ixVolume (Dataset created automatically by the system)
  166. - variable: ixVolumeConfig
  167. label: ixVolume Configuration
  168. description: The configuration for the ixVolume dataset.
  169. schema:
  170. type: dict
  171. show_if: [["type", "=", "ixVolume"]]
  172. $ref:
  173. - "normalize/ixVolume"
  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: datasetName
  182. label: Dataset Name
  183. description: The name of the dataset to use for storage.
  184. schema:
  185. type: string
  186. required: true
  187. immutable: true
  188. hidden: true
  189. default: "html"
  190. - variable: aclEntries
  191. label: ACL Configuration
  192. schema:
  193. type: dict
  194. show_if: [["aclEnable", "=", true]]
  195. attrs: []
  196. - variable: hostPathConfig
  197. label: Host Path Configuration
  198. schema:
  199. type: dict
  200. show_if: [["type", "=", "hostPath"]]
  201. attrs:
  202. - variable: aclEnable
  203. label: Enable ACL
  204. description: Enable ACL for the dataset.
  205. schema:
  206. type: boolean
  207. default: false
  208. - variable: acl
  209. label: ACL Configuration
  210. schema:
  211. type: dict
  212. show_if: [["aclEnable", "=", true]]
  213. attrs: []
  214. $ref:
  215. - "normalize/acl"
  216. - variable: hostPath
  217. label: Host Path
  218. description: The host path to use for storage.
  219. schema:
  220. type: hostpath
  221. show_if: [["aclEnable", "=", false]]
  222. required: true
  223. - variable: config
  224. label: Roundcube Config Storage
  225. description: The path to store Roundcube Config.
  226. schema:
  227. type: dict
  228. attrs:
  229. - variable: type
  230. label: Type
  231. description: |
  232. ixVolume: Is dataset created automatically by the system.</br>
  233. Host Path: Is a path that already exists on the system.
  234. schema:
  235. type: string
  236. required: true
  237. immutable: true
  238. default: ixVolume
  239. enum:
  240. - value: hostPath
  241. description: Host Path (Path that already exists on the system)
  242. - value: ixVolume
  243. description: ixVolume (Dataset created automatically by the system)
  244. - variable: ixVolumeConfig
  245. label: ixVolume Configuration
  246. description: The configuration for the ixVolume dataset.
  247. schema:
  248. type: dict
  249. show_if: [["type", "=", "ixVolume"]]
  250. $ref:
  251. - "normalize/ixVolume"
  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: datasetName
  260. label: Dataset Name
  261. description: The name of the dataset to use for storage.
  262. schema:
  263. type: string
  264. required: true
  265. immutable: true
  266. hidden: true
  267. default: "config"
  268. - variable: aclEntries
  269. label: ACL Configuration
  270. schema:
  271. type: dict
  272. show_if: [["aclEnable", "=", true]]
  273. attrs: []
  274. - variable: hostPathConfig
  275. label: Host Path Configuration
  276. schema:
  277. type: dict
  278. show_if: [["type", "=", "hostPath"]]
  279. attrs:
  280. - variable: aclEnable
  281. label: Enable ACL
  282. description: Enable ACL for the dataset.
  283. schema:
  284. type: boolean
  285. default: false
  286. - variable: acl
  287. label: ACL Configuration
  288. schema:
  289. type: dict
  290. show_if: [["aclEnable", "=", true]]
  291. attrs: []
  292. $ref:
  293. - "normalize/acl"
  294. - variable: hostPath
  295. label: Host Path
  296. description: The host path to use for storage.
  297. schema:
  298. type: hostpath
  299. show_if: [["aclEnable", "=", false]]
  300. required: true
  301. - variable: temps
  302. label: Roundcube Temp Storage
  303. description: The path to store Roundcube Temp.
  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.
  312. schema:
  313. type: string
  314. required: true
  315. immutable: true
  316. default: ixVolume
  317. enum:
  318. - value: hostPath
  319. description: Host Path (Path that already exists on the system)
  320. - value: ixVolume
  321. description: ixVolume (Dataset created automatically by the system)
  322. - variable: ixVolumeConfig
  323. label: ixVolume Configuration
  324. description: The configuration for the ixVolume dataset.
  325. schema:
  326. type: dict
  327. show_if: [["type", "=", "ixVolume"]]
  328. $ref:
  329. - "normalize/ixVolume"
  330. attrs:
  331. - variable: aclEnable
  332. label: Enable ACL
  333. description: Enable ACL for the dataset.
  334. schema:
  335. type: boolean
  336. default: false
  337. - variable: datasetName
  338. label: Dataset Name
  339. description: The name of the dataset to use for storage.
  340. schema:
  341. type: string
  342. required: true
  343. immutable: true
  344. hidden: true
  345. default: "temps"
  346. - variable: aclEntries
  347. label: ACL Configuration
  348. schema:
  349. type: dict
  350. show_if: [["aclEnable", "=", true]]
  351. attrs: []
  352. - variable: hostPathConfig
  353. label: Host Path Configuration
  354. schema:
  355. type: dict
  356. show_if: [["type", "=", "hostPath"]]
  357. attrs:
  358. - variable: aclEnable
  359. label: Enable ACL
  360. description: Enable ACL for the dataset.
  361. schema:
  362. type: boolean
  363. default: false
  364. - variable: acl
  365. label: ACL Configuration
  366. schema:
  367. type: dict
  368. show_if: [["aclEnable", "=", true]]
  369. attrs: []
  370. $ref:
  371. - "normalize/acl"
  372. - variable: hostPath
  373. label: Host Path
  374. description: The host path to use for storage.
  375. schema:
  376. type: hostpath
  377. show_if: [["aclEnable", "=", false]]
  378. required: true
  379. - variable: pgData
  380. label: Roundcube Postgres Data Storage
  381. description: The path to store Roundcube Postgres Data.
  382. schema:
  383. type: dict
  384. attrs:
  385. - variable: type
  386. label: Type
  387. description: |
  388. ixVolume: Is dataset created automatically by the system.</br>
  389. Host Path: Is a path that already exists on the system.
  390. schema:
  391. type: string
  392. required: true
  393. immutable: true
  394. default: ixVolume
  395. enum:
  396. - value: hostPath
  397. description: Host Path (Path that already exists on the system)
  398. - value: ixVolume
  399. description: ixVolume (Dataset created automatically by the system)
  400. - variable: ixVolumeConfig
  401. label: ixVolume Configuration
  402. description: The configuration for the ixVolume dataset.
  403. schema:
  404. type: dict
  405. # Nothing to show for the user
  406. hidden: true
  407. show_if: [["type", "=", "ixVolume"]]
  408. $ref:
  409. - "normalize/ixVolume"
  410. attrs:
  411. - variable: aclEnable
  412. label: Enable ACL
  413. description: Enable ACL for the dataset.
  414. schema:
  415. type: boolean
  416. # Postgres does a CHMOD at startup
  417. # Which fails with ACL
  418. hidden: true
  419. default: false
  420. - variable: datasetName
  421. label: Dataset Name
  422. description: The name of the dataset to use for storage.
  423. schema:
  424. type: string
  425. required: true
  426. immutable: true
  427. hidden: true
  428. default: "pgData"
  429. - variable: aclEntries
  430. label: ACL Configuration
  431. schema:
  432. type: dict
  433. show_if: [["aclEnable", "=", true]]
  434. attrs: []
  435. - variable: hostPathConfig
  436. label: Host Path Configuration
  437. schema:
  438. type: dict
  439. show_if: [["type", "=", "hostPath"]]
  440. attrs:
  441. - variable: aclEnable
  442. label: Enable ACL
  443. description: Enable ACL for the dataset.
  444. schema:
  445. type: boolean
  446. # Postgres does a CHMOD at startup
  447. # Which fails with ACL
  448. hidden: true
  449. default: false
  450. - variable: acl
  451. label: ACL Configuration
  452. schema:
  453. type: dict
  454. show_if: [["aclEnable", "=", true]]
  455. attrs: []
  456. $ref:
  457. - "normalize/acl"
  458. - variable: hostPath
  459. label: Host Path
  460. description: The host path to use for storage.
  461. schema:
  462. type: hostpath
  463. show_if: [["aclEnable", "=", false]]
  464. required: true
  465. - variable: pgBackup
  466. label: Roundcube Postgres Backup Storage
  467. description: The path to store Roundcube Postgres Backup.
  468. schema:
  469. type: dict
  470. attrs:
  471. - variable: type
  472. label: Type
  473. description: |
  474. ixVolume: Is dataset created automatically by the system.</br>
  475. Host Path: Is a path that already exists on the system.
  476. schema:
  477. type: string
  478. required: true
  479. immutable: true
  480. default: ixVolume
  481. enum:
  482. - value: hostPath
  483. description: Host Path (Path that already exists on the system)
  484. - value: ixVolume
  485. description: ixVolume (Dataset created automatically by the system)
  486. - variable: ixVolumeConfig
  487. label: ixVolume Configuration
  488. description: The configuration for the ixVolume dataset.
  489. schema:
  490. type: dict
  491. # Nothing to show for the user
  492. hidden: true
  493. show_if: [["type", "=", "ixVolume"]]
  494. $ref:
  495. - "normalize/ixVolume"
  496. attrs:
  497. - variable: aclEnable
  498. label: Enable ACL
  499. description: Enable ACL for the dataset.
  500. schema:
  501. type: boolean
  502. # Postgres does a CHMOD at startup
  503. # Which fails with ACL
  504. hidden: true
  505. default: false
  506. - variable: datasetName
  507. label: Dataset Name
  508. description: The name of the dataset to use for storage.
  509. schema:
  510. type: string
  511. required: true
  512. immutable: true
  513. hidden: true
  514. default: "pgBackup"
  515. - variable: aclEntries
  516. label: ACL Configuration
  517. schema:
  518. type: dict
  519. show_if: [["aclEnable", "=", true]]
  520. attrs: []
  521. - variable: hostPathConfig
  522. label: Host Path Configuration
  523. schema:
  524. type: dict
  525. show_if: [["type", "=", "hostPath"]]
  526. attrs:
  527. - variable: aclEnable
  528. label: Enable ACL
  529. description: Enable ACL for the dataset.
  530. schema:
  531. type: boolean
  532. # Postgres does a CHMOD at startup
  533. # Which fails with ACL
  534. hidden: true
  535. default: false
  536. - variable: acl
  537. label: ACL Configuration
  538. schema:
  539. type: dict
  540. show_if: [["aclEnable", "=", true]]
  541. attrs: []
  542. $ref:
  543. - "normalize/acl"
  544. - variable: hostPath
  545. label: Host Path
  546. description: The host path to use for storage.
  547. schema:
  548. type: hostpath
  549. show_if: [["aclEnable", "=", false]]
  550. required: true
  551. - variable: additionalStorages
  552. label: Additional Storage
  553. description: Additional storage for Roundcube.
  554. schema:
  555. type: list
  556. default: []
  557. items:
  558. - variable: storageEntry
  559. label: Storage Entry
  560. schema:
  561. type: dict
  562. attrs:
  563. - variable: type
  564. label: Type
  565. description: |
  566. ixVolume: Is dataset created automatically by the system.</br>
  567. Host Path: Is a path that already exists on the system.</br>
  568. SMB Share: Is a SMB share that is mounted to a persistent volume claim.
  569. schema:
  570. type: string
  571. required: true
  572. default: "ixVolume"
  573. immutable: true
  574. enum:
  575. - value: "hostPath"
  576. description: Host Path (Path that already exists on the system)
  577. - value: "ixVolume"
  578. description: ixVolume (Dataset created automatically by the system)
  579. - value: "smb-pv-pvc"
  580. description: SMB Share (Mounts a persistent volume claim to a SMB share)
  581. - variable: readOnly
  582. label: Read Only
  583. description: Mount the volume as read only.
  584. schema:
  585. type: boolean
  586. default: false
  587. - variable: mountPath
  588. label: Mount Path
  589. description: The path inside the container to mount the storage.
  590. schema:
  591. type: path
  592. required: true
  593. - variable: hostPathConfig
  594. label: Host Path Configuration
  595. schema:
  596. type: dict
  597. show_if: [["type", "=", "hostPath"]]
  598. attrs:
  599. - variable: aclEnable
  600. label: Enable ACL
  601. description: Enable ACL for the dataset.
  602. schema:
  603. type: boolean
  604. default: false
  605. - variable: acl
  606. label: ACL Configuration
  607. schema:
  608. type: dict
  609. show_if: [["aclEnable", "=", true]]
  610. attrs: []
  611. $ref:
  612. - "normalize/acl"
  613. - variable: hostPath
  614. label: Host Path
  615. description: The host path to use for storage.
  616. schema:
  617. type: hostpath
  618. show_if: [["aclEnable", "=", false]]
  619. required: true
  620. - variable: ixVolumeConfig
  621. label: ixVolume Configuration
  622. description: The configuration for the ixVolume dataset.
  623. schema:
  624. type: dict
  625. show_if: [["type", "=", "ixVolume"]]
  626. $ref:
  627. - "normalize/ixVolume"
  628. attrs:
  629. - variable: aclEnable
  630. label: Enable ACL
  631. description: Enable ACL for the dataset.
  632. schema:
  633. type: boolean
  634. default: false
  635. - variable: datasetName
  636. label: Dataset Name
  637. description: The name of the dataset to use for storage.
  638. schema:
  639. type: string
  640. required: true
  641. immutable: true
  642. default: "storage_entry"
  643. - variable: aclEntries
  644. label: ACL Configuration
  645. schema:
  646. type: dict
  647. show_if: [["aclEnable", "=", true]]
  648. attrs: []
  649. - variable: smbConfig
  650. label: SMB Share Configuration
  651. description: The configuration for the SMB Share.
  652. schema:
  653. type: dict
  654. show_if: [["type", "=", "smb-pv-pvc"]]
  655. attrs:
  656. - variable: server
  657. label: Server
  658. description: The server for the SMB share.
  659. schema:
  660. type: string
  661. required: true
  662. - variable: share
  663. label: Share
  664. description: The share name for the SMB share.
  665. schema:
  666. type: string
  667. required: true
  668. - variable: domain
  669. label: Domain (Optional)
  670. description: The domain for the SMB share.
  671. schema:
  672. type: string
  673. - variable: username
  674. label: Username
  675. description: The username for the SMB share.
  676. schema:
  677. type: string
  678. required: true
  679. - variable: password
  680. label: Password
  681. description: The password for the SMB share.
  682. schema:
  683. type: string
  684. required: true
  685. private: true
  686. - variable: size
  687. label: Size (in Gi)
  688. description: The size of the volume quota.
  689. schema:
  690. type: int
  691. required: true
  692. min: 1
  693. default: 1
  694. - variable: resources
  695. label: ""
  696. group: Resources Configuration
  697. schema:
  698. type: dict
  699. attrs:
  700. - variable: limits
  701. label: Limits
  702. schema:
  703. type: dict
  704. attrs:
  705. - variable: cpu
  706. label: CPU
  707. description: CPU limit for Roundcube.
  708. schema:
  709. type: string
  710. max_length: 6
  711. valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$'
  712. valid_chars_error: |
  713. Valid CPU limit formats are</br>
  714. - Plain Integer - eg. 1</br>
  715. - Float - eg. 0.5</br>
  716. - Milicpu - eg. 500m
  717. default: "4000m"
  718. required: true
  719. - variable: memory
  720. label: Memory
  721. description: Memory limit for Roundcube.
  722. schema:
  723. type: string
  724. max_length: 12
  725. valid_chars: '^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$'
  726. valid_chars_error: |
  727. Valid Memory limit formats are</br>
  728. - Suffixed with E/P/T/G/M/K - eg. 1G</br>
  729. - Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi</br>
  730. - Plain Integer in bytes - eg. 1024</br>
  731. - Exponent - eg. 134e6
  732. default: "8Gi"
  733. required: true