questions.yaml 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. groups:
  2. - name: "Configuration"
  3. description: "Pihole application configuration"
  4. - name: "Storage"
  5. description: "Configure storage for pihole"
  6. - name: "Networking"
  7. description: "Networking Configuration for pihole"
  8. - name: "Advanced DNS Settings"
  9. description: "Configure DNS settings"
  10. portals:
  11. web_portal:
  12. protocols:
  13. - "http"
  14. host:
  15. - "$node_ip"
  16. ports:
  17. - "$variable-web_port"
  18. path: "/admin/"
  19. questions:
  20. - variable: web_port
  21. label: "Web Port for pihole"
  22. group: Networking
  23. schema:
  24. type: int
  25. min: 8000
  26. max: 65535
  27. default: 20720
  28. required: true
  29. - variable: dns_tcp_port
  30. label: "DNS TCP Port for pihole"
  31. group: Networking
  32. schema:
  33. type: int
  34. min: 8000
  35. max: 65535
  36. default: 20721
  37. required: true
  38. - variable: dns_udp_port
  39. label: "DNS UDP Port for pihole"
  40. group: Networking
  41. schema:
  42. type: int
  43. min: 8000
  44. max: 65535
  45. default: 20721
  46. required: true
  47. - variable: dhcp
  48. label: "Enable DHCP"
  49. group: "Networking"
  50. schema:
  51. type: boolean
  52. default: false
  53. - variable: dhcp_port
  54. label: "DHCP Port for pihole"
  55. group: Networking
  56. schema:
  57. type: int
  58. min: 8000
  59. max: 65535
  60. default: 20722
  61. required: true
  62. show_if: [["dhcp", "=", true]]
  63. - variable: dnsConfig
  64. label: "DNS Configuration"
  65. group: "Advanced DNS Settings"
  66. schema:
  67. type: dict
  68. attrs:
  69. - variable: options
  70. label: "DNS Options"
  71. schema:
  72. type: list
  73. items:
  74. - variable: optionsEntry
  75. label: "Option Entry Configuration"
  76. schema:
  77. type: dict
  78. attrs:
  79. - variable: name
  80. label: "Option Name"
  81. schema:
  82. type: string
  83. required: true
  84. - variable: value
  85. label: "Option Value"
  86. schema:
  87. type: string
  88. required: true
  89. - variable: ownerUID
  90. label: "Storage User ID"
  91. description: "User ID of the dnsmasq volume being used (application will chown the volume path with specified UID)"
  92. group: Configuration
  93. schema:
  94. type: int
  95. default: 568
  96. min: 1
  97. max: 65535
  98. - variable: ownerGID
  99. label: "Storage Group ID"
  100. description: "Group ID of the dnsmasq volume being used (application will chown the volume path with specified GID)"
  101. group: Configuration
  102. schema:
  103. type: int
  104. default: 568
  105. min: 1
  106. max: 65535
  107. - variable: password
  108. label: "Admin password"
  109. group: "Configuration"
  110. schema:
  111. type: string
  112. private: true
  113. required: true
  114. empty: false
  115. immutable: true
  116. - variable: timezone
  117. label: "Configure timezone"
  118. group: "Configuration"
  119. description: "Configure timezone for pihole"
  120. schema:
  121. type: string
  122. $ref:
  123. - "definitions/timezone"
  124. - variable: hostNetwork
  125. label: "Enable Host Network"
  126. group: "Networking"
  127. schema:
  128. type: boolean
  129. default: false
  130. - variable: environmentVariables
  131. label: "Pihole environment"
  132. group: "Configuration"
  133. schema:
  134. type: list
  135. default: []
  136. items:
  137. - variable: environmentVariable
  138. label: "Environment Variable"
  139. schema:
  140. type: dict
  141. attrs:
  142. - variable: name
  143. label: "Name"
  144. schema:
  145. type: string
  146. - variable: value
  147. label: "Value"
  148. schema:
  149. type: string
  150. - variable: appVolumeMounts
  151. label: "Pihole Storage"
  152. group: "Storage"
  153. schema:
  154. type: dict
  155. attrs:
  156. - variable: config
  157. label: "Configuration Volume"
  158. schema:
  159. type: dict
  160. attrs:
  161. - variable: datasetName
  162. label: "Configuration Volume Dataset Name"
  163. schema:
  164. type: string
  165. hidden: true
  166. $ref:
  167. - "normalize/ixVolume"
  168. show_if: [["hostPathEnabled", "=", false]]
  169. default: "ix-pihole_config"
  170. editable: false
  171. - variable: mountPath
  172. label: "Configuration 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: "/etc/pihole"
  179. - variable: hostPathEnabled
  180. label: "Enable Custom Host Path for Pihole Configuration Volume"
  181. schema:
  182. type: boolean
  183. default: false
  184. show_subquestions_if: true
  185. subquestions:
  186. - variable: hostPath
  187. label: "Host Path for Pihole Configuration Volume"
  188. schema:
  189. type: hostpath
  190. required: true
  191. - variable: dnsmasq
  192. label: "DNSMASQ Volume for pihole"
  193. schema:
  194. type: dict
  195. attrs:
  196. - variable: datasetName
  197. label: "DNSMASQ Volume Dataset Name"
  198. schema:
  199. type: string
  200. hidden: true
  201. $ref:
  202. - "normalize/ixVolume"
  203. show_if: [["hostPathEnabled", "=", false]]
  204. default: "ix-pihole_dnsmasq"
  205. editable: false
  206. - variable: mountPath
  207. label: "DNSMASQ 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: "/etc/dnsmasq.d"
  214. - variable: hostPathEnabled
  215. label: "Enable Custom Host Path for Pihole DNSMASQ Volume"
  216. schema:
  217. type: boolean
  218. default: false
  219. show_subquestions_if: true
  220. subquestions:
  221. - variable: hostPath
  222. label: "Host Path for Pihole DNSMASQ 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 Pihole 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