questions.yaml 9.3 KB

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