questions.yaml 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  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. - name: "Resource Limits"
  11. description: "Set CPU/memory limits for Kubernetes Pod"
  12. portals:
  13. web_portal:
  14. protocols:
  15. - "http"
  16. host:
  17. - "$node_ip"
  18. ports:
  19. - "$variable-web_port"
  20. path: "/admin/"
  21. questions:
  22. - variable: web_port
  23. label: "Web Port for pihole"
  24. group: Networking
  25. schema:
  26. type: int
  27. min: 8000
  28. max: 65535
  29. default: 20720
  30. required: true
  31. - variable: dhcp
  32. label: "Enable DHCP"
  33. group: "Networking"
  34. schema:
  35. type: boolean
  36. default: false
  37. show_subquestions_if: true
  38. subquestions:
  39. - variable: dhcp_start
  40. label: "DHCP Start Address"
  41. group: Networking
  42. schema:
  43. type: ipaddr
  44. cidr: false
  45. required: true
  46. - variable: dhcp_end
  47. label: "DHCP End Address"
  48. group: Networking
  49. schema:
  50. type: ipaddr
  51. cidr: false
  52. required: true
  53. - variable: dhcp_gateway
  54. label: "Gateway"
  55. group: Networking
  56. schema:
  57. type: ipaddr
  58. cidr: false
  59. required: true
  60. - variable: dnsConfig
  61. label: "DNS Configuration"
  62. group: "Advanced DNS Settings"
  63. schema:
  64. type: dict
  65. attrs:
  66. - variable: options
  67. label: "DNS Options"
  68. schema:
  69. type: list
  70. items:
  71. - variable: optionsEntry
  72. label: "Option Entry Configuration"
  73. schema:
  74. type: dict
  75. attrs:
  76. - variable: name
  77. label: "Option Name"
  78. schema:
  79. type: string
  80. required: true
  81. - variable: value
  82. label: "Option Value"
  83. schema:
  84. type: string
  85. required: true
  86. - variable: ownerUID
  87. label: "Storage User ID"
  88. description: "User ID of the dnsmasq volume being used (application will chown the volume path with specified UID)"
  89. group: Configuration
  90. schema:
  91. type: int
  92. default: 568
  93. min: 1
  94. max: 65535
  95. - variable: ownerGID
  96. label: "Storage Group ID"
  97. description: "Group ID of the dnsmasq volume being used (application will chown the volume path with specified GID)"
  98. group: Configuration
  99. schema:
  100. type: int
  101. default: 568
  102. min: 1
  103. max: 65535
  104. - variable: password
  105. label: "Admin password"
  106. group: "Configuration"
  107. schema:
  108. type: string
  109. private: true
  110. required: true
  111. empty: false
  112. immutable: true
  113. - variable: timezone
  114. label: "Configure timezone"
  115. group: "Configuration"
  116. description: "Configure timezone for pihole"
  117. schema:
  118. type: string
  119. $ref:
  120. - "definitions/timezone"
  121. - variable: environmentVariables
  122. label: "Pihole environment"
  123. group: "Configuration"
  124. schema:
  125. type: list
  126. default: []
  127. items:
  128. - variable: environmentVariable
  129. label: "Environment Variable"
  130. schema:
  131. type: dict
  132. attrs:
  133. - variable: name
  134. label: "Name"
  135. schema:
  136. type: string
  137. - variable: value
  138. label: "Value"
  139. schema:
  140. type: string
  141. - variable: appVolumeMounts
  142. label: "Pihole Storage"
  143. group: "Storage"
  144. schema:
  145. type: dict
  146. attrs:
  147. - variable: config
  148. label: "Configuration Volume"
  149. schema:
  150. type: dict
  151. attrs:
  152. - variable: datasetName
  153. label: "Configuration Volume Dataset Name"
  154. schema:
  155. type: string
  156. hidden: true
  157. $ref:
  158. - "normalize/ixVolume"
  159. show_if: [["hostPathEnabled", "=", false]]
  160. default: "ix-pihole_config"
  161. editable: false
  162. - variable: mountPath
  163. label: "Configuration Mount Path"
  164. description: "Path where the volume will be mounted inside the pod"
  165. schema:
  166. type: path
  167. hidden: true
  168. editable: true
  169. default: "/etc/pihole"
  170. - variable: hostPathEnabled
  171. label: "Enable Custom Host Path for Pihole Configuration Volume"
  172. schema:
  173. type: boolean
  174. default: false
  175. show_subquestions_if: true
  176. subquestions:
  177. - variable: hostPath
  178. label: "Host Path for Pihole Configuration Volume"
  179. schema:
  180. type: hostpath
  181. required: true
  182. - variable: dnsmasq
  183. label: "DNSMASQ Volume for pihole"
  184. schema:
  185. type: dict
  186. attrs:
  187. - variable: datasetName
  188. label: "DNSMASQ Volume Dataset Name"
  189. schema:
  190. type: string
  191. hidden: true
  192. $ref:
  193. - "normalize/ixVolume"
  194. show_if: [["hostPathEnabled", "=", false]]
  195. default: "ix-pihole_dnsmasq"
  196. editable: false
  197. - variable: mountPath
  198. label: "DNSMASQ Mount Path"
  199. description: "Path where the volume will be mounted inside the pod"
  200. schema:
  201. type: path
  202. hidden: true
  203. editable: true
  204. default: "/etc/dnsmasq.d"
  205. - variable: hostPathEnabled
  206. label: "Enable Custom Host Path for Pihole DNSMASQ Volume"
  207. schema:
  208. type: boolean
  209. default: false
  210. show_subquestions_if: true
  211. subquestions:
  212. - variable: hostPath
  213. label: "Host Path for Pihole DNSMASQ Volume"
  214. schema:
  215. type: hostpath
  216. required: true
  217. - variable: extraAppVolumeMounts
  218. label: "Extra Host Path Volumes"
  219. group: "Storage"
  220. schema:
  221. type: list
  222. items:
  223. - variable: extraAppVolume
  224. label: "Host Path Volume"
  225. description: "Add an extra host path volume for Pihole application"
  226. schema:
  227. type: dict
  228. attrs:
  229. - variable: mountPath
  230. label: "Mount Path in Pod"
  231. description: "Path where the volume will be mounted inside the pod"
  232. schema:
  233. type: path
  234. required: true
  235. - variable: hostPath
  236. label: "Host Path"
  237. description: "Host path"
  238. schema:
  239. type: hostpath
  240. required: true
  241. - variable: enableResourceLimits
  242. label: "Enable Pod resource limits"
  243. group: "Resource Limits"
  244. schema:
  245. type: boolean
  246. default: false
  247. - variable: cpuLimit
  248. label: "CPU Limit"
  249. description: "CPU resource limit allow plain integer values with suffix m(milli) e.g 1000m, 100."
  250. group: "Resource Limits"
  251. schema:
  252. type: string
  253. show_if: [["enableResourceLimits", "=", true]]
  254. valid_chars: "^\\d+(?:\\.\\d+(?!.*m$)|m?$)"
  255. default: "4000m"
  256. - variable: memLimit
  257. label: "Memory Limit"
  258. group: "Resource Limits"
  259. 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"
  260. schema:
  261. type: string
  262. show_if: [["enableResourceLimits", "=", true]]
  263. valid_chars: "^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
  264. default: "8Gi"