app_versions.json 81 KB

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