questions.yaml 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593
  1. groups:
  2. - name: Photoprism Configuration
  3. description: Configure Photoprism
  4. - name: User and Group Configuration
  5. description: Configure User and Group for Photoprism
  6. - name: Advanced Pod Configuration
  7. description: Configure Advanced Pod Options for Photoprism
  8. - name: Network Configuration
  9. description: Configure Network for Photoprism
  10. - name: Storage Configuration
  11. description: Configure Storage for Photoprism
  12. - name: Resources Configuration
  13. description: Configure Resources for Photoprism
  14. portals:
  15. web_portal:
  16. protocols:
  17. - "$kubernetes-resource_configmap_portal_protocol"
  18. host:
  19. - "$kubernetes-resource_configmap_portal_host"
  20. ports:
  21. - "$kubernetes-resource_configmap_portal_port"
  22. path: "$kubernetes-resource_configmap_portal_path"
  23. questions:
  24. - variable: photoprismConfig
  25. label: ""
  26. group: Photoprism Configuration
  27. schema:
  28. type: dict
  29. attrs:
  30. - variable: public
  31. label: Public
  32. description: |
  33. Enable public access to Photoprism.</br>
  34. If enabled, Photoprism will be accessible without authentication.
  35. schema:
  36. type: boolean
  37. default: false
  38. - variable: password
  39. label: Password
  40. description: |
  41. Set a password for Photoprism.</br>
  42. If public access is enabled, a password is required.
  43. schema:
  44. type: string
  45. default: ""
  46. required: true
  47. show_if: [["public", "=", false]]
  48. private: true
  49. - variable: additionalEnvs
  50. label: Additional Environment Variables
  51. description: Configure additional environment variables for Photoprism.
  52. schema:
  53. type: list
  54. default: []
  55. items:
  56. - variable: env
  57. label: Environment Variable
  58. schema:
  59. type: dict
  60. attrs:
  61. - variable: name
  62. label: Name
  63. schema:
  64. type: string
  65. required: true
  66. - variable: value
  67. label: Value
  68. schema:
  69. type: string
  70. required: true
  71. - variable: photoprismID
  72. label: ""
  73. group: User and Group Configuration
  74. schema:
  75. type: dict
  76. attrs:
  77. - variable: user
  78. label: User ID
  79. description: The user id that Photoprism files will be owned by.
  80. schema:
  81. type: int
  82. min: 568
  83. default: 568
  84. required: true
  85. - variable: group
  86. label: Group ID
  87. description: The group id that Photoprism files will be owned by.
  88. schema:
  89. type: int
  90. min: 568
  91. default: 568
  92. required: true
  93. - variable: podOptions
  94. label: ""
  95. group: Advanced Pod Configuration
  96. schema:
  97. type: dict
  98. attrs:
  99. - variable: dnsConfig
  100. label: Advanced DNS Configuration
  101. schema:
  102. type: dict
  103. attrs:
  104. - variable: options
  105. label: DNS Options
  106. schema:
  107. type: list
  108. items:
  109. - variable: optionsEntry
  110. label: DNS Option Entry
  111. schema:
  112. type: dict
  113. attrs:
  114. - variable: name
  115. label: Option Name
  116. schema:
  117. type: string
  118. required: true
  119. - variable: value
  120. label: Option Value
  121. schema:
  122. type: string
  123. required: true
  124. - variable: photoprismNetwork
  125. label: ""
  126. group: Network Configuration
  127. schema:
  128. type: dict
  129. attrs:
  130. - variable: webPort
  131. label: WebUI Port
  132. description: The port for Photoprism WebUI
  133. schema:
  134. type: int
  135. default: 20800
  136. min: 9000
  137. max: 65535
  138. required: true
  139. - variable: hostNetwork
  140. label: Host Network
  141. description: |
  142. Bind to the host network. It's recommended to keep this disabled.
  143. schema:
  144. type: boolean
  145. default: false
  146. - variable: photoprismStorage
  147. label: ""
  148. group: Storage Configuration
  149. schema:
  150. type: dict
  151. attrs:
  152. - variable: import
  153. label: Photoprism Import Storage
  154. description: The path to store Photoprism Import.
  155. schema:
  156. type: dict
  157. attrs:
  158. - variable: type
  159. label: Type
  160. description: |
  161. ixVolume: Is dataset created automatically by the system.</br>
  162. Host Path: Is a path that already exists on the system.
  163. schema:
  164. type: string
  165. required: true
  166. immutable: true
  167. default: "ixVolume"
  168. enum:
  169. - value: "hostPath"
  170. description: Host Path (Path that already exists on the system)
  171. - value: "ixVolume"
  172. description: ixVolume (Dataset created automatically by the system)
  173. - variable: ixVolumeConfig
  174. label: ixVolume Configuration
  175. description: The configuration for the ixVolume dataset.
  176. schema:
  177. type: dict
  178. show_if: [["type", "=", "ixVolume"]]
  179. $ref:
  180. - "normalize/ixVolume"
  181. attrs:
  182. - variable: aclEnable
  183. label: Enable ACL
  184. description: Enable ACL for the dataset.
  185. schema:
  186. type: boolean
  187. default: false
  188. - variable: datasetName
  189. label: Dataset Name
  190. description: The name of the dataset to use for storage.
  191. schema:
  192. type: string
  193. required: true
  194. immutable: true
  195. hidden: true
  196. default: "import"
  197. - variable: aclEntries
  198. label: ACL Configuration
  199. schema:
  200. type: dict
  201. show_if: [["aclEnable", "=", true]]
  202. attrs: []
  203. - variable: hostPathConfig
  204. label: Host Path Configuration
  205. schema:
  206. type: dict
  207. show_if: [["type", "=", "hostPath"]]
  208. attrs:
  209. - variable: aclEnable
  210. label: Enable ACL
  211. description: Enable ACL for the dataset.
  212. schema:
  213. type: boolean
  214. default: false
  215. - variable: acl
  216. label: ACL Configuration
  217. schema:
  218. type: dict
  219. show_if: [["aclEnable", "=", true]]
  220. attrs: []
  221. $ref:
  222. - "normalize/acl"
  223. - variable: hostPath
  224. label: Host Path
  225. description: The host path to use for storage.
  226. schema:
  227. type: hostpath
  228. show_if: [["aclEnable", "=", false]]
  229. required: true
  230. - variable: storage
  231. label: Photoprism Storage
  232. description: The path to store Photoprism Storage.
  233. schema:
  234. type: dict
  235. attrs:
  236. - variable: type
  237. label: Type
  238. description: |
  239. ixVolume: Is dataset created automatically by the system.</br>
  240. Host Path: Is a path that already exists on the system.
  241. schema:
  242. type: string
  243. required: true
  244. immutable: true
  245. default: "ixVolume"
  246. enum:
  247. - value: "hostPath"
  248. description: Host Path (Path that already exists on the system)
  249. - value: "ixVolume"
  250. description: ixVolume (Dataset created automatically by the system)
  251. - variable: ixVolumeConfig
  252. label: ixVolume Configuration
  253. description: The configuration for the ixVolume dataset.
  254. schema:
  255. type: dict
  256. show_if: [["type", "=", "ixVolume"]]
  257. $ref:
  258. - "normalize/ixVolume"
  259. attrs:
  260. - variable: aclEnable
  261. label: Enable ACL
  262. description: Enable ACL for the dataset.
  263. schema:
  264. type: boolean
  265. default: false
  266. - variable: datasetName
  267. label: Dataset Name
  268. description: The name of the dataset to use for storage.
  269. schema:
  270. type: string
  271. required: true
  272. immutable: true
  273. hidden: true
  274. default: "storage"
  275. - variable: aclEntries
  276. label: ACL Configuration
  277. schema:
  278. type: dict
  279. show_if: [["aclEnable", "=", true]]
  280. attrs: []
  281. - variable: hostPathConfig
  282. label: Host Path Configuration
  283. schema:
  284. type: dict
  285. show_if: [["type", "=", "hostPath"]]
  286. attrs:
  287. - variable: aclEnable
  288. label: Enable ACL
  289. description: Enable ACL for the dataset.
  290. schema:
  291. type: boolean
  292. default: false
  293. - variable: acl
  294. label: ACL Configuration
  295. schema:
  296. type: dict
  297. show_if: [["aclEnable", "=", true]]
  298. attrs: []
  299. $ref:
  300. - "normalize/acl"
  301. - variable: hostPath
  302. label: Host Path
  303. description: The host path to use for storage.
  304. schema:
  305. type: hostpath
  306. show_if: [["aclEnable", "=", false]]
  307. required: true
  308. - variable: originals
  309. label: Photoprism Originals Storage
  310. description: The path to store Photoprism Originals.
  311. schema:
  312. type: dict
  313. attrs:
  314. - variable: type
  315. label: Type
  316. description: |
  317. ixVolume: Is dataset created automatically by the system.</br>
  318. Host Path: Is a path that already exists on the system.</br>
  319. schema:
  320. type: string
  321. required: true
  322. immutable: true
  323. default: "ixVolume"
  324. enum:
  325. - value: "hostPath"
  326. description: Host Path (Path that already exists on the system)
  327. - value: "ixVolume"
  328. description: ixVolume (Dataset created automatically by the system)
  329. - value: "emptyDir"
  330. description: emptyDir (Temporary directory created on the disk or in memory)
  331. - variable: readOnly
  332. label: Read Only
  333. description: Mount the volume as read only.
  334. schema:
  335. type: boolean
  336. default: false
  337. - variable: ixVolumeConfig
  338. label: ixVolume Configuration
  339. description: The configuration for the ixVolume dataset.
  340. schema:
  341. type: dict
  342. show_if: [["type", "=", "ixVolume"]]
  343. $ref:
  344. - "normalize/ixVolume"
  345. attrs:
  346. - variable: aclEnable
  347. label: Enable ACL
  348. description: Enable ACL for the dataset.
  349. schema:
  350. type: boolean
  351. default: false
  352. - variable: datasetName
  353. label: Dataset Name
  354. description: The name of the dataset to use for storage.
  355. schema:
  356. type: string
  357. required: true
  358. immutable: true
  359. hidden: true
  360. default: "originals"
  361. - variable: aclEntries
  362. label: ACL Configuration
  363. schema:
  364. type: dict
  365. show_if: [["aclEnable", "=", true]]
  366. attrs: []
  367. - variable: hostPathConfig
  368. label: Host Path Configuration
  369. schema:
  370. type: dict
  371. show_if: [["type", "=", "hostPath"]]
  372. attrs:
  373. - variable: aclEnable
  374. label: Enable ACL
  375. description: Enable ACL for the dataset.
  376. schema:
  377. type: boolean
  378. default: false
  379. - variable: acl
  380. label: ACL Configuration
  381. schema:
  382. type: dict
  383. show_if: [["aclEnable", "=", true]]
  384. attrs: []
  385. $ref:
  386. - "normalize/acl"
  387. - variable: hostPath
  388. label: Host Path
  389. description: The host path to use for storage.
  390. schema:
  391. type: hostpath
  392. show_if: [["aclEnable", "=", false]]
  393. required: true
  394. - variable: additionalStorages
  395. label: Additional Storage
  396. description: Additional storage for Photoprism.
  397. schema:
  398. type: list
  399. default: []
  400. items:
  401. - variable: storageEntry
  402. label: Storage Entry
  403. schema:
  404. type: dict
  405. attrs:
  406. - variable: type
  407. label: Type
  408. description: |
  409. ixVolume: Is dataset created automatically by the system.</br>
  410. Host Path: Is a path that already exists on the system.</br>
  411. SMB Share: Is a SMB share that is mounted to a persistent volume claim.
  412. schema:
  413. type: string
  414. required: true
  415. default: "ixVolume"
  416. immutable: true
  417. enum:
  418. - value: "hostPath"
  419. description: Host Path (Path that already exists on the system)
  420. - value: "ixVolume"
  421. description: ixVolume (Dataset created automatically by the system)
  422. - value: "smb-pv-pvc"
  423. description: SMB Share (Mounts a persistent volume claim to a SMB share)
  424. - variable: readOnly
  425. label: Read Only
  426. description: Mount the volume as read only.
  427. schema:
  428. type: boolean
  429. default: false
  430. - variable: mountPath
  431. label: Mount Path
  432. description: The path inside the container to mount the storage.
  433. schema:
  434. type: path
  435. required: true
  436. - variable: hostPathConfig
  437. label: Host Path Configuration
  438. schema:
  439. type: dict
  440. show_if: [["type", "=", "hostPath"]]
  441. attrs:
  442. - variable: aclEnable
  443. label: Enable ACL
  444. description: Enable ACL for the dataset.
  445. schema:
  446. type: boolean
  447. default: false
  448. - variable: acl
  449. label: ACL Configuration
  450. schema:
  451. type: dict
  452. show_if: [["aclEnable", "=", true]]
  453. attrs: []
  454. $ref:
  455. - "normalize/acl"
  456. - variable: hostPath
  457. label: Host Path
  458. description: The host path to use for storage.
  459. schema:
  460. type: hostpath
  461. show_if: [["aclEnable", "=", false]]
  462. required: true
  463. - variable: ixVolumeConfig
  464. label: ixVolume Configuration
  465. description: The configuration for the ixVolume dataset.
  466. schema:
  467. type: dict
  468. show_if: [["type", "=", "ixVolume"]]
  469. $ref:
  470. - "normalize/ixVolume"
  471. attrs:
  472. - variable: aclEnable
  473. label: Enable ACL
  474. description: Enable ACL for the dataset.
  475. schema:
  476. type: boolean
  477. default: false
  478. - variable: datasetName
  479. label: Dataset Name
  480. description: The name of the dataset to use for storage.
  481. schema:
  482. type: string
  483. required: true
  484. immutable: true
  485. default: "storage_entry"
  486. - variable: aclEntries
  487. label: ACL Configuration
  488. schema:
  489. type: dict
  490. show_if: [["aclEnable", "=", true]]
  491. attrs: []
  492. - variable: smbConfig
  493. label: SMB Share Configuration
  494. description: The configuration for the SMB Share.
  495. schema:
  496. type: dict
  497. show_if: [["type", "=", "smb-pv-pvc"]]
  498. attrs:
  499. - variable: server
  500. label: Server
  501. description: The server for the SMB share.
  502. schema:
  503. type: string
  504. required: true
  505. - variable: share
  506. label: Share
  507. description: The share name for the SMB share.
  508. schema:
  509. type: string
  510. required: true
  511. - variable: domain
  512. label: Domain (Optional)
  513. description: The domain for the SMB share.
  514. schema:
  515. type: string
  516. - variable: username
  517. label: Username
  518. description: The username for the SMB share.
  519. schema:
  520. type: string
  521. required: true
  522. - variable: password
  523. label: Password
  524. description: The password for the SMB share.
  525. schema:
  526. type: string
  527. required: true
  528. private: true
  529. - variable: size
  530. label: Size (in Gi)
  531. description: The size of the volume quota.
  532. schema:
  533. type: int
  534. required: true
  535. min: 1
  536. default: 1
  537. - variable: resources
  538. label: Resources Configuration
  539. group: Resources Configuration
  540. schema:
  541. type: dict
  542. attrs:
  543. - variable: limits
  544. label: Limits
  545. schema:
  546. type: dict
  547. attrs:
  548. - variable: cpu
  549. label: CPU
  550. description: CPU limit for Photoprism.
  551. schema:
  552. type: string
  553. max_length: 6
  554. valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$'
  555. valid_chars_error: |
  556. Valid CPU limit formats are</br>
  557. - Plain Integer - eg. 1</br>
  558. - Float - eg. 0.5</br>
  559. - Milicpu - eg. 500m
  560. default: "4000m"
  561. required: true
  562. - variable: memory
  563. label: Memory
  564. description: Memory limit for Photoprism.
  565. schema:
  566. type: string
  567. max_length: 12
  568. valid_chars: '^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$'
  569. valid_chars_error: |
  570. Valid Memory limit formats are</br>
  571. - Suffixed with E/P/T/G/M/K - eg. 1G</br>
  572. - Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi</br>
  573. - Plain Integer in bytes - eg. 1024</br>
  574. - Exponent - eg. 134e6
  575. default: "8Gi"
  576. required: true
  577. - variable: photoprismGPU
  578. group: Resources Configuration
  579. label: GPU Configuration
  580. schema:
  581. type: dict
  582. $ref:
  583. - "definitions/gpuConfiguration"
  584. attrs: []