questions.yaml 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  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: hostPathEnabled
  153. label: "Enable Custom Host Path for Photo Prism Original Storage Volume"
  154. schema:
  155. type: boolean
  156. default: false
  157. show_subquestions_if: true
  158. subquestions:
  159. - variable: hostPath
  160. label: "Host Path for Photo Prism Original Storage Volume"
  161. schema:
  162. type: hostpath
  163. required: true
  164. - variable: storage
  165. label: "Storage Volume for sidecar/cache/database"
  166. schema:
  167. type: dict
  168. attrs:
  169. - variable: datasetName
  170. label: "Storage Volume Dataset Name"
  171. schema:
  172. type: string
  173. hidden: true
  174. $ref:
  175. - "normalize/ixVolume"
  176. show_if: [["hostPathEnabled", "=", false]]
  177. default: "ix-photoprism_storage"
  178. editable: false
  179. - variable: mountPath
  180. label: "Storage Mount Path"
  181. description: "Path where the volume will be mounted inside the pod"
  182. schema:
  183. type: path
  184. hidden: true
  185. editable: true
  186. default: "/photoprism/storage"
  187. - variable: hostPathEnabled
  188. label: "Enable Custom Host Path for Photo Prism Storage Volume"
  189. schema:
  190. type: boolean
  191. default: false
  192. show_subquestions_if: true
  193. subquestions:
  194. - variable: hostPath
  195. label: "Host Path for Photo Prism Storage Volume"
  196. schema:
  197. type: hostpath
  198. required: true
  199. - variable: import
  200. label: "Storage Volume for imports"
  201. schema:
  202. type: dict
  203. attrs:
  204. - variable: datasetName
  205. label: "Import Storage Volume Dataset Name"
  206. schema:
  207. type: string
  208. hidden: true
  209. $ref:
  210. - "normalize/ixVolume"
  211. show_if: [["hostPathEnabled", "=", false]]
  212. default: "ix-photoprism_import"
  213. editable: false
  214. - variable: mountPath
  215. label: "Storage Mount Path"
  216. description: "Path where the volume will be mounted inside the pod"
  217. schema:
  218. type: path
  219. hidden: true
  220. editable: true
  221. default: "/photoprism/import"
  222. - variable: hostPathEnabled
  223. label: "Enable Custom Host Path for Photo Prism Import Storage Volume"
  224. schema:
  225. type: boolean
  226. default: false
  227. show_subquestions_if: true
  228. subquestions:
  229. - variable: hostPath
  230. label: "Host Path for Photo Prism Import Storage Volume"
  231. schema:
  232. type: hostpath
  233. required: true
  234. - variable: extraAppVolumeMounts
  235. label: "Extra Host Path Volumes"
  236. group: "Storage"
  237. schema:
  238. type: list
  239. items:
  240. - variable: extraAppVolume
  241. label: "Host Path Volume"
  242. description: "Add an extra host path volume for Photo Prism application"
  243. schema:
  244. type: dict
  245. attrs:
  246. - variable: mountPath
  247. label: "Mount Path in Pod"
  248. description: "Path where the volume will be mounted inside the pod"
  249. schema:
  250. type: path
  251. required: true
  252. - variable: hostPath
  253. label: "Host Path"
  254. description: "Host path"
  255. schema:
  256. type: hostpath
  257. required: true
  258. # Specify GPU configuration
  259. - variable: gpuConfiguration
  260. label: "GPU Configuration"
  261. group: "Resource Reservation"
  262. schema:
  263. type: dict
  264. $ref:
  265. - "definitions/gpuConfiguration"
  266. attrs: []
  267. - variable: enableResourceLimits
  268. label: "Enable Pod resource limits"
  269. group: "Resource Limits"
  270. schema:
  271. type: boolean
  272. default: false
  273. - variable: cpuLimit
  274. label: "CPU Limit"
  275. description: "CPU resource limit allow plain integer values with suffix m(milli) e.g 1000m, 100."
  276. group: "Resource Limits"
  277. schema:
  278. type: string
  279. show_if: [["enableResourceLimits", "=", true]]
  280. valid_chars: "^\\d+(?:\\.\\d+(?!.*m$)|m?$)"
  281. default: "4000m"
  282. - variable: memLimit
  283. label: "Memory Limit"
  284. group: "Resource Limits"
  285. 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"
  286. schema:
  287. type: string
  288. show_if: [["enableResourceLimits", "=", true]]
  289. valid_chars: "^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
  290. default: "8Gi"