questions.yaml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346
  1. groups:
  2. - name: 2FAuth Configuration
  3. description: Configure 2FAuth
  4. - name: Network Configuration
  5. description: Configure Network for 2FAuth
  6. - name: Storage Configuration
  7. description: Configure Storage for 2FAuth
  8. - name: Resources Configuration
  9. description: Configure Resources for 2FAuth
  10. portals:
  11. web_portal:
  12. protocols:
  13. - "$kubernetes-resource_configmap_portal_protocol"
  14. host:
  15. - "$kubernetes-resource_configmap_portal_host"
  16. ports:
  17. - "$kubernetes-resource_configmap_portal_port"
  18. path: "$kubernetes-resource_configmap_portal_path"
  19. questions:
  20. - variable: twofauthConfig
  21. label: ""
  22. group: 2FAuth Configuration
  23. schema:
  24. type: dict
  25. attrs:
  26. - variable: appName
  27. label: App Name
  28. description: The name of the 2FAuth.
  29. schema:
  30. type: string
  31. default: "2FAuth"
  32. required: true
  33. - variable: appUrl
  34. label: App URL
  35. description: |
  36. The URL that 2FAuth will be accessible from.</br>
  37. Example: </br>
  38. http://server.ip:30081</br>
  39. https://2fauth.example.com
  40. schema:
  41. type: uri
  42. default: ""
  43. required: true
  44. - variable: siteOwnerEmail
  45. label: Site Owner Email
  46. description: The email address of the site owner.
  47. schema:
  48. type: string
  49. default: ""
  50. required: true
  51. - variable: authenticationGuard
  52. label: Authentication Guard
  53. description: |
  54. When using 'reverse-proxy-guard' 2FAuth only look for the dedicated headers and skip all
  55. other built-in authentication checks. That means your proxy is fully responsible of the
  56. authentication process, 2FAuth will trust him as long as headers are presents.
  57. schema:
  58. type: string
  59. default: "web-guard"
  60. required: true
  61. enum:
  62. - value: "web-guard"
  63. description: Web Guard
  64. - value: "reverse-proxy-guard"
  65. description: Reverse Proxy Guard
  66. - variable: authProxyHeaderUser
  67. label: Authentication Proxy Header User
  68. description: |
  69. Name of the HTTP headers sent by the reverse proxy that identifies the authenticated
  70. user at proxy level. Check your proxy documentation to find out how these headers are named.
  71. schema:
  72. type: string
  73. default: ""
  74. show_if: [["authenticationGuard", "=", "reverse-proxy-guard"]]
  75. required: true
  76. - variable: authProxyHeaderEmail
  77. label: Authentication Proxy Header Email
  78. description: |
  79. Name of the HTTP headers sent by the reverse proxy that identifies the authenticated
  80. user at proxy level. Check your proxy documentation to find out how these headers are named.
  81. schema:
  82. type: string
  83. default: ""
  84. show_if: [["authenticationGuard", "=", "reverse-proxy-guard"]]
  85. required: true
  86. - variable: webauthnUserVerification
  87. label: WebAuthn User Verification
  88. description: |
  89. Most authenticators and smartphones will ask the user to actively verify
  90. themselves for log in. For example, through a touch plus pin code,
  91. password entry, or biometric recognition (e.g., presenting a fingerprint).
  92. The intent is to distinguish one user from any other.
  93. schema:
  94. type: string
  95. default: "preferred"
  96. required: true
  97. enum:
  98. - value: "preferred"
  99. description: Preferred
  100. - value: "required"
  101. description: Required
  102. - value: "discouraged"
  103. description: Discouraged
  104. - variable: trustedProxies
  105. label: Trusted Proxies
  106. description: The list of proxies IP to trust
  107. schema:
  108. type: list
  109. default: []
  110. items:
  111. - variable: trustedProxy
  112. label: Trusted Proxy
  113. schema:
  114. type: string
  115. required: true
  116. - variable: additionalEnvs
  117. label: Additional Environment Variables
  118. description: Configure additional environment variables for 2FAuth.
  119. schema:
  120. type: list
  121. default: []
  122. items:
  123. - variable: env
  124. label: Environment Variable
  125. schema:
  126. type: dict
  127. attrs:
  128. - variable: name
  129. label: Name
  130. schema:
  131. type: string
  132. required: true
  133. - variable: value
  134. label: Value
  135. schema:
  136. type: string
  137. required: true
  138. - variable: twofauthNetwork
  139. label: ""
  140. group: Network Configuration
  141. schema:
  142. type: dict
  143. attrs:
  144. - variable: webPort
  145. label: Web Port
  146. description: The port for the 2FAuth Web UI.
  147. schema:
  148. type: int
  149. default: 30081
  150. min: 9000
  151. max: 65535
  152. required: true
  153. - variable: hostNetwork
  154. label: Host Network
  155. description: |
  156. Bind to the host network. It's recommended to keep this disabled.</br>
  157. schema:
  158. type: boolean
  159. default: false
  160. - variable: twofauthStorage
  161. label: ""
  162. group: Storage Configuration
  163. schema:
  164. type: dict
  165. attrs:
  166. - variable: config
  167. label: 2FAuth Config Storage
  168. description: The path to store 2FAuth Configuration.
  169. schema:
  170. type: dict
  171. attrs:
  172. - variable: type
  173. label: Type
  174. description: |
  175. ixVolume: Is dataset created automatically by the system.</br>
  176. Host Path: Is a path that already exists on the system.
  177. schema:
  178. type: string
  179. required: true
  180. immutable: true
  181. default: "ixVolume"
  182. enum:
  183. - value: "hostPath"
  184. description: Host Path (Path that already exists on the system)
  185. - value: "ixVolume"
  186. description: ixVolume (Dataset created automatically by the system)
  187. - variable: datasetName
  188. label: Dataset Name
  189. schema:
  190. type: string
  191. show_if: [["type", "=", "ixVolume"]]
  192. required: true
  193. hidden: true
  194. immutable: true
  195. default: "config"
  196. $ref:
  197. - "normalize/ixVolume"
  198. - variable: hostPath
  199. label: Host Path
  200. schema:
  201. type: hostpath
  202. show_if: [["type", "=", "hostPath"]]
  203. required: true
  204. - variable: additionalStorages
  205. label: Additional Storage
  206. description: Additional storage for 2FAuth.
  207. schema:
  208. type: list
  209. default: []
  210. items:
  211. - variable: storageEntry
  212. label: Storage Entry
  213. schema:
  214. type: dict
  215. attrs:
  216. - variable: type
  217. label: Type
  218. description: |
  219. ixVolume: Is dataset created automatically by the system.</br>
  220. Host Path: Is a path that already exists on the system.</br>
  221. SMB Share: Is a SMB share that is mounted to a persistent volume claim.
  222. schema:
  223. type: string
  224. required: true
  225. default: "ixVolume"
  226. immutable: true
  227. enum:
  228. - value: "hostPath"
  229. description: Host Path (Path that already exists on the system)
  230. - value: "ixVolume"
  231. description: ixVolume (Dataset created automatically by the system)
  232. - value: "smb-pv-pvc"
  233. description: SMB Share (Mounts a persistent volume claim to a SMB share)
  234. - variable: mountPath
  235. label: Mount Path
  236. description: The path inside the container to mount the storage.
  237. schema:
  238. type: path
  239. required: true
  240. - variable: hostPath
  241. label: Host Path
  242. description: The host path to use for storage.
  243. schema:
  244. type: hostpath
  245. show_if: [["type", "=", "hostPath"]]
  246. required: true
  247. - variable: datasetName
  248. label: Dataset Name
  249. description: The name of the dataset to use for storage.
  250. schema:
  251. type: string
  252. show_if: [["type", "=", "ixVolume"]]
  253. required: true
  254. immutable: true
  255. default: "storage_entry"
  256. $ref:
  257. - "normalize/ixVolume"
  258. - variable: server
  259. label: Server
  260. description: The server for the SMB share.
  261. schema:
  262. type: string
  263. show_if: [["type", "=", "smb-pv-pvc"]]
  264. required: true
  265. - variable: share
  266. label: Share
  267. description: The share name for the SMB share.
  268. schema:
  269. type: string
  270. show_if: [["type", "=", "smb-pv-pvc"]]
  271. required: true
  272. - variable: domain
  273. label: Domain (Optional)
  274. description: The domain for the SMB share.
  275. schema:
  276. type: string
  277. show_if: [["type", "=", "smb-pv-pvc"]]
  278. - variable: username
  279. label: Username
  280. description: The username for the SMB share.
  281. schema:
  282. type: string
  283. show_if: [["type", "=", "smb-pv-pvc"]]
  284. required: true
  285. - variable: password
  286. label: Password
  287. description: The password for the SMB share.
  288. schema:
  289. type: string
  290. show_if: [["type", "=", "smb-pv-pvc"]]
  291. required: true
  292. private: true
  293. - variable: size
  294. label: Size (in Gi)
  295. description: The size of the volume quota.
  296. schema:
  297. type: int
  298. show_if: [["type", "=", "smb-pv-pvc"]]
  299. required: true
  300. min: 1
  301. default: 1
  302. - variable: resources
  303. group: Resources Configuration
  304. label: ""
  305. schema:
  306. type: dict
  307. attrs:
  308. - variable: limits
  309. label: Limits
  310. schema:
  311. type: dict
  312. attrs:
  313. - variable: cpu
  314. label: CPU
  315. description: CPU limit for 2FAuth.
  316. schema:
  317. type: string
  318. max_length: 6
  319. valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$'
  320. valid_chars_error: |
  321. Valid CPU limit formats are</br>
  322. - Plain Integer - eg. 1</br>
  323. - Float - eg. 0.5</br>
  324. - Milicpu - eg. 500m
  325. default: "4000m"
  326. required: true
  327. - variable: memory
  328. label: Memory
  329. description: Memory limit for 2FAuth.
  330. schema:
  331. type: string
  332. max_length: 12
  333. valid_chars: '^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$'
  334. valid_chars_error: |
  335. Valid Memory limit formats are</br>
  336. - Suffixed with E/P/T/G/M/K - eg. 1G</br>
  337. - Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi</br>
  338. - Plain Integer in bytes - eg. 1024</br>
  339. - Exponent - eg. 134e6
  340. default: "8Gi"
  341. required: true