questions.yaml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369
  1. groups:
  2. - name: Cloudflared Configuration
  3. description: Configure Cloudflared
  4. - name: User and Group Configuration
  5. description: Configure User and Group for Cloudflared
  6. - name: Network Configuration
  7. description: Configure Network for Cloudflared
  8. - name: Storage Configuration
  9. description: Configure Storage for Cloudflared
  10. - name: Labels Configuration
  11. description: Configure Labels for Cloudflared
  12. - name: Resources Configuration
  13. description: Configure Resources for Cloudflared
  14. questions:
  15. - variable: cloudflared
  16. label: ""
  17. group: Cloudflared Configuration
  18. schema:
  19. type: dict
  20. attrs:
  21. - variable: mode
  22. label: Mode
  23. description: The mode to use for Cloudflared.
  24. schema:
  25. type: string
  26. default: "tunnel"
  27. enum:
  28. - value: "tunnel"
  29. description: Tunnel
  30. - value: "proxy-dns"
  31. description: Proxy DNS
  32. - variable: tunnel_token
  33. label: Tunnel Token
  34. description: The Tunnel Token to use for Cloudflared.
  35. schema:
  36. type: string
  37. show_if: [["mode", "=", "tunnel"]]
  38. required: true
  39. - variable: tunnel_dns_upstream
  40. label: Tunnel DNS Upstreams
  41. description: Upstream DNS servers to use for DNS over Cloudflare Tunnel.
  42. schema:
  43. type: list
  44. show_if: [["mode", "=", "proxy-dns"]]
  45. default: ["https://1.1.1.1/dns-query", "https://1.0.0.1/dns-query"]
  46. items:
  47. - variable: upstream
  48. label: Upstream
  49. schema:
  50. type: string
  51. required: true
  52. - variable: additional_args
  53. label: Additional Arguments
  54. description: Configure additional arguments for Cloudflared.
  55. schema:
  56. type: list
  57. default: []
  58. items:
  59. - variable: arg
  60. label: Argument
  61. schema:
  62. type: string
  63. required: true
  64. - variable: additional_envs
  65. label: Additional Environment Variables
  66. schema:
  67. type: list
  68. default: []
  69. items:
  70. - variable: env
  71. label: Environment Variable
  72. schema:
  73. type: dict
  74. attrs:
  75. - variable: name
  76. label: Name
  77. schema:
  78. type: string
  79. required: true
  80. - variable: value
  81. label: Value
  82. schema:
  83. type: string
  84. - variable: run_as
  85. label: ""
  86. group: User and Group Configuration
  87. schema:
  88. type: dict
  89. attrs:
  90. - variable: user
  91. label: User ID
  92. description: The user id that Cloudflared files will be owned by.
  93. schema:
  94. type: int
  95. min: 568
  96. default: 568
  97. required: true
  98. - variable: group
  99. label: Group ID
  100. description: The group id that Cloudflared files will be owned by.
  101. schema:
  102. type: int
  103. min: 568
  104. default: 568
  105. required: true
  106. - variable: network
  107. label: ""
  108. group: Network Configuration
  109. schema:
  110. type: dict
  111. attrs:
  112. - variable: tunnel_dns_port
  113. label: Tunnel DNS Port
  114. description: Configure the port for DNS over Cloudflare Tunnel.
  115. schema:
  116. type: dict
  117. attrs:
  118. - variable: bind_mode
  119. label: Port Bind Mode
  120. description: |
  121. The port bind mode.</br>
  122. - Publish: The port will be published on the host for external access.</br>
  123. - Expose: The port will be exposed for inter-container communication.</br>
  124. - None: The port will not be exposed or published.</br>
  125. Note: If the Dockerfile defines an EXPOSE directive,
  126. the port will still be exposed for inter-container communication regardless of this setting.
  127. schema:
  128. type: string
  129. default: ""
  130. enum:
  131. - value: "published"
  132. description: Publish port on the host for external access
  133. - value: "exposed"
  134. description: Expose port for inter-container communication
  135. - value: ""
  136. description: None
  137. - variable: port_number
  138. label: Port Number
  139. schema:
  140. type: int
  141. default: 8053
  142. min: 1
  143. max: 65535
  144. required: true
  145. - variable: host_ips
  146. label: Host IPs
  147. description: IPs on the host to bind this port
  148. schema:
  149. type: list
  150. show_if: [["bind_mode", "=", "published"]]
  151. default: []
  152. items:
  153. - variable: host_ip
  154. label: Host IP
  155. schema:
  156. type: string
  157. required: true
  158. $ref:
  159. - definitions/node_bind_ip
  160. - variable: host_network
  161. label: Host Network
  162. description: |
  163. Bind to the host network. It's recommended to keep this disabled.
  164. schema:
  165. type: boolean
  166. default: false
  167. - variable: storage
  168. label: ""
  169. group: Storage Configuration
  170. schema:
  171. type: dict
  172. attrs:
  173. - variable: additional_storage
  174. label: Additional Storage
  175. schema:
  176. type: list
  177. default: []
  178. items:
  179. - variable: storageEntry
  180. label: Storage Entry
  181. schema:
  182. type: dict
  183. attrs:
  184. - variable: type
  185. label: Type
  186. description: |
  187. ixVolume: Is dataset created automatically by the system.</br>
  188. Host Path: Is a path that already exists on the system.</br>
  189. SMB Share: Is a SMB share that is mounted to as a volume.
  190. schema:
  191. type: string
  192. required: true
  193. default: "ix_volume"
  194. enum:
  195. - value: "host_path"
  196. description: Host Path (Path that already exists on the system)
  197. - value: "ix_volume"
  198. description: ixVolume (Dataset created automatically by the system)
  199. - value: "cifs"
  200. description: SMB/CIFS Share (Mounts a volume to a SMB share)
  201. - variable: read_only
  202. label: Read Only
  203. description: Mount the volume as read only.
  204. schema:
  205. type: boolean
  206. default: false
  207. - variable: mount_path
  208. label: Mount Path
  209. description: The path inside the container to mount the storage.
  210. schema:
  211. type: path
  212. required: true
  213. - variable: host_path_config
  214. label: Host Path Configuration
  215. schema:
  216. type: dict
  217. show_if: [["type", "=", "host_path"]]
  218. attrs:
  219. - variable: acl_enable
  220. label: Enable ACL
  221. description: Enable ACL for the storage.
  222. schema:
  223. type: boolean
  224. default: false
  225. - variable: acl
  226. label: ACL Configuration
  227. schema:
  228. type: dict
  229. show_if: [["acl_enable", "=", true]]
  230. attrs: []
  231. $ref:
  232. - "normalize/acl"
  233. - variable: path
  234. label: Host Path
  235. description: The host path to use for storage.
  236. schema:
  237. type: hostpath
  238. show_if: [["acl_enable", "=", false]]
  239. required: true
  240. - variable: ix_volume_config
  241. label: ixVolume Configuration
  242. description: The configuration for the ixVolume dataset.
  243. schema:
  244. type: dict
  245. show_if: [["type", "=", "ix_volume"]]
  246. $ref:
  247. - "normalize/ix_volume"
  248. attrs:
  249. - variable: acl_enable
  250. label: Enable ACL
  251. description: Enable ACL for the storage.
  252. schema:
  253. type: boolean
  254. default: false
  255. - variable: dataset_name
  256. label: Dataset Name
  257. description: The name of the dataset to use for storage.
  258. schema:
  259. type: string
  260. required: true
  261. default: "storage_entry"
  262. - variable: acl_entries
  263. label: ACL Configuration
  264. schema:
  265. type: dict
  266. show_if: [["acl_enable", "=", true]]
  267. attrs: []
  268. - variable: cifs_config
  269. label: SMB Configuration
  270. description: The configuration for the SMB dataset.
  271. schema:
  272. type: dict
  273. show_if: [["type", "=", "cifs"]]
  274. attrs:
  275. - variable: server
  276. label: Server
  277. description: The server to mount the SMB share.
  278. schema:
  279. type: string
  280. required: true
  281. - variable: path
  282. label: Path
  283. description: The path to mount the SMB share.
  284. schema:
  285. type: string
  286. required: true
  287. - variable: username
  288. label: Username
  289. description: The username to use for the SMB share.
  290. schema:
  291. type: string
  292. required: true
  293. - variable: password
  294. label: Password
  295. description: The password to use for the SMB share.
  296. schema:
  297. type: string
  298. required: true
  299. private: true
  300. - variable: domain
  301. label: Domain
  302. description: The domain to use for the SMB share.
  303. schema:
  304. type: string
  305. - variable: labels
  306. label: ""
  307. group: Labels Configuration
  308. schema:
  309. type: list
  310. default: []
  311. items:
  312. - variable: label
  313. label: Label
  314. schema:
  315. type: dict
  316. attrs:
  317. - variable: key
  318. label: Key
  319. schema:
  320. type: string
  321. required: true
  322. - variable: value
  323. label: Value
  324. schema:
  325. type: string
  326. required: true
  327. - variable: containers
  328. label: Containers
  329. description: Containers where the label should be applied
  330. schema:
  331. type: list
  332. items:
  333. - variable: container
  334. label: Container
  335. schema:
  336. type: string
  337. required: true
  338. enum:
  339. - value: cloudflared
  340. description: cloudflared
  341. - variable: resources
  342. label: ""
  343. group: Resources Configuration
  344. schema:
  345. type: dict
  346. attrs:
  347. - variable: limits
  348. label: Limits
  349. schema:
  350. type: dict
  351. attrs:
  352. - variable: cpus
  353. label: CPUs
  354. description: CPUs limit for Cloudflared.
  355. schema:
  356. type: int
  357. default: 2
  358. required: true
  359. - variable: memory
  360. label: Memory (in MB)
  361. description: Memory limit for Cloudflared.
  362. schema:
  363. type: int
  364. default: 4096
  365. required: true