questions.yaml 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432
  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: ixVolumeConfig
  188. label: ixVolume Configuration
  189. description: The configuration for the ixVolume dataset.
  190. schema:
  191. type: dict
  192. show_if: [["type", "=", "ixVolume"]]
  193. $ref:
  194. - "normalize/ixVolume"
  195. attrs:
  196. - variable: aclEnable
  197. label: Enable ACL
  198. description: Enable ACL for the dataset.
  199. schema:
  200. type: boolean
  201. default: false
  202. - variable: datasetName
  203. label: Dataset Name
  204. description: The name of the dataset to use for storage.
  205. schema:
  206. type: string
  207. required: true
  208. immutable: true
  209. hidden: true
  210. default: "config"
  211. - variable: aclEntries
  212. label: ACL Configuration
  213. schema:
  214. type: dict
  215. show_if: [["aclEnable", "=", true]]
  216. attrs: []
  217. - variable: hostPathConfig
  218. label: Host Path Configuration
  219. schema:
  220. type: dict
  221. show_if: [["type", "=", "hostPath"]]
  222. attrs:
  223. - variable: aclEnable
  224. label: Enable ACL
  225. description: Enable ACL for the dataset.
  226. schema:
  227. type: boolean
  228. default: false
  229. - variable: acl
  230. label: ACL Configuration
  231. schema:
  232. type: dict
  233. show_if: [["aclEnable", "=", true]]
  234. attrs: []
  235. $ref:
  236. - "normalize/acl"
  237. - variable: hostPath
  238. label: Host Path
  239. description: The host path to use for storage.
  240. schema:
  241. type: hostpath
  242. show_if: [["aclEnable", "=", false]]
  243. required: true
  244. - variable: additionalStorages
  245. label: Additional Storage
  246. description: Additional storage for 2FAuth.
  247. schema:
  248. type: list
  249. default: []
  250. items:
  251. - variable: storageEntry
  252. label: Storage Entry
  253. schema:
  254. type: dict
  255. attrs:
  256. - variable: type
  257. label: Type
  258. description: |
  259. ixVolume: Is dataset created automatically by the system.</br>
  260. Host Path: Is a path that already exists on the system.</br>
  261. SMB Share: Is a SMB share that is mounted to a persistent volume claim.
  262. schema:
  263. type: string
  264. required: true
  265. default: "ixVolume"
  266. immutable: true
  267. enum:
  268. - value: "hostPath"
  269. description: Host Path (Path that already exists on the system)
  270. - value: "ixVolume"
  271. description: ixVolume (Dataset created automatically by the system)
  272. - value: "smb-pv-pvc"
  273. description: SMB Share (Mounts a persistent volume claim to a SMB share)
  274. - variable: readOnly
  275. label: Read Only
  276. description: Mount the volume as read only.
  277. schema:
  278. type: boolean
  279. default: false
  280. - variable: mountPath
  281. label: Mount Path
  282. description: The path inside the container to mount the storage.
  283. schema:
  284. type: path
  285. required: true
  286. - variable: hostPathConfig
  287. label: Host Path Configuration
  288. schema:
  289. type: dict
  290. show_if: [["type", "=", "hostPath"]]
  291. attrs:
  292. - variable: aclEnable
  293. label: Enable ACL
  294. description: Enable ACL for the dataset.
  295. schema:
  296. type: boolean
  297. default: false
  298. - variable: acl
  299. label: ACL Configuration
  300. schema:
  301. type: dict
  302. show_if: [["aclEnable", "=", true]]
  303. attrs: []
  304. $ref:
  305. - "normalize/acl"
  306. - variable: hostPath
  307. label: Host Path
  308. description: The host path to use for storage.
  309. schema:
  310. type: hostpath
  311. show_if: [["aclEnable", "=", false]]
  312. required: true
  313. - variable: ixVolumeConfig
  314. label: ixVolume Configuration
  315. description: The configuration for the ixVolume dataset.
  316. schema:
  317. type: dict
  318. show_if: [["type", "=", "ixVolume"]]
  319. $ref:
  320. - "normalize/ixVolume"
  321. attrs:
  322. - variable: aclEnable
  323. label: Enable ACL
  324. description: Enable ACL for the dataset.
  325. schema:
  326. type: boolean
  327. default: false
  328. - variable: datasetName
  329. label: Dataset Name
  330. description: The name of the dataset to use for storage.
  331. schema:
  332. type: string
  333. required: true
  334. immutable: true
  335. default: "storage_entry"
  336. - variable: aclEntries
  337. label: ACL Configuration
  338. schema:
  339. type: dict
  340. show_if: [["aclEnable", "=", true]]
  341. attrs: []
  342. - variable: smbConfig
  343. label: SMB Share Configuration
  344. description: The configuration for the SMB Share.
  345. schema:
  346. type: dict
  347. show_if: [["type", "=", "smb-pv-pvc"]]
  348. attrs:
  349. - variable: server
  350. label: Server
  351. description: The server for the SMB share.
  352. schema:
  353. type: string
  354. required: true
  355. - variable: share
  356. label: Share
  357. description: The share name for the SMB share.
  358. schema:
  359. type: string
  360. required: true
  361. - variable: domain
  362. label: Domain (Optional)
  363. description: The domain for the SMB share.
  364. schema:
  365. type: string
  366. - variable: username
  367. label: Username
  368. description: The username for the SMB share.
  369. schema:
  370. type: string
  371. required: true
  372. - variable: password
  373. label: Password
  374. description: The password for the SMB share.
  375. schema:
  376. type: string
  377. required: true
  378. private: true
  379. - variable: size
  380. label: Size (in Gi)
  381. description: The size of the volume quota.
  382. schema:
  383. type: int
  384. required: true
  385. min: 1
  386. default: 1
  387. - variable: resources
  388. group: Resources Configuration
  389. label: ""
  390. schema:
  391. type: dict
  392. attrs:
  393. - variable: limits
  394. label: Limits
  395. schema:
  396. type: dict
  397. attrs:
  398. - variable: cpu
  399. label: CPU
  400. description: CPU limit for 2FAuth.
  401. schema:
  402. type: string
  403. max_length: 6
  404. valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$'
  405. valid_chars_error: |
  406. Valid CPU limit formats are</br>
  407. - Plain Integer - eg. 1</br>
  408. - Float - eg. 0.5</br>
  409. - Milicpu - eg. 500m
  410. default: "4000m"
  411. required: true
  412. - variable: memory
  413. label: Memory
  414. description: Memory limit for 2FAuth.
  415. schema:
  416. type: string
  417. max_length: 12
  418. valid_chars: '^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$'
  419. valid_chars_error: |
  420. Valid Memory limit formats are</br>
  421. - Suffixed with E/P/T/G/M/K - eg. 1G</br>
  422. - Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi</br>
  423. - Plain Integer in bytes - eg. 1024</br>
  424. - Exponent - eg. 134e6
  425. default: "8Gi"
  426. required: true