app_versions.json 76 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009
  1. {
  2. "1.2.4": {
  3. "healthy": true,
  4. "supported": false,
  5. "healthy_error": null,
  6. "location": "/__w/charts/charts/community/flame/1.2.4",
  7. "last_update": "2025-03-06 08:26:26",
  8. "required_features": [
  9. "normalize/ixVolume",
  10. "normalize/acl"
  11. ],
  12. "human_version": "2.3.1_1.2.4",
  13. "version": "1.2.4",
  14. "chart_metadata": {
  15. "name": "flame",
  16. "description": "Flame is a self-hosted start page for your server.",
  17. "annotations": {
  18. "title": "Flame"
  19. },
  20. "type": "application",
  21. "version": "1.2.4",
  22. "apiVersion": "v2",
  23. "appVersion": "2.3.1",
  24. "kubeVersion": ">=1.16.0-0",
  25. "maintainers": [
  26. {
  27. "name": "truenas",
  28. "url": "https://www.truenas.com/",
  29. "email": "dev@ixsystems.com"
  30. }
  31. ],
  32. "dependencies": [
  33. {
  34. "name": "common",
  35. "repository": "file://../../../common",
  36. "version": "1.2.9"
  37. }
  38. ],
  39. "home": "https://github.com/pawelmalak/flame",
  40. "icon": "https://media.sys.truenas.net/apps/flame/icons/icon.png",
  41. "sources": [
  42. "https://hub.docker.com/r/pawelmalak/flame",
  43. "https://github.com/truenas/charts/tree/master/library/ix-dev/community/flame",
  44. "https://github.com/pawelmalak/flame"
  45. ],
  46. "keywords": [
  47. "startpage"
  48. ]
  49. },
  50. "app_metadata": {
  51. "runAsContext": [
  52. {
  53. "userName": "root",
  54. "groupName": "root",
  55. "gid": 0,
  56. "uid": 0,
  57. "description": "Flame runs as a root user."
  58. }
  59. ],
  60. "capabilities": [
  61. {
  62. "name": "CHOWN",
  63. "description": "Flame is able to chown files."
  64. },
  65. {
  66. "name": "FOWNER",
  67. "description": "Flame is able to bypass permission checks."
  68. },
  69. {
  70. "name": "DAC_OVERRIDE",
  71. "description": "Flame is able to bypass permission checks."
  72. }
  73. ],
  74. "hostMounts": []
  75. },
  76. "schema": {
  77. "groups": [
  78. {
  79. "name": "Flame Configuration",
  80. "description": "Configure Flame"
  81. },
  82. {
  83. "name": "User and Group Configuration",
  84. "description": "Configure User and Group for Flame"
  85. },
  86. {
  87. "name": "Network Configuration",
  88. "description": "Configure Network for Flame"
  89. },
  90. {
  91. "name": "Storage Configuration",
  92. "description": "Configure Storage for Flame"
  93. },
  94. {
  95. "name": "Resources Configuration",
  96. "description": "Configure Resources for Flame"
  97. }
  98. ],
  99. "portals": {
  100. "web_portal": {
  101. "protocols": [
  102. "$kubernetes-resource_configmap_portal_protocol"
  103. ],
  104. "host": [
  105. "$kubernetes-resource_configmap_portal_host"
  106. ],
  107. "ports": [
  108. "$kubernetes-resource_configmap_portal_port"
  109. ],
  110. "path": "$kubernetes-resource_configmap_portal_path"
  111. }
  112. },
  113. "questions": [
  114. {
  115. "variable": "flameConfig",
  116. "label": "",
  117. "group": "Flame Configuration",
  118. "schema": {
  119. "type": "dict",
  120. "attrs": [
  121. {
  122. "variable": "password",
  123. "label": "Password",
  124. "description": "The password to use for Flame.",
  125. "schema": {
  126. "type": "string",
  127. "default": "",
  128. "private": true,
  129. "required": true
  130. }
  131. },
  132. {
  133. "variable": "additionalEnvs",
  134. "label": "Additional Environment Variables",
  135. "description": "Configure additional environment variables for Flame.",
  136. "schema": {
  137. "type": "list",
  138. "default": [],
  139. "items": [
  140. {
  141. "variable": "env",
  142. "label": "Environment Variable",
  143. "schema": {
  144. "type": "dict",
  145. "attrs": [
  146. {
  147. "variable": "name",
  148. "label": "Name",
  149. "schema": {
  150. "type": "string",
  151. "required": true
  152. }
  153. },
  154. {
  155. "variable": "value",
  156. "label": "Value",
  157. "schema": {
  158. "type": "string",
  159. "required": true
  160. }
  161. }
  162. ]
  163. }
  164. }
  165. ]
  166. }
  167. }
  168. ]
  169. }
  170. },
  171. {
  172. "variable": "flameNetwork",
  173. "label": "",
  174. "group": "Network Configuration",
  175. "schema": {
  176. "type": "dict",
  177. "attrs": [
  178. {
  179. "variable": "webPort",
  180. "label": "Web Port",
  181. "description": "The port for the Flame Web UI.",
  182. "schema": {
  183. "type": "int",
  184. "default": 30082,
  185. "min": 9000,
  186. "max": 65535,
  187. "required": true
  188. }
  189. },
  190. {
  191. "variable": "hostNetwork",
  192. "label": "Host Network",
  193. "description": "Bind to the host network. It's recommended to keep this disabled.</br>\n",
  194. "schema": {
  195. "type": "boolean",
  196. "default": false
  197. }
  198. }
  199. ]
  200. }
  201. },
  202. {
  203. "variable": "flameStorage",
  204. "label": "",
  205. "group": "Storage Configuration",
  206. "schema": {
  207. "type": "dict",
  208. "attrs": [
  209. {
  210. "variable": "data",
  211. "label": "Flame Data Storage",
  212. "description": "The path to store Flame Data.",
  213. "schema": {
  214. "type": "dict",
  215. "attrs": [
  216. {
  217. "variable": "type",
  218. "label": "Type",
  219. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  220. "schema": {
  221. "type": "string",
  222. "required": true,
  223. "immutable": true,
  224. "default": "ixVolume",
  225. "enum": [
  226. {
  227. "value": "hostPath",
  228. "description": "Host Path (Path that already exists on the system)"
  229. },
  230. {
  231. "value": "ixVolume",
  232. "description": "ixVolume (Dataset created automatically by the system)"
  233. }
  234. ]
  235. }
  236. },
  237. {
  238. "variable": "ixVolumeConfig",
  239. "label": "ixVolume Configuration",
  240. "description": "The configuration for the ixVolume dataset.",
  241. "schema": {
  242. "type": "dict",
  243. "show_if": [
  244. [
  245. "type",
  246. "=",
  247. "ixVolume"
  248. ]
  249. ],
  250. "$ref": [
  251. "normalize/ixVolume"
  252. ],
  253. "attrs": [
  254. {
  255. "variable": "aclEnable",
  256. "label": "Enable ACL",
  257. "description": "Enable ACL for the dataset.",
  258. "schema": {
  259. "type": "boolean",
  260. "default": false
  261. }
  262. },
  263. {
  264. "variable": "datasetName",
  265. "label": "Dataset Name",
  266. "description": "The name of the dataset to use for storage.",
  267. "schema": {
  268. "type": "string",
  269. "required": true,
  270. "immutable": true,
  271. "hidden": true,
  272. "default": "data"
  273. }
  274. },
  275. {
  276. "variable": "aclEntries",
  277. "label": "ACL Configuration",
  278. "schema": {
  279. "type": "dict",
  280. "show_if": [
  281. [
  282. "aclEnable",
  283. "=",
  284. true
  285. ]
  286. ],
  287. "attrs": [
  288. {
  289. "variable": "path",
  290. "label": "Path",
  291. "description": "Path to perform ACL",
  292. "schema": {
  293. "type": "string",
  294. "hidden": true
  295. }
  296. },
  297. {
  298. "variable": "entries",
  299. "label": "ACL Entries",
  300. "description": "ACL Entries",
  301. "schema": {
  302. "type": "list",
  303. "items": [
  304. {
  305. "variable": "aclEntry",
  306. "label": "ACL Entry",
  307. "schema": {
  308. "type": "dict",
  309. "attrs": [
  310. {
  311. "variable": "id_type",
  312. "label": "ID Type",
  313. "schema": {
  314. "type": "string",
  315. "enum": [
  316. {
  317. "value": "USER",
  318. "description": "Entry is for a USER"
  319. },
  320. {
  321. "value": "GROUP",
  322. "description": "Entry is for a GROUP"
  323. }
  324. ],
  325. "default": "USER"
  326. }
  327. },
  328. {
  329. "variable": "id",
  330. "label": "ID",
  331. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  332. "schema": {
  333. "type": "int",
  334. "required": true,
  335. "min": 0
  336. }
  337. },
  338. {
  339. "variable": "access",
  340. "label": "Access",
  341. "schema": {
  342. "type": "string",
  343. "enum": [
  344. {
  345. "value": "READ",
  346. "description": "Read Access"
  347. },
  348. {
  349. "value": "MODIFY",
  350. "description": "Modify Access"
  351. },
  352. {
  353. "value": "FULL_CONTROL",
  354. "description": "FULL_CONTROL Access"
  355. }
  356. ]
  357. }
  358. }
  359. ]
  360. }
  361. }
  362. ]
  363. }
  364. }
  365. ]
  366. }
  367. }
  368. ]
  369. }
  370. },
  371. {
  372. "variable": "hostPathConfig",
  373. "label": "Host Path Configuration",
  374. "schema": {
  375. "type": "dict",
  376. "show_if": [
  377. [
  378. "type",
  379. "=",
  380. "hostPath"
  381. ]
  382. ],
  383. "attrs": [
  384. {
  385. "variable": "aclEnable",
  386. "label": "Enable ACL",
  387. "description": "Enable ACL for the dataset.",
  388. "schema": {
  389. "type": "boolean",
  390. "default": false
  391. }
  392. },
  393. {
  394. "variable": "acl",
  395. "label": "ACL Configuration",
  396. "schema": {
  397. "type": "dict",
  398. "show_if": [
  399. [
  400. "aclEnable",
  401. "=",
  402. true
  403. ]
  404. ],
  405. "attrs": [
  406. {
  407. "variable": "path",
  408. "label": "Host Path",
  409. "description": "Host Path to perform ACL",
  410. "schema": {
  411. "type": "hostpath",
  412. "required": true,
  413. "empty": false
  414. }
  415. },
  416. {
  417. "variable": "entries",
  418. "label": "ACL Entries",
  419. "description": "ACL Entries",
  420. "schema": {
  421. "type": "list",
  422. "items": [
  423. {
  424. "variable": "aclEntry",
  425. "label": "ACL Entry",
  426. "schema": {
  427. "type": "dict",
  428. "attrs": [
  429. {
  430. "variable": "id_type",
  431. "label": "ID Type",
  432. "schema": {
  433. "type": "string",
  434. "enum": [
  435. {
  436. "value": "USER",
  437. "description": "Entry is for a USER"
  438. },
  439. {
  440. "value": "GROUP",
  441. "description": "Entry is for a GROUP"
  442. }
  443. ],
  444. "default": "USER"
  445. }
  446. },
  447. {
  448. "variable": "id",
  449. "label": "ID",
  450. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  451. "schema": {
  452. "type": "int",
  453. "required": true,
  454. "min": 0
  455. }
  456. },
  457. {
  458. "variable": "access",
  459. "label": "Access",
  460. "schema": {
  461. "type": "string",
  462. "enum": [
  463. {
  464. "value": "READ",
  465. "description": "Read Access"
  466. },
  467. {
  468. "value": "MODIFY",
  469. "description": "Modify Access"
  470. },
  471. {
  472. "value": "FULL_CONTROL",
  473. "description": "FULL_CONTROL Access"
  474. }
  475. ]
  476. }
  477. }
  478. ]
  479. }
  480. }
  481. ]
  482. }
  483. },
  484. {
  485. "variable": "options",
  486. "label": "ACL Options",
  487. "schema": {
  488. "type": "dict",
  489. "attrs": [
  490. {
  491. "variable": "force",
  492. "label": "Force Flag",
  493. "description": "Enabling `Force` applies ACL even if the path has existing data",
  494. "schema": {
  495. "type": "boolean",
  496. "default": false
  497. }
  498. }
  499. ]
  500. }
  501. }
  502. ],
  503. "$ref": [
  504. "normalize/acl"
  505. ]
  506. }
  507. },
  508. {
  509. "variable": "hostPath",
  510. "label": "Host Path",
  511. "description": "The host path to use for storage.",
  512. "schema": {
  513. "type": "hostpath",
  514. "show_if": [
  515. [
  516. "aclEnable",
  517. "=",
  518. false
  519. ]
  520. ],
  521. "required": true
  522. }
  523. }
  524. ]
  525. }
  526. }
  527. ]
  528. }
  529. },
  530. {
  531. "variable": "additionalStorages",
  532. "label": "Additional Storage",
  533. "description": "Additional storage for Flame.",
  534. "schema": {
  535. "type": "list",
  536. "default": [],
  537. "items": [
  538. {
  539. "variable": "storageEntry",
  540. "label": "Storage Entry",
  541. "schema": {
  542. "type": "dict",
  543. "attrs": [
  544. {
  545. "variable": "type",
  546. "label": "Type",
  547. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.</br>\nSMB Share: Is a SMB share that is mounted to a persistent volume claim.\n",
  548. "schema": {
  549. "type": "string",
  550. "required": true,
  551. "default": "ixVolume",
  552. "immutable": true,
  553. "enum": [
  554. {
  555. "value": "hostPath",
  556. "description": "Host Path (Path that already exists on the system)"
  557. },
  558. {
  559. "value": "ixVolume",
  560. "description": "ixVolume (Dataset created automatically by the system)"
  561. },
  562. {
  563. "value": "smb-pv-pvc",
  564. "description": "SMB Share (Mounts a persistent volume claim to a SMB share)"
  565. }
  566. ]
  567. }
  568. },
  569. {
  570. "variable": "readOnly",
  571. "label": "Read Only",
  572. "description": "Mount the volume as read only.",
  573. "schema": {
  574. "type": "boolean",
  575. "default": false
  576. }
  577. },
  578. {
  579. "variable": "mountPath",
  580. "label": "Mount Path",
  581. "description": "The path inside the container to mount the storage.",
  582. "schema": {
  583. "type": "path",
  584. "required": true
  585. }
  586. },
  587. {
  588. "variable": "hostPathConfig",
  589. "label": "Host Path Configuration",
  590. "schema": {
  591. "type": "dict",
  592. "show_if": [
  593. [
  594. "type",
  595. "=",
  596. "hostPath"
  597. ]
  598. ],
  599. "attrs": [
  600. {
  601. "variable": "aclEnable",
  602. "label": "Enable ACL",
  603. "description": "Enable ACL for the dataset.",
  604. "schema": {
  605. "type": "boolean",
  606. "default": false
  607. }
  608. },
  609. {
  610. "variable": "acl",
  611. "label": "ACL Configuration",
  612. "schema": {
  613. "type": "dict",
  614. "show_if": [
  615. [
  616. "aclEnable",
  617. "=",
  618. true
  619. ]
  620. ],
  621. "attrs": [
  622. {
  623. "variable": "path",
  624. "label": "Host Path",
  625. "description": "Host Path to perform ACL",
  626. "schema": {
  627. "type": "hostpath",
  628. "required": true,
  629. "empty": false
  630. }
  631. },
  632. {
  633. "variable": "entries",
  634. "label": "ACL Entries",
  635. "description": "ACL Entries",
  636. "schema": {
  637. "type": "list",
  638. "items": [
  639. {
  640. "variable": "aclEntry",
  641. "label": "ACL Entry",
  642. "schema": {
  643. "type": "dict",
  644. "attrs": [
  645. {
  646. "variable": "id_type",
  647. "label": "ID Type",
  648. "schema": {
  649. "type": "string",
  650. "enum": [
  651. {
  652. "value": "USER",
  653. "description": "Entry is for a USER"
  654. },
  655. {
  656. "value": "GROUP",
  657. "description": "Entry is for a GROUP"
  658. }
  659. ],
  660. "default": "USER"
  661. }
  662. },
  663. {
  664. "variable": "id",
  665. "label": "ID",
  666. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  667. "schema": {
  668. "type": "int",
  669. "required": true,
  670. "min": 0
  671. }
  672. },
  673. {
  674. "variable": "access",
  675. "label": "Access",
  676. "schema": {
  677. "type": "string",
  678. "enum": [
  679. {
  680. "value": "READ",
  681. "description": "Read Access"
  682. },
  683. {
  684. "value": "MODIFY",
  685. "description": "Modify Access"
  686. },
  687. {
  688. "value": "FULL_CONTROL",
  689. "description": "FULL_CONTROL Access"
  690. }
  691. ]
  692. }
  693. }
  694. ]
  695. }
  696. }
  697. ]
  698. }
  699. },
  700. {
  701. "variable": "options",
  702. "label": "ACL Options",
  703. "schema": {
  704. "type": "dict",
  705. "attrs": [
  706. {
  707. "variable": "force",
  708. "label": "Force Flag",
  709. "description": "Enabling `Force` applies ACL even if the path has existing data",
  710. "schema": {
  711. "type": "boolean",
  712. "default": false
  713. }
  714. }
  715. ]
  716. }
  717. }
  718. ],
  719. "$ref": [
  720. "normalize/acl"
  721. ]
  722. }
  723. },
  724. {
  725. "variable": "hostPath",
  726. "label": "Host Path",
  727. "description": "The host path to use for storage.",
  728. "schema": {
  729. "type": "hostpath",
  730. "show_if": [
  731. [
  732. "aclEnable",
  733. "=",
  734. false
  735. ]
  736. ],
  737. "required": true
  738. }
  739. }
  740. ]
  741. }
  742. },
  743. {
  744. "variable": "ixVolumeConfig",
  745. "label": "ixVolume Configuration",
  746. "description": "The configuration for the ixVolume dataset.",
  747. "schema": {
  748. "type": "dict",
  749. "show_if": [
  750. [
  751. "type",
  752. "=",
  753. "ixVolume"
  754. ]
  755. ],
  756. "$ref": [
  757. "normalize/ixVolume"
  758. ],
  759. "attrs": [
  760. {
  761. "variable": "aclEnable",
  762. "label": "Enable ACL",
  763. "description": "Enable ACL for the dataset.",
  764. "schema": {
  765. "type": "boolean",
  766. "default": false
  767. }
  768. },
  769. {
  770. "variable": "datasetName",
  771. "label": "Dataset Name",
  772. "description": "The name of the dataset to use for storage.",
  773. "schema": {
  774. "type": "string",
  775. "required": true,
  776. "immutable": true,
  777. "default": "storage_entry"
  778. }
  779. },
  780. {
  781. "variable": "aclEntries",
  782. "label": "ACL Configuration",
  783. "schema": {
  784. "type": "dict",
  785. "show_if": [
  786. [
  787. "aclEnable",
  788. "=",
  789. true
  790. ]
  791. ],
  792. "attrs": [
  793. {
  794. "variable": "path",
  795. "label": "Path",
  796. "description": "Path to perform ACL",
  797. "schema": {
  798. "type": "string",
  799. "hidden": true
  800. }
  801. },
  802. {
  803. "variable": "entries",
  804. "label": "ACL Entries",
  805. "description": "ACL Entries",
  806. "schema": {
  807. "type": "list",
  808. "items": [
  809. {
  810. "variable": "aclEntry",
  811. "label": "ACL Entry",
  812. "schema": {
  813. "type": "dict",
  814. "attrs": [
  815. {
  816. "variable": "id_type",
  817. "label": "ID Type",
  818. "schema": {
  819. "type": "string",
  820. "enum": [
  821. {
  822. "value": "USER",
  823. "description": "Entry is for a USER"
  824. },
  825. {
  826. "value": "GROUP",
  827. "description": "Entry is for a GROUP"
  828. }
  829. ],
  830. "default": "USER"
  831. }
  832. },
  833. {
  834. "variable": "id",
  835. "label": "ID",
  836. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  837. "schema": {
  838. "type": "int",
  839. "required": true,
  840. "min": 0
  841. }
  842. },
  843. {
  844. "variable": "access",
  845. "label": "Access",
  846. "schema": {
  847. "type": "string",
  848. "enum": [
  849. {
  850. "value": "READ",
  851. "description": "Read Access"
  852. },
  853. {
  854. "value": "MODIFY",
  855. "description": "Modify Access"
  856. },
  857. {
  858. "value": "FULL_CONTROL",
  859. "description": "FULL_CONTROL Access"
  860. }
  861. ]
  862. }
  863. }
  864. ]
  865. }
  866. }
  867. ]
  868. }
  869. }
  870. ]
  871. }
  872. }
  873. ]
  874. }
  875. },
  876. {
  877. "variable": "smbConfig",
  878. "label": "SMB Share Configuration",
  879. "description": "The configuration for the SMB Share.",
  880. "schema": {
  881. "type": "dict",
  882. "show_if": [
  883. [
  884. "type",
  885. "=",
  886. "smb-pv-pvc"
  887. ]
  888. ],
  889. "attrs": [
  890. {
  891. "variable": "server",
  892. "label": "Server",
  893. "description": "The server for the SMB share.",
  894. "schema": {
  895. "type": "string",
  896. "required": true
  897. }
  898. },
  899. {
  900. "variable": "share",
  901. "label": "Share",
  902. "description": "The share name for the SMB share.",
  903. "schema": {
  904. "type": "string",
  905. "required": true
  906. }
  907. },
  908. {
  909. "variable": "domain",
  910. "label": "Domain (Optional)",
  911. "description": "The domain for the SMB share.",
  912. "schema": {
  913. "type": "string"
  914. }
  915. },
  916. {
  917. "variable": "username",
  918. "label": "Username",
  919. "description": "The username for the SMB share.",
  920. "schema": {
  921. "type": "string",
  922. "required": true
  923. }
  924. },
  925. {
  926. "variable": "password",
  927. "label": "Password",
  928. "description": "The password for the SMB share.",
  929. "schema": {
  930. "type": "string",
  931. "required": true,
  932. "private": true
  933. }
  934. },
  935. {
  936. "variable": "size",
  937. "label": "Size (in Gi)",
  938. "description": "The size of the volume quota.",
  939. "schema": {
  940. "type": "int",
  941. "required": true,
  942. "min": 1,
  943. "default": 1
  944. }
  945. }
  946. ]
  947. }
  948. }
  949. ]
  950. }
  951. }
  952. ]
  953. }
  954. }
  955. ]
  956. }
  957. },
  958. {
  959. "variable": "resources",
  960. "group": "Resources Configuration",
  961. "label": "",
  962. "schema": {
  963. "type": "dict",
  964. "attrs": [
  965. {
  966. "variable": "limits",
  967. "label": "Limits",
  968. "schema": {
  969. "type": "dict",
  970. "attrs": [
  971. {
  972. "variable": "cpu",
  973. "label": "CPU",
  974. "description": "CPU limit for Flame.",
  975. "schema": {
  976. "type": "string",
  977. "max_length": 6,
  978. "valid_chars": "^(0\\.[1-9]|[1-9][0-9]*)(\\.[0-9]|m?)$",
  979. "valid_chars_error": "Valid CPU limit formats are</br>\n- Plain Integer - eg. 1</br>\n- Float - eg. 0.5</br>\n- Milicpu - eg. 500m\n",
  980. "default": "4000m",
  981. "required": true
  982. }
  983. },
  984. {
  985. "variable": "memory",
  986. "label": "Memory",
  987. "description": "Memory limit for Flame.",
  988. "schema": {
  989. "type": "string",
  990. "max_length": 12,
  991. "valid_chars": "^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$",
  992. "valid_chars_error": "Valid Memory limit formats are</br>\n- Suffixed with E/P/T/G/M/K - eg. 1G</br>\n- Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi</br>\n- Plain Integer in bytes - eg. 1024</br>\n- Exponent - eg. 134e6\n",
  993. "default": "8Gi",
  994. "required": true
  995. }
  996. }
  997. ]
  998. }
  999. }
  1000. ]
  1001. }
  1002. }
  1003. ]
  1004. },
  1005. "app_readme": "<h1>Flame</h1>\n<p><a href=\"https://github.com/pawelmalak/flame\">Flame</a> is a self-hosted start page for your server.</p>",
  1006. "detailed_readme": "<h1>Flame</h1>\n<p><a href=\"https://github.com/pawelmalak/flame\">Flame</a> is a self-hosted start page for your server.</p>",
  1007. "changelog": null
  1008. }
  1009. }