app_versions.json 80 KB

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