questions.yaml 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457
  1. groups:
  2. - name: Restic REST Server Configuration
  3. description: Configure Restic REST Server
  4. - name: User and Group Configuration
  5. description: Configure User and Group for Restic REST Server
  6. - name: Network Configuration
  7. description: Configure Network for Restic REST Server
  8. - name: Storage Configuration
  9. description: Configure Storage for Restic REST Server
  10. - name: Labels Configuration
  11. description: Configure Labels for Restic REST Server
  12. - name: Resources Configuration
  13. description: Configure Resources for Restic REST Server
  14. questions:
  15. - variable: TZ
  16. group: Restic REST Server Configuration
  17. label: Timezone
  18. schema:
  19. type: string
  20. default: Etc/UTC
  21. required: true
  22. $ref:
  23. - definitions/timezone
  24. - variable: rest_server
  25. label: ""
  26. group: Restic REST Server Configuration
  27. schema:
  28. type: dict
  29. attrs:
  30. - variable: append_only
  31. label: Append Only
  32. group: Restic REST Server Configuration
  33. description: |
  34. Enable append-only mode. In this mode, no existing snapshots can be deleted or modified.
  35. schema:
  36. type: boolean
  37. default: false
  38. - variable: group_accessible_repos
  39. label: Group Accessible Repositories
  40. group: Restic REST Server Configuration
  41. description: |
  42. Enable group accessible repositories. In this mode, repositories can be accessed by users in the same group.
  43. schema:
  44. type: boolean
  45. default: false
  46. - variable: private_repos
  47. label: Private Repositories
  48. group: Restic REST Server Configuration
  49. description: |
  50. Enable private repositories. In this mode, repositories can only be accessed by authenticated users.
  51. schema:
  52. type: boolean
  53. default: false
  54. - variable: no_auth
  55. label: No Authentication
  56. group: Restic REST Server Configuration
  57. description: |
  58. Disable authentication. In this mode, no authentication is required to access the repositories.
  59. schema:
  60. type: boolean
  61. default: false
  62. - variable: proxy_auth_username
  63. label: Proxy Authentication Username
  64. group: Restic REST Server Configuration
  65. description: |
  66. Specifies the HTTP header containing the username for proxy-based authentication
  67. schema:
  68. type: string
  69. show_if: [["no_auth", "=", false]]
  70. default: ""
  71. - variable: users
  72. label: Basic Auth Users
  73. description: The list of basic auth users.
  74. schema:
  75. type: list
  76. show_if: [["no_auth", "=", false]]
  77. default: []
  78. items:
  79. - variable: user_entry
  80. label: User Entry
  81. schema:
  82. type: dict
  83. attrs:
  84. - variable: username
  85. label: Username
  86. schema:
  87. type: string
  88. required: true
  89. - variable: password
  90. label: Password
  91. schema:
  92. type: string
  93. required: true
  94. private: true
  95. - variable: extra_options
  96. label: Extra Options
  97. group: Restic REST Server Configuration
  98. description: |
  99. Additional options to pass to the Restic REST Server.
  100. Example: --some-option=value
  101. schema:
  102. type: list
  103. default: []
  104. items:
  105. - variable: option
  106. label: Option
  107. schema:
  108. type: string
  109. required: true
  110. - variable: additional_envs
  111. label: Additional Environment Variables
  112. description: Configure additional environment variables for Restic REST Server.
  113. schema:
  114. type: list
  115. default: []
  116. items:
  117. - variable: env
  118. label: Environment Variable
  119. schema:
  120. type: dict
  121. attrs:
  122. - variable: name
  123. label: Name
  124. schema:
  125. type: string
  126. required: true
  127. - variable: value
  128. label: Value
  129. schema:
  130. type: string
  131. - variable: run_as
  132. label: ""
  133. group: User and Group Configuration
  134. schema:
  135. type: dict
  136. attrs:
  137. - variable: user
  138. label: User ID
  139. description: The user id that Restic REST Server files will be owned by.
  140. schema:
  141. type: int
  142. min: 568
  143. default: 568
  144. required: true
  145. - variable: group
  146. label: Group ID
  147. description: The group id that Restic REST Server files will be owned by.
  148. schema:
  149. type: int
  150. min: 568
  151. default: 568
  152. required: true
  153. - variable: network
  154. label: ""
  155. group: Network Configuration
  156. schema:
  157. type: dict
  158. attrs:
  159. - variable: web_port
  160. label: WebUI Port
  161. schema:
  162. type: dict
  163. attrs:
  164. - variable: bind_mode
  165. label: Port Bind Mode
  166. description: |
  167. The port bind mode.</br>
  168. - Publish: The port will be published on the host for external access.</br>
  169. - Expose: The port will be exposed for inter-container communication.</br>
  170. - None: The port will not be exposed or published.</br>
  171. Note: If the Dockerfile defines an EXPOSE directive,
  172. the port will still be exposed for inter-container communication regardless of this setting.
  173. schema:
  174. type: string
  175. default: "published"
  176. enum:
  177. - value: "published"
  178. description: Publish port on the host for external access
  179. - value: "exposed"
  180. description: Expose port for inter-container communication
  181. - value: ""
  182. description: None
  183. - variable: port_number
  184. label: Port Number
  185. schema:
  186. type: int
  187. default: 30248
  188. min: 1
  189. max: 65535
  190. required: true
  191. - variable: host_ips
  192. label: Host IPs
  193. description: IPs on the host to bind this port
  194. schema:
  195. type: list
  196. show_if: [["bind_mode", "=", "published"]]
  197. default: []
  198. items:
  199. - variable: host_ip
  200. label: Host IP
  201. schema:
  202. type: string
  203. required: true
  204. $ref:
  205. - definitions/node_bind_ip
  206. - variable: host_network
  207. label: Host Network
  208. description: |
  209. Bind to the host network. It's recommended to keep this disabled.
  210. schema:
  211. type: boolean
  212. default: false
  213. - variable: certificate_id
  214. label: Certificate
  215. description: The certificate to use for Restic REST Servers.
  216. schema:
  217. type: int
  218. "null": true
  219. $ref:
  220. - "definitions/certificate"
  221. - variable: storage
  222. label: ""
  223. group: Storage Configuration
  224. schema:
  225. type: dict
  226. attrs:
  227. - variable: data
  228. label: Data Storage
  229. schema:
  230. type: dict
  231. attrs:
  232. - variable: type
  233. label: Type
  234. description: |
  235. ixVolume: Is dataset created automatically by the system.</br>
  236. Host Path: Is a path that already exists on the system.
  237. schema:
  238. type: string
  239. required: true
  240. default: "ix_volume"
  241. enum:
  242. - value: "host_path"
  243. description: Host Path (Path that already exists on the system)
  244. - value: "ix_volume"
  245. description: ixVolume (Dataset created automatically by the system)
  246. - variable: ix_volume_config
  247. label: ixVolume Configuration
  248. description: The configuration for the ixVolume dataset.
  249. schema:
  250. type: dict
  251. show_if: [["type", "=", "ix_volume"]]
  252. $ref:
  253. - "normalize/ix_volume"
  254. attrs:
  255. - variable: acl_enable
  256. label: Enable ACL
  257. description: Enable ACL for the storage.
  258. schema:
  259. type: boolean
  260. default: false
  261. - variable: dataset_name
  262. label: Dataset Name
  263. description: The name of the dataset to use for storage.
  264. schema:
  265. type: string
  266. required: true
  267. hidden: true
  268. default: "data"
  269. - variable: acl_entries
  270. label: ACL Configuration
  271. schema:
  272. type: dict
  273. show_if: [["acl_enable", "=", true]]
  274. attrs: []
  275. - variable: host_path_config
  276. label: Host Path Configuration
  277. schema:
  278. type: dict
  279. show_if: [["type", "=", "host_path"]]
  280. attrs:
  281. - variable: acl_enable
  282. label: Enable ACL
  283. description: Enable ACL for the storage.
  284. schema:
  285. type: boolean
  286. default: false
  287. - variable: acl
  288. label: ACL Configuration
  289. schema:
  290. type: dict
  291. show_if: [["acl_enable", "=", true]]
  292. attrs: []
  293. $ref:
  294. - "normalize/acl"
  295. - variable: path
  296. label: Host Path
  297. description: The host path to use for storage.
  298. schema:
  299. type: hostpath
  300. show_if: [["acl_enable", "=", false]]
  301. required: true
  302. - variable: additional_storage
  303. label: Additional Storage
  304. schema:
  305. type: list
  306. default: []
  307. items:
  308. - variable: storageEntry
  309. label: Storage Entry
  310. schema:
  311. type: dict
  312. attrs:
  313. - variable: type
  314. label: Type
  315. description: |
  316. ixVolume: Is dataset created automatically by the system.</br>
  317. Host Path: Is a path that already exists on the system.</br>
  318. schema:
  319. type: string
  320. required: true
  321. default: "ix_volume"
  322. enum:
  323. - value: "host_path"
  324. description: Host Path (Path that already exists on the system)
  325. - value: "ix_volume"
  326. description: ixVolume (Dataset created automatically by the system)
  327. - variable: read_only
  328. label: Read Only
  329. description: Mount the volume as read only.
  330. schema:
  331. type: boolean
  332. default: false
  333. - variable: mount_path
  334. label: Mount Path
  335. description: The path inside the container to mount the storage.
  336. schema:
  337. type: path
  338. required: true
  339. - variable: host_path_config
  340. label: Host Path Configuration
  341. schema:
  342. type: dict
  343. show_if: [["type", "=", "host_path"]]
  344. attrs:
  345. - variable: acl_enable
  346. label: Enable ACL
  347. description: Enable ACL for the storage.
  348. schema:
  349. type: boolean
  350. default: false
  351. - variable: acl
  352. label: ACL Configuration
  353. schema:
  354. type: dict
  355. show_if: [["acl_enable", "=", true]]
  356. attrs: []
  357. $ref:
  358. - "normalize/acl"
  359. - variable: path
  360. label: Host Path
  361. description: The host path to use for storage.
  362. schema:
  363. type: hostpath
  364. show_if: [["acl_enable", "=", false]]
  365. required: true
  366. - variable: ix_volume_config
  367. label: ixVolume Configuration
  368. description: The configuration for the ixVolume dataset.
  369. schema:
  370. type: dict
  371. show_if: [["type", "=", "ix_volume"]]
  372. $ref:
  373. - "normalize/ix_volume"
  374. attrs:
  375. - variable: acl_enable
  376. label: Enable ACL
  377. description: Enable ACL for the storage.
  378. schema:
  379. type: boolean
  380. default: false
  381. - variable: dataset_name
  382. label: Dataset Name
  383. description: The name of the dataset to use for storage.
  384. schema:
  385. type: string
  386. required: true
  387. default: "storage_entry"
  388. - variable: acl_entries
  389. label: ACL Configuration
  390. schema:
  391. type: dict
  392. show_if: [["acl_enable", "=", true]]
  393. attrs: []
  394. - variable: labels
  395. label: ""
  396. group: Labels Configuration
  397. schema:
  398. type: list
  399. default: []
  400. items:
  401. - variable: label
  402. label: Label
  403. schema:
  404. type: dict
  405. attrs:
  406. - variable: key
  407. label: Key
  408. schema:
  409. type: string
  410. required: true
  411. - variable: value
  412. label: Value
  413. schema:
  414. type: string
  415. required: true
  416. - variable: containers
  417. label: Containers
  418. description: Containers where the label should be applied
  419. schema:
  420. type: list
  421. items:
  422. - variable: container
  423. label: Container
  424. schema:
  425. type: string
  426. required: true
  427. enum:
  428. - value: restic-server
  429. description: restic-server
  430. - variable: resources
  431. label: ""
  432. group: Resources Configuration
  433. schema:
  434. type: dict
  435. attrs:
  436. - variable: limits
  437. label: Limits
  438. schema:
  439. type: dict
  440. attrs:
  441. - variable: cpus
  442. label: CPUs
  443. description: CPUs limit for Restic REST Server.
  444. schema:
  445. type: int
  446. default: 2
  447. required: true
  448. - variable: memory
  449. label: Memory (in MB)
  450. description: Memory limit for Restic REST Server.
  451. schema:
  452. type: int
  453. default: 4096
  454. required: true