questions.yaml 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. groups:
  2. - name: "Container Images"
  3. description: "Image to be used for container"
  4. - name: "Nextcloud Configuration"
  5. description: "Configuration details for Nextcloud workload"
  6. - name: "Storage"
  7. description: "Configure Storage for Nextcloud"
  8. - name: "Container Configuration"
  9. description: "Configure nextcloud container parameters"
  10. - name: "Postgresql Configuration"
  11. description: "Configure Postgresql for nextcloud"
  12. - name: "CronJob configuration"
  13. description: "Configure CronJob for nextcloud"
  14. - name: "Scaling/Upgrade Policy"
  15. description: "Configure how pods are replaced when configuration is upgraded"
  16. - name: "Advanced DNS Settings"
  17. description: "Configure DNS settings"
  18. portals:
  19. web_portal:
  20. protocols:
  21. - "$kubernetes-resource_configmap_nginx-configuration_protocol"
  22. host:
  23. - "$variable-nextcloud.host"
  24. ports:
  25. - "$variable-service.nodePort"
  26. questions:
  27. - variable: dnsConfig
  28. label: "DNS Configuration"
  29. group: "Advanced DNS Settings"
  30. schema:
  31. type: dict
  32. attrs:
  33. - variable: options
  34. label: "DNS Options"
  35. schema:
  36. type: list
  37. items:
  38. - variable: optionsEntry
  39. label: "Option Entry Configuration"
  40. schema:
  41. type: dict
  42. attrs:
  43. - variable: name
  44. label: "Option Name"
  45. schema:
  46. type: string
  47. required: true
  48. - variable: value
  49. label: "Option Value"
  50. schema:
  51. type: string
  52. required: true
  53. - variable: certificate
  54. description: "Configure Certificate for Nextcloud"
  55. label: "Certificate Configuration"
  56. group: "Nextcloud Configuration"
  57. schema:
  58. type: int
  59. $ref:
  60. - "definitions/certificate"
  61. - variable: nextcloud
  62. description: "Nextcloud configuration details"
  63. label: "Nextcloud Configuration"
  64. group: "Nextcloud Configuration"
  65. schema:
  66. type: dict
  67. required: true
  68. additional_attrs: true
  69. attrs:
  70. - variable: host
  71. description: "Nextcloud host to create application URLs"
  72. label: "Nextcloud host"
  73. schema:
  74. type: string
  75. $ref:
  76. - "definitions/nodeIP"
  77. - variable: username
  78. label: "Username"
  79. description: "Name of the Nextcloud admin user"
  80. schema:
  81. type: string
  82. default: "admin"
  83. required: true
  84. - variable: password
  85. label: "Password"
  86. description: "Password for the Nextcloud admin user"
  87. schema:
  88. type: string
  89. private: true
  90. default: "changeme"
  91. required: true
  92. - variable: datadir
  93. label: "Nextcloud data directory"
  94. description: "Configures the data directory where nextcloud stores all files from the users"
  95. schema:
  96. type: path
  97. default: "/var/www/html/data"
  98. required: true
  99. - variable: cronjob
  100. description: "Setup cronjob for nextcloud"
  101. label: "Setup cronjob for nextcloud"
  102. group: "CronJob configuration"
  103. schema:
  104. type: dict
  105. attrs:
  106. - variable: enabled
  107. label: "Enable cronjobs for nextcloud"
  108. schema:
  109. type: boolean
  110. default: false
  111. show_subquestions_if: true
  112. subquestions:
  113. - variable: schedule
  114. label: Schedule
  115. schema:
  116. type: string
  117. default: "1 */24 * * *"
  118. empty: false
  119. # Update strategy
  120. - variable: updateStrategy
  121. description: "Upgrade Policy"
  122. label: "Update Strategy"
  123. group: "Scaling/Upgrade Policy"
  124. schema:
  125. type: string
  126. default: "Recreate"
  127. enum:
  128. - value: "RollingUpdate"
  129. description: "Create new pods and then kill old ones"
  130. - value: "Recreate"
  131. description: "Kill existing pods before creating new ones"
  132. - variable: service
  133. description: "Nextcloud Service Configuration"
  134. label: "Nextcloud Service Configuration"
  135. group: "Nextcloud Configuration"
  136. schema:
  137. type: dict
  138. required: true
  139. attrs:
  140. - variable: nodePort
  141. label: "Node Port to use for Nextcloud"
  142. schema:
  143. type: int
  144. min: 9000
  145. max: 65535
  146. default: 9001
  147. required: true
  148. - variable: appVolumeMounts
  149. label: "Nextcloud Storage"
  150. group: "Storage"
  151. schema:
  152. type: dict
  153. attrs:
  154. - variable: nextcloud-data
  155. label: "Nextcloud Data Volume"
  156. schema:
  157. type: dict
  158. attrs:
  159. - variable: datasetName
  160. label: "Nextcloud Data Volume Name"
  161. schema:
  162. type: string
  163. hidden: true
  164. $ref:
  165. - "normalize/ixVolume"
  166. show_if: [["hostPathEnabled", "=", false]]
  167. default: "ix-nextcloud_data"
  168. editable: false
  169. - variable: mountPath
  170. label: "Nextcloud Data Mount Path"
  171. description: "Path where the volume will be mounted inside the pod"
  172. schema:
  173. type: path
  174. hidden: true
  175. editable: false
  176. default: "/var/www"
  177. - variable: hostPathEnabled
  178. label: "Enable Host Path for Nextcloud Data Volume"
  179. schema:
  180. type: boolean
  181. default: false
  182. show_subquestions_if: true
  183. subquestions:
  184. - variable: hostPath
  185. label: "Host Path for Nextcloud Data Volume"
  186. schema:
  187. type: hostpath
  188. required: true
  189. - variable: extraAppVolumeMounts
  190. label: "Nextcloud Extra Host Path Volumes"
  191. group: "Storage"
  192. schema:
  193. type: list
  194. items:
  195. - variable: extraAppVolume
  196. label: "Nextcloud Host Path Volume"
  197. description: "Add an extra host path volume for nextcloud application"
  198. schema:
  199. type: dict
  200. attrs:
  201. - variable: mountPath
  202. label: "Mount Path in Pod"
  203. description: "Path where the volume will be mounted inside the pod"
  204. schema:
  205. type: path
  206. required: true
  207. - variable: hostPath
  208. label: "Host Path"
  209. description: "Host path"
  210. schema:
  211. type: hostpath
  212. required: true
  213. - variable: postgresAppVolumeMounts
  214. label: "Postgres Storage"
  215. group: "Storage"
  216. schema:
  217. type: dict
  218. hidden: true
  219. attrs:
  220. - variable: postgres-data
  221. label: "Postgres Data Volume"
  222. schema:
  223. type: dict
  224. attrs:
  225. - variable: datasetName
  226. label: "Postgres Data Volume Name"
  227. schema:
  228. type: string
  229. $ref:
  230. - "normalize/ixVolume"
  231. default: "ix-postgres_data"
  232. editable: false
  233. - variable: mountPath
  234. label: "Postgresql Data Mount Path"
  235. description: "Path where the volume will be mounted inside the pod"
  236. schema:
  237. type: path
  238. editable: false
  239. default: "/var/lib/postgresql/data"
  240. - variable: postgres-backup
  241. label: "Postgres Backup Volume"
  242. schema:
  243. type: dict
  244. attrs:
  245. - variable: datasetName
  246. label: "Postgres Backup Volume Name"
  247. schema:
  248. type: string
  249. $ref:
  250. - "normalize/ixVolume"
  251. default: "ix-postgres_backups"
  252. editable: false
  253. - variable: mountPath
  254. label: "Postgresql Backup Mount Path"
  255. description: "Path where the volume will be mounted inside the pod"
  256. schema:
  257. type: path
  258. editable: false
  259. default: "/postgres_backups"