questions.yaml 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412
  1. groups:
  2. - name: Unifi Protect Backup Configuration
  3. description: Configure Unifi Protect Backup
  4. - name: User and Group Configuration
  5. description: Configure User and Group for Unifi Protect Backup
  6. - name: Storage Configuration
  7. description: Configure Storage for Unifi Protect Backup
  8. - name: Resources Configuration
  9. description: Configure Resources for Unifi Protect Backup
  10. questions:
  11. - variable: TZ
  12. group: Unifi Protect Backup Configuration
  13. label: Timezone
  14. schema:
  15. type: string
  16. default: Etc/UTC
  17. required: true
  18. $ref:
  19. - definitions/timezone
  20. - variable: upbConfig
  21. label: ""
  22. group: Unifi Protect Backup Configuration
  23. schema:
  24. type: dict
  25. attrs:
  26. - variable: unifiProtectUsername
  27. label: Unifi Protect Username
  28. description: Username to login to Unifi Protect instance
  29. schema:
  30. type: string
  31. required: true
  32. - variable: unifiProtectPassword
  33. label: Unifi Protect Password
  34. description: Password for Unifi Protect user
  35. schema:
  36. type: string
  37. required: true
  38. private: true
  39. - variable: unifiProtectAddress
  40. label: Unifi Protect Address
  41. description: Address of Unifi Protect instance
  42. schema:
  43. type: string
  44. required: true
  45. - variable: unifiProtectPort
  46. label: Unifi Protect Port
  47. description: Port of Unifi Protect instance
  48. schema:
  49. type: int
  50. min: 1
  51. max: 65535
  52. required: true
  53. default: 443
  54. - variable: unifiProtectVerifySsl
  55. label: Unifi Protect Verify SSL
  56. description: Verify SSL certificate of Unifi Protect instance
  57. schema:
  58. type: boolean
  59. default: true
  60. - variable: skipMissing
  61. label: Skip Missing
  62. description: If set, events which are 'missing' at the start will be ignored.
  63. schema:
  64. type: boolean
  65. default: false
  66. - variable: ignoreCameras
  67. label: Ignore Cameras
  68. description: IDs of cameras for which events should not be backed up. One per line.
  69. schema:
  70. type: list
  71. default: []
  72. items:
  73. - variable: id
  74. label: Camera ID
  75. schema:
  76. type: string
  77. required: true
  78. - variable: detectionTypes
  79. label: Detection Types
  80. description: Types of detections to back up. One per line.
  81. schema:
  82. type: list
  83. default:
  84. - motion
  85. - person
  86. - vehicle
  87. - ring
  88. items:
  89. - variable: type
  90. label: Detection Type
  91. schema:
  92. type: string
  93. required: true
  94. enum:
  95. - value: "motion"
  96. description: Motion
  97. - value: "person"
  98. description: Person
  99. - value: "vehicle"
  100. description: Vehicle
  101. - value: "ring"
  102. description: Ring
  103. - variable: rcloneDestination
  104. label: Rclone Destination
  105. description: |
  106. Rclone destination path in the format {rclone-remote}:{path-on-remote} </br.>
  107. E.g. `gdrive:/backups/unifi_protect`
  108. schema:
  109. type: string
  110. required: true
  111. - variable: rcloneArgs
  112. label: Rclone Arguments
  113. description: |
  114. Optional extra arguments to pass to rclone rcat directly. One per line</br>
  115. Common usage for this would be to set a bandwidth limit</br>
  116. E.g. --bwlimit 8M
  117. schema:
  118. type: list
  119. default: []
  120. items:
  121. - variable: arg
  122. label: Argument
  123. schema:
  124. type: string
  125. required: true
  126. - variable: rclonePurgeArgs
  127. label: Rclone Purge Arguments
  128. description: |
  129. Optional extra arguments to pass to rclone delete. One per line</br>
  130. Common usage for this would be to execute a permanent delete
  131. instead of using the recycle bin on a destination.</br>
  132. Google Drive example: --drive-use-trash=false
  133. schema:
  134. type: list
  135. default: []
  136. items:
  137. - variable: arg
  138. label: Argument
  139. schema:
  140. type: string
  141. required: true
  142. - variable: additionalEnvs
  143. label: Additional Environment Variables
  144. description: Configure additional environment variables for Unifi Protect Backup.
  145. schema:
  146. type: list
  147. default: []
  148. items:
  149. - variable: env
  150. label: Environment Variable
  151. schema:
  152. type: dict
  153. attrs:
  154. - variable: name
  155. label: Name
  156. schema:
  157. type: string
  158. required: true
  159. - variable: value
  160. label: Value
  161. schema:
  162. type: string
  163. required: true
  164. - variable: upbID
  165. label: ""
  166. group: User and Group Configuration
  167. schema:
  168. type: dict
  169. attrs:
  170. - variable: user
  171. label: User ID
  172. description: The user id that Unifi Protect Backup files will be owned by.
  173. schema:
  174. type: int
  175. min: 568
  176. default: 568
  177. required: true
  178. - variable: group
  179. label: Group ID
  180. description: The group id that Unifi Protect Backup files will be owned by.
  181. schema:
  182. type: int
  183. min: 568
  184. default: 568
  185. required: true
  186. - variable: upbStorage
  187. label: ""
  188. group: Storage Configuration
  189. schema:
  190. type: dict
  191. attrs:
  192. - variable: config
  193. label: Unifi Protect Backup Config Storage
  194. description: The path to store Unifi Protect Backup Configuration.
  195. schema:
  196. type: dict
  197. attrs:
  198. - variable: type
  199. label: Type
  200. description: |
  201. ixVolume: Is dataset created automatically by the system.</br>
  202. Host Path: Is a path that already exists on the system.
  203. schema:
  204. type: string
  205. required: true
  206. immutable: true
  207. default: "ixVolume"
  208. enum:
  209. - value: "hostPath"
  210. description: Host Path (Path that already exists on the system)
  211. - value: "ixVolume"
  212. description: ixVolume (Dataset created automatically by the system)
  213. - variable: datasetName
  214. label: Dataset Name
  215. schema:
  216. type: string
  217. show_if: [["type", "=", "ixVolume"]]
  218. required: true
  219. hidden: true
  220. immutable: true
  221. default: "config"
  222. $ref:
  223. - "normalize/ixVolume"
  224. - variable: hostPath
  225. label: Host Path
  226. schema:
  227. type: hostpath
  228. show_if: [["type", "=", "hostPath"]]
  229. immutable: true
  230. required: true
  231. - variable: data
  232. label: Unifi Protect Backup Data Storage
  233. description: The path to store Unifi Protect Backup Data.
  234. schema:
  235. type: dict
  236. attrs:
  237. - variable: type
  238. label: Type
  239. description: |
  240. ixVolume: Is dataset created automatically by the system.</br>
  241. Host Path: Is a path that already exists on the system.
  242. schema:
  243. type: string
  244. required: true
  245. immutable: true
  246. default: "ixVolume"
  247. enum:
  248. - value: "hostPath"
  249. description: Host Path (Path that already exists on the system)
  250. - value: "ixVolume"
  251. description: ixVolume (Dataset created automatically by the system)
  252. - variable: datasetName
  253. label: Dataset Name
  254. schema:
  255. type: string
  256. show_if: [["type", "=", "ixVolume"]]
  257. required: true
  258. hidden: true
  259. immutable: true
  260. default: "data"
  261. $ref:
  262. - "normalize/ixVolume"
  263. - variable: hostPath
  264. label: Host Path
  265. schema:
  266. type: hostpath
  267. show_if: [["type", "=", "hostPath"]]
  268. immutable: true
  269. required: true
  270. - variable: additionalStorages
  271. label: Additional Storage
  272. description: Additional storage for Unifi Protect Backup.
  273. schema:
  274. type: list
  275. default: []
  276. items:
  277. - variable: storageEntry
  278. label: Storage Entry
  279. schema:
  280. type: dict
  281. attrs:
  282. - variable: type
  283. label: Type
  284. description: |
  285. ixVolume: Is dataset created automatically by the system.</br>
  286. Host Path: Is a path that already exists on the system.</br>
  287. SMB Share: Is a SMB share that is mounted to a persistent volume claim.
  288. schema:
  289. type: string
  290. required: true
  291. default: "ixVolume"
  292. immutable: true
  293. enum:
  294. - value: "hostPath"
  295. description: Host Path (Path that already exists on the system)
  296. - value: "ixVolume"
  297. description: ixVolume (Dataset created automatically by the system)
  298. - value: "smb-pv-pvc"
  299. description: SMB Share (Mounts a persistent volume claim to a SMB share)
  300. - variable: mountPath
  301. label: Mount Path
  302. description: The path inside the container to mount the storage.
  303. schema:
  304. type: path
  305. required: true
  306. - variable: hostPath
  307. label: Host Path
  308. description: The host path to use for storage.
  309. schema:
  310. type: hostpath
  311. show_if: [["type", "=", "hostPath"]]
  312. required: true
  313. - variable: datasetName
  314. label: Dataset Name
  315. description: The name of the dataset to use for storage.
  316. schema:
  317. type: string
  318. show_if: [["type", "=", "ixVolume"]]
  319. required: true
  320. immutable: true
  321. default: "storage_entry"
  322. $ref:
  323. - "normalize/ixVolume"
  324. - variable: server
  325. label: Server
  326. description: The server for the SMB share.
  327. schema:
  328. type: string
  329. show_if: [["type", "=", "smb-pv-pvc"]]
  330. required: true
  331. - variable: share
  332. label: Share
  333. description: The share name for the SMB share.
  334. schema:
  335. type: string
  336. show_if: [["type", "=", "smb-pv-pvc"]]
  337. required: true
  338. - variable: domain
  339. label: Domain (Optional)
  340. description: The domain for the SMB share.
  341. schema:
  342. type: string
  343. show_if: [["type", "=", "smb-pv-pvc"]]
  344. - variable: username
  345. label: Username
  346. description: The username for the SMB share.
  347. schema:
  348. type: string
  349. show_if: [["type", "=", "smb-pv-pvc"]]
  350. required: true
  351. - variable: password
  352. label: Password
  353. description: The password for the SMB share.
  354. schema:
  355. type: string
  356. show_if: [["type", "=", "smb-pv-pvc"]]
  357. required: true
  358. private: true
  359. - variable: size
  360. label: Size (in Gi)
  361. description: The size of the volume quota.
  362. schema:
  363. type: int
  364. show_if: [["type", "=", "smb-pv-pvc"]]
  365. required: true
  366. min: 1
  367. default: 1
  368. - variable: resources
  369. group: Resources Configuration
  370. label: ""
  371. schema:
  372. type: dict
  373. attrs:
  374. - variable: limits
  375. label: Limits
  376. schema:
  377. type: dict
  378. attrs:
  379. - variable: cpu
  380. label: CPU
  381. description: CPU limit for Unifi Protect Backup.
  382. schema:
  383. type: string
  384. max_length: 6
  385. valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$'
  386. valid_chars_error: |
  387. Valid CPU limit formats are</br>
  388. - Plain Integer - eg. 1</br>
  389. - Float - eg. 0.5</br>
  390. - Milicpu - eg. 500m
  391. default: "4000m"
  392. required: true
  393. - variable: memory
  394. label: Memory
  395. description: Memory limit for Unifi Protect Backup.
  396. schema:
  397. type: string
  398. max_length: 12
  399. valid_chars: '^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$'
  400. valid_chars_error: |
  401. Valid Memory limit formats are</br>
  402. - Suffixed with E/P/T/G/M/K - eg. 1G</br>
  403. - Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi</br>
  404. - Plain Integer in bytes - eg. 1024</br>
  405. - Exponent - eg. 134e6
  406. default: "8Gi"
  407. required: true