questions.yaml 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. groups:
  2. - name: "Configuration"
  3. description: "Photo Prism application configuration"
  4. - name: "Storage"
  5. description: "Configure storage for photo prism"
  6. - name: "Networking"
  7. description: "Networking Configuration for photo prism"
  8. - name: "Advanced DNS Settings"
  9. description: "Configure DNS settings"
  10. - name: "Resource Reservation"
  11. description: "Specify resources to be allocated to workload"
  12. - name: "Resource Limits"
  13. description: "Set CPU/memory limits for Kubernetes Pod"
  14. portals:
  15. web_portal:
  16. protocols:
  17. - "http"
  18. host:
  19. - "$node_ip"
  20. ports:
  21. - "$variable-web_port"
  22. path: "/"
  23. questions:
  24. - variable: host_network
  25. group: Networking
  26. label: Host Network
  27. description: |
  28. Bind to the host network. It's recommended to keep this disabled but may be needed for photoprism to be reachable from a hostNetworked VPN.</br>
  29. schema:
  30. type: boolean
  31. default: false
  32. - variable: web_port
  33. label: "Web Port for photo prism"
  34. group: Networking
  35. schema:
  36. type: int
  37. min: 8000
  38. max: 65535
  39. default: 20800
  40. required: true
  41. - variable: dnsConfig
  42. label: "DNS Configuration"
  43. group: "Advanced DNS Settings"
  44. schema:
  45. type: dict
  46. attrs:
  47. - variable: options
  48. label: "DNS Options"
  49. schema:
  50. type: list
  51. items:
  52. - variable: optionsEntry
  53. label: "Option Entry Configuration"
  54. schema:
  55. type: dict
  56. attrs:
  57. - variable: name
  58. label: "Option Name"
  59. schema:
  60. type: string
  61. required: true
  62. - variable: value
  63. label: "Option Value"
  64. schema:
  65. type: string
  66. required: true
  67. - variable: ownerUID
  68. label: "Storage User ID"
  69. description: "User ID of the storage volume being used (application will chown the storage volume path with specified UID)"
  70. group: Configuration
  71. schema:
  72. type: int
  73. default: 568
  74. min: 1
  75. max: 65535
  76. - variable: ownerGID
  77. label: "Storage Group ID"
  78. description: "Group ID of the storage volume being used (application will chown the storage volume path with specified GID)"
  79. group: Configuration
  80. schema:
  81. type: int
  82. default: 568
  83. min: 1
  84. max: 65535
  85. - variable: password
  86. label: "Password"
  87. group: "Configuration"
  88. schema:
  89. type: string
  90. private: true
  91. required: true
  92. empty: false
  93. immutable: true
  94. default: "admin123"
  95. show_if: [["public", "=", false]]
  96. - variable: public
  97. label: "Enable Public Access"
  98. description: "Disable password authentication, WebDAV, and the advanced settings page"
  99. group: "Configuration"
  100. schema:
  101. type: boolean
  102. default: false
  103. - variable: environmentVariables
  104. label: "Photo Prism environment"
  105. group: "Configuration"
  106. schema:
  107. type: list
  108. default: []
  109. items:
  110. - variable: environmentVariable
  111. label: "Environment Variable"
  112. schema:
  113. type: dict
  114. attrs:
  115. - variable: name
  116. label: "Name"
  117. schema:
  118. type: string
  119. - variable: value
  120. label: "Value"
  121. schema:
  122. type: string
  123. - variable: appVolumeMounts
  124. label: "Photo Prism Storage"
  125. group: "Storage"
  126. schema:
  127. type: dict
  128. attrs:
  129. - variable: original
  130. label: "Storage Volume for Original Media"
  131. schema:
  132. type: dict
  133. attrs:
  134. - variable: datasetName
  135. label: "Original Storage Volume Dataset Name"
  136. schema:
  137. type: string
  138. hidden: true
  139. $ref:
  140. - "normalize/ixVolume"
  141. show_if: [["hostPathEnabled", "=", false]]
  142. default: "ix-photoprism_original"
  143. editable: false
  144. - variable: mountPath
  145. label: "Original Storage Mount Path"
  146. description: "Path where the volume will be mounted inside the pod"
  147. schema:
  148. type: path
  149. hidden: true
  150. editable: true
  151. default: "/photoprism/originals"
  152. - variable: readOnly
  153. label: "Read Only"
  154. description: "Mount volume as read only"
  155. schema:
  156. type: boolean
  157. default: false
  158. - variable: hostPathEnabled
  159. label: "Enable Custom Host Path for Photo Prism Original Storage Volume"
  160. schema:
  161. type: boolean
  162. default: false
  163. show_subquestions_if: true
  164. subquestions:
  165. - variable: hostPath
  166. label: "Host Path for Photo Prism Original Storage Volume"
  167. schema:
  168. type: hostpath
  169. required: true
  170. - variable: storage
  171. label: "Storage Volume for sidecar/cache/database"
  172. schema:
  173. type: dict
  174. attrs:
  175. - variable: datasetName
  176. label: "Storage Volume Dataset Name"
  177. schema:
  178. type: string
  179. hidden: true
  180. $ref:
  181. - "normalize/ixVolume"
  182. show_if: [["hostPathEnabled", "=", false]]
  183. default: "ix-photoprism_storage"
  184. editable: false
  185. - variable: mountPath
  186. label: "Storage Mount Path"
  187. description: "Path where the volume will be mounted inside the pod"
  188. schema:
  189. type: path
  190. hidden: true
  191. editable: true
  192. default: "/photoprism/storage"
  193. - variable: hostPathEnabled
  194. label: "Enable Custom Host Path for Photo Prism Storage Volume"
  195. schema:
  196. type: boolean
  197. default: false
  198. show_subquestions_if: true
  199. subquestions:
  200. - variable: hostPath
  201. label: "Host Path for Photo Prism Storage Volume"
  202. schema:
  203. type: hostpath
  204. required: true
  205. - variable: import
  206. label: "Storage Volume for imports"
  207. schema:
  208. type: dict
  209. attrs:
  210. - variable: datasetName
  211. label: "Import Storage Volume Dataset Name"
  212. schema:
  213. type: string
  214. hidden: true
  215. $ref:
  216. - "normalize/ixVolume"
  217. show_if: [["hostPathEnabled", "=", false]]
  218. default: "ix-photoprism_import"
  219. editable: false
  220. - variable: mountPath
  221. label: "Storage Mount Path"
  222. description: "Path where the volume will be mounted inside the pod"
  223. schema:
  224. type: path
  225. hidden: true
  226. editable: true
  227. default: "/photoprism/import"
  228. - variable: hostPathEnabled
  229. label: "Enable Custom Host Path for Photo Prism Import Storage Volume"
  230. schema:
  231. type: boolean
  232. default: false
  233. show_subquestions_if: true
  234. subquestions:
  235. - variable: hostPath
  236. label: "Host Path for Photo Prism Import Storage Volume"
  237. schema:
  238. type: hostpath
  239. required: true
  240. - variable: extraAppVolumeMounts
  241. label: "Extra Host Path Volumes"
  242. group: "Storage"
  243. schema:
  244. type: list
  245. items:
  246. - variable: extraAppVolume
  247. label: "Host Path Volume"
  248. description: "Add an extra host path volume for Photo Prism application"
  249. schema:
  250. type: dict
  251. attrs:
  252. - variable: mountPath
  253. label: "Mount Path in Pod"
  254. description: "Path where the volume will be mounted inside the pod"
  255. schema:
  256. type: path
  257. required: true
  258. - variable: readOnly
  259. label: "Read Only"
  260. description: "Mount volume as read only"
  261. schema:
  262. type: boolean
  263. default: false
  264. - variable: hostPath
  265. label: "Host Path"
  266. description: "Host path"
  267. schema:
  268. type: hostpath
  269. required: true
  270. # Specify GPU configuration
  271. - variable: gpuConfiguration
  272. label: "GPU Configuration"
  273. group: "Resource Reservation"
  274. schema:
  275. type: dict
  276. $ref:
  277. - "definitions/gpuConfiguration"
  278. attrs: []
  279. - variable: enableResourceLimits
  280. label: "Enable Pod resource limits"
  281. group: "Resource Limits"
  282. schema:
  283. type: boolean
  284. default: false
  285. - variable: cpuLimit
  286. label: "CPU Limit"
  287. description: "CPU resource limit allow plain integer values with suffix m(milli) e.g 1000m, 100."
  288. group: "Resource Limits"
  289. schema:
  290. type: string
  291. show_if: [["enableResourceLimits", "=", true]]
  292. valid_chars: "^\\d+(?:\\.\\d+(?!.*m$)|m?$)"
  293. default: "4000m"
  294. - variable: memLimit
  295. label: "Memory Limit"
  296. group: "Resource Limits"
  297. description: "Memory limits is specified by number of bytes. Followed by quantity suffix like E,P,T,G,M,k and Ei,Pi,Ti,Mi,Gi,Ki can also be used. e.g 129e6, 129M, 128974848000m, 123Mi"
  298. schema:
  299. type: string
  300. show_if: [["enableResourceLimits", "=", true]]
  301. valid_chars: "^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
  302. default: "8Gi"