questions.yaml 15 KB

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