questions.yaml 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. groups:
  2. - name: Configuration
  3. description: WG-Easy application configuration
  4. - name: Storage
  5. description: Configure storage for WG-Easy
  6. - name: Networking
  7. description: Networking Configuration for WG-Easy
  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-webUIPort
  20. path: /
  21. questions:
  22. - variable: wgUDPPort
  23. label: WireGuard UDP Node Port for WG-Easy
  24. group: Networking
  25. schema:
  26. type: int
  27. min: 9000
  28. max: 65535
  29. default: 20920
  30. required: true
  31. - variable: webUIPort
  32. label: WebUI Node Port for WG-Easy
  33. group: Networking
  34. schema:
  35. type: int
  36. min: 9000
  37. max: 65535
  38. default: 20921
  39. required: true
  40. - variable: hostNetwork
  41. label: Host Network
  42. group: Networking
  43. schema:
  44. type: boolean
  45. default: true
  46. - variable: dnsConfig
  47. label: DNS Configuration
  48. group: Advanced DNS Settings
  49. schema:
  50. type: dict
  51. attrs:
  52. - variable: options
  53. label: DNS Options
  54. schema:
  55. type: list
  56. items:
  57. - variable: optionsEntry
  58. label: Option Entry Configuration
  59. schema:
  60. type: dict
  61. attrs:
  62. - variable: name
  63. label: Option Name
  64. schema:
  65. type: string
  66. required: true
  67. - variable: value
  68. label: Option Value
  69. schema:
  70. type: string
  71. required: true
  72. - variable: wgeasy
  73. label: WG-Easy Configuration
  74. group: Configuration
  75. schema:
  76. type: dict
  77. additional_attrs: true
  78. attrs:
  79. - variable: host
  80. label: Hostname or IP
  81. description: The public hostname or IP of your VPN server.
  82. schema:
  83. type: string
  84. required: true
  85. $ref:
  86. - "definitions/nodeIP"
  87. - variable: password
  88. label: Password for WebUI
  89. description: When set, requires a password when logging in to the Web UI.
  90. schema:
  91. type: string
  92. private: true
  93. default: ""
  94. - variable: keep_alive
  95. label: Persistent Keep Alive
  96. description: Value in seconds to keep the "connection" open. If this value is 0, then connections won't be kept alive.
  97. schema:
  98. type: int
  99. required: true
  100. default: 0
  101. - variable: client_mtu
  102. label: Clients MTU
  103. description: The MTU the clients will use.
  104. schema:
  105. type: int
  106. required: true
  107. default: 1420
  108. - variable: client_address_range
  109. label: Clients IP Address Range
  110. description: Clients IP address range.
  111. schema:
  112. type: string
  113. required: true
  114. default: 10.8.0.x
  115. - variable: client_dns_server
  116. label: Clients DNS Server
  117. description: Clients DNS Server.
  118. schema:
  119. type: string
  120. required: true
  121. default: "1.1.1.1"
  122. - variable: allowed_ips
  123. label: Allowed IPs
  124. description: Allowed IPs clients will use. If none provided, <0.0.0.0/0,::/0> will be used.
  125. schema:
  126. type: list
  127. default: []
  128. items:
  129. - variable: entry
  130. label: Allowed IP Entry
  131. schema:
  132. type: string
  133. required: true
  134. default: ""
  135. - variable: environmentVariables
  136. label: WG-Easy Environment
  137. group: Configuration
  138. schema:
  139. type: list
  140. default: []
  141. items:
  142. - variable: environmentVariable
  143. label: Environment Variable
  144. schema:
  145. type: dict
  146. attrs:
  147. - variable: name
  148. label: Name
  149. schema:
  150. type: string
  151. required: true
  152. default: ""
  153. - variable: value
  154. label: Value
  155. schema:
  156. type: string
  157. default: ""
  158. required: true
  159. - variable: appVolumeMounts
  160. label: WG-Easy Storage
  161. group: Storage
  162. schema:
  163. type: dict
  164. attrs:
  165. - variable: config
  166. label: Configuration Volume
  167. schema:
  168. type: dict
  169. attrs:
  170. - variable: datasetName
  171. label: Configuration Volume Dataset Name
  172. schema:
  173. type: string
  174. hidden: true
  175. $ref:
  176. - normalize/ixVolume
  177. show_if: [["hostPathEnabled", "=", false]]
  178. default: ix-wg-easy_config
  179. editable: false
  180. - variable: mountPath
  181. label: Configuration Mount Path
  182. description: Path where the volume will be mounted inside the pod
  183. schema:
  184. type: path
  185. hidden: true
  186. editable: true
  187. default: /etc/wireguard
  188. - variable: hostPathEnabled
  189. label: Enable Custom Host Path for WG-Easy Configuration Volume
  190. schema:
  191. type: boolean
  192. default: false
  193. show_subquestions_if: true
  194. subquestions:
  195. - variable: hostPath
  196. label: Host Path for WG-Easy Configuration Volume
  197. schema:
  198. type: hostpath
  199. required: true
  200. immutable: true
  201. $ref:
  202. - validations/lockedHostPath
  203. - variable: extraAppVolumeMounts
  204. label: Extra Host Path Volumes
  205. group: Storage
  206. schema:
  207. type: list
  208. items:
  209. - variable: extraAppVolume
  210. label: Host Path Volume
  211. description: Add an extra host path volume for WG-Easy application
  212. schema:
  213. type: dict
  214. attrs:
  215. - variable: mountPath
  216. label: Mount Path in Pod
  217. description: Path where the volume will be mounted inside the pod
  218. schema:
  219. type: path
  220. required: true
  221. - variable: hostPath
  222. label: Host Path
  223. description: Host path
  224. schema:
  225. type: hostpath
  226. required: true
  227. $ref:
  228. - validations/lockedHostPath
  229. - variable: enableResourceLimits
  230. label: Enable Pod resource limits
  231. group: Resource Limits
  232. schema:
  233. type: boolean
  234. default: false
  235. - variable: cpuLimit
  236. label: CPU Limit resource limits
  237. description: CPU resource limit allow plain integer values with suffix m(milli) e.g 1000m, 100.
  238. group: Resource Limits
  239. schema:
  240. type: string
  241. show_if: [["enableResourceLimits", "=", true]]
  242. valid_chars: "^\\d+(?:\\.\\d+(?!.*m$)|m?$)"
  243. default: 4000m
  244. - variable: memLimit
  245. label: Memory Limit
  246. group: Resource Limits
  247. 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
  248. schema:
  249. type: string
  250. show_if: [["enableResourceLimits", "=", true]]
  251. valid_chars: "^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
  252. default: 8Gi