app_versions.json 108 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438
  1. {
  2. "1.2.6": {
  3. "healthy": true,
  4. "supported": false,
  5. "healthy_error": null,
  6. "location": "/__w/charts/charts/community/deluge/1.2.6",
  7. "last_update": "2025-03-05 14:27:33",
  8. "required_features": [
  9. "normalize/ixVolume",
  10. "definitions/timezone",
  11. "normalize/acl"
  12. ],
  13. "human_version": "2.1.1_1.2.6",
  14. "version": "1.2.6",
  15. "chart_metadata": {
  16. "name": "deluge",
  17. "description": "Deluge is a lightweight, Free Software, cross-platform BitTorrent client.",
  18. "annotations": {
  19. "title": "Deluge"
  20. },
  21. "type": "application",
  22. "version": "1.2.6",
  23. "apiVersion": "v2",
  24. "appVersion": "2.1.1",
  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://deluge-torrent.org",
  41. "icon": "https://media.sys.truenas.net/apps/deluge/icons/icon.png",
  42. "sources": [
  43. "https://hub.docker.com/r/linuxserver/deluge",
  44. "https://github.com/truenas/charts/tree/master/community/deluge",
  45. "https://deluge-torrent.org/"
  46. ],
  47. "keywords": [
  48. "torrent",
  49. "download"
  50. ]
  51. },
  52. "app_metadata": {
  53. "runAsContext": [
  54. {
  55. "userName": "root",
  56. "groupName": "root",
  57. "gid": 0,
  58. "uid": 0,
  59. "description": "Deluge requires root privileges to start the Deluge process"
  60. }
  61. ],
  62. "capabilities": [
  63. {
  64. "name": "CHOWN",
  65. "description": "Deluge is able to chown files."
  66. },
  67. {
  68. "name": "DAC_OVERRIDE",
  69. "description": "Deluge is able to bypass permission checks."
  70. },
  71. {
  72. "name": "FOWNER",
  73. "description": "Deluge is able bypass permission checks for it's sub-processes."
  74. },
  75. {
  76. "name": "SETGID",
  77. "description": "Deluge is able to set group ID for it's sub-processes."
  78. },
  79. {
  80. "name": "SETUID",
  81. "description": "Deluge is able to set user ID for it's sub-processes."
  82. }
  83. ],
  84. "hostMounts": []
  85. },
  86. "schema": {
  87. "groups": [
  88. {
  89. "name": "Deluge Configuration",
  90. "description": "Configure Deluge"
  91. },
  92. {
  93. "name": "User and Group Configuration",
  94. "description": "Configure User and Group for Deluge"
  95. },
  96. {
  97. "name": "Network Configuration",
  98. "description": "Configure Network for Deluge"
  99. },
  100. {
  101. "name": "Storage Configuration",
  102. "description": "Configure Storage for Deluge"
  103. },
  104. {
  105. "name": "Resources Configuration",
  106. "description": "Configure Resources for Deluge"
  107. }
  108. ],
  109. "portals": {
  110. "web_portal": {
  111. "protocols": [
  112. "$kubernetes-resource_configmap_portal_protocol"
  113. ],
  114. "host": [
  115. "$kubernetes-resource_configmap_portal_host"
  116. ],
  117. "ports": [
  118. "$kubernetes-resource_configmap_portal_port"
  119. ],
  120. "path": "$kubernetes-resource_configmap_portal_path"
  121. }
  122. },
  123. "questions": [
  124. {
  125. "variable": "TZ",
  126. "group": "Deluge Configuration",
  127. "label": "Timezone",
  128. "schema": {
  129. "type": "string",
  130. "default": "America/Los_Angeles",
  131. "required": true,
  132. "$ref": [
  133. "definitions/timezone"
  134. ],
  135. "enum": [
  136. {
  137. "value": "Asia/Damascus",
  138. "description": "'Asia/Damascus' timezone"
  139. },
  140. {
  141. "value": "Asia/Saigon",
  142. "description": "'Asia/Saigon' timezone"
  143. }
  144. ]
  145. }
  146. },
  147. {
  148. "variable": "delugeConfig",
  149. "label": "",
  150. "group": "Deluge Configuration",
  151. "schema": {
  152. "type": "dict",
  153. "attrs": [
  154. {
  155. "variable": "additionalEnvs",
  156. "label": "Additional Environment Variables",
  157. "description": "Configure additional environment variables for Deluge.",
  158. "schema": {
  159. "type": "list",
  160. "default": [],
  161. "items": [
  162. {
  163. "variable": "env",
  164. "label": "Environment Variable",
  165. "schema": {
  166. "type": "dict",
  167. "attrs": [
  168. {
  169. "variable": "name",
  170. "label": "Name",
  171. "schema": {
  172. "type": "string",
  173. "required": true
  174. }
  175. },
  176. {
  177. "variable": "value",
  178. "label": "Value",
  179. "schema": {
  180. "type": "string",
  181. "required": true
  182. }
  183. }
  184. ]
  185. }
  186. }
  187. ]
  188. }
  189. }
  190. ]
  191. }
  192. },
  193. {
  194. "variable": "delugeID",
  195. "label": "",
  196. "group": "User and Group Configuration",
  197. "schema": {
  198. "type": "dict",
  199. "attrs": [
  200. {
  201. "variable": "user",
  202. "label": "User ID",
  203. "description": "he user id that Deluge files will be owned by.",
  204. "schema": {
  205. "type": "int",
  206. "min": 2,
  207. "default": 568,
  208. "required": true
  209. }
  210. },
  211. {
  212. "variable": "group",
  213. "label": "Group ID",
  214. "description": "The group id that Deluge files will be owned by.",
  215. "schema": {
  216. "type": "int",
  217. "min": 2,
  218. "default": 568,
  219. "required": true
  220. }
  221. }
  222. ]
  223. }
  224. },
  225. {
  226. "variable": "delugeNetwork",
  227. "label": "",
  228. "group": "Network Configuration",
  229. "schema": {
  230. "type": "dict",
  231. "attrs": [
  232. {
  233. "variable": "hostNetwork",
  234. "label": "Host Network",
  235. "description": "Bind to the host network. It's recommended to keep this disabled.</br>\n",
  236. "schema": {
  237. "type": "boolean",
  238. "default": false
  239. }
  240. },
  241. {
  242. "variable": "webPort",
  243. "label": "Web Port",
  244. "description": "The port for the Deluge Web UI.</br>\n(The internal port is always 8112)\n",
  245. "schema": {
  246. "type": "int",
  247. "show_if": [
  248. [
  249. "hostNetwork",
  250. "=",
  251. false
  252. ]
  253. ],
  254. "default": 30038,
  255. "min": 9000,
  256. "max": 65535,
  257. "required": true
  258. }
  259. },
  260. {
  261. "variable": "exposeDaemon",
  262. "label": "Expose Daemon Port",
  263. "description": "Expose the Deluge Daemon port",
  264. "schema": {
  265. "type": "boolean",
  266. "default": false,
  267. "show_if": [
  268. [
  269. "hostNetwork",
  270. "=",
  271. false
  272. ]
  273. ]
  274. }
  275. },
  276. {
  277. "variable": "daemonPort",
  278. "label": "Daemon Port",
  279. "description": "The port for the Deluge Daemon.</br>\n(Internal port is always 58846)\n",
  280. "schema": {
  281. "type": "int",
  282. "show_if": [
  283. [
  284. "exposeDaemon",
  285. "=",
  286. true
  287. ]
  288. ],
  289. "default": 58846,
  290. "min": 9000,
  291. "max": 65535,
  292. "required": true
  293. }
  294. },
  295. {
  296. "variable": "torrentPort",
  297. "label": "Torrent Port",
  298. "description": "The port for the Deluge Torrent.</br>\nApplies to both TCP and UDP.\n",
  299. "schema": {
  300. "type": "int",
  301. "default": 30039,
  302. "min": 9000,
  303. "max": 65535,
  304. "required": true
  305. }
  306. }
  307. ]
  308. }
  309. },
  310. {
  311. "variable": "delugeStorage",
  312. "label": "",
  313. "group": "Storage Configuration",
  314. "schema": {
  315. "type": "dict",
  316. "attrs": [
  317. {
  318. "variable": "config",
  319. "label": "Deluge Config Storage",
  320. "description": "The path to store Deluge Configuration.",
  321. "schema": {
  322. "type": "dict",
  323. "attrs": [
  324. {
  325. "variable": "type",
  326. "label": "Type",
  327. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  328. "schema": {
  329. "type": "string",
  330. "required": true,
  331. "immutable": true,
  332. "default": "ixVolume",
  333. "enum": [
  334. {
  335. "value": "hostPath",
  336. "description": "Host Path (Path that already exists on the system)"
  337. },
  338. {
  339. "value": "ixVolume",
  340. "description": "ixVolume (Dataset created automatically by the system)"
  341. }
  342. ]
  343. }
  344. },
  345. {
  346. "variable": "ixVolumeConfig",
  347. "label": "ixVolume Configuration",
  348. "description": "The configuration for the ixVolume dataset.",
  349. "schema": {
  350. "type": "dict",
  351. "show_if": [
  352. [
  353. "type",
  354. "=",
  355. "ixVolume"
  356. ]
  357. ],
  358. "$ref": [
  359. "normalize/ixVolume"
  360. ],
  361. "attrs": [
  362. {
  363. "variable": "aclEnable",
  364. "label": "Enable ACL",
  365. "description": "Enable ACL for the dataset.",
  366. "schema": {
  367. "type": "boolean",
  368. "default": false
  369. }
  370. },
  371. {
  372. "variable": "datasetName",
  373. "label": "Dataset Name",
  374. "description": "The name of the dataset to use for storage.",
  375. "schema": {
  376. "type": "string",
  377. "required": true,
  378. "immutable": true,
  379. "hidden": true,
  380. "default": "config"
  381. }
  382. },
  383. {
  384. "variable": "aclEntries",
  385. "label": "ACL Configuration",
  386. "schema": {
  387. "type": "dict",
  388. "show_if": [
  389. [
  390. "aclEnable",
  391. "=",
  392. true
  393. ]
  394. ],
  395. "attrs": [
  396. {
  397. "variable": "path",
  398. "label": "Path",
  399. "description": "Path to perform ACL",
  400. "schema": {
  401. "type": "string",
  402. "hidden": true
  403. }
  404. },
  405. {
  406. "variable": "entries",
  407. "label": "ACL Entries",
  408. "description": "ACL Entries",
  409. "schema": {
  410. "type": "list",
  411. "items": [
  412. {
  413. "variable": "aclEntry",
  414. "label": "ACL Entry",
  415. "schema": {
  416. "type": "dict",
  417. "attrs": [
  418. {
  419. "variable": "id_type",
  420. "label": "ID Type",
  421. "schema": {
  422. "type": "string",
  423. "enum": [
  424. {
  425. "value": "USER",
  426. "description": "Entry is for a USER"
  427. },
  428. {
  429. "value": "GROUP",
  430. "description": "Entry is for a GROUP"
  431. }
  432. ],
  433. "default": "USER"
  434. }
  435. },
  436. {
  437. "variable": "id",
  438. "label": "ID",
  439. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  440. "schema": {
  441. "type": "int",
  442. "required": true,
  443. "min": 0
  444. }
  445. },
  446. {
  447. "variable": "access",
  448. "label": "Access",
  449. "schema": {
  450. "type": "string",
  451. "enum": [
  452. {
  453. "value": "READ",
  454. "description": "Read Access"
  455. },
  456. {
  457. "value": "MODIFY",
  458. "description": "Modify Access"
  459. },
  460. {
  461. "value": "FULL_CONTROL",
  462. "description": "FULL_CONTROL Access"
  463. }
  464. ]
  465. }
  466. }
  467. ]
  468. }
  469. }
  470. ]
  471. }
  472. }
  473. ]
  474. }
  475. }
  476. ]
  477. }
  478. },
  479. {
  480. "variable": "hostPathConfig",
  481. "label": "Host Path Configuration",
  482. "schema": {
  483. "type": "dict",
  484. "show_if": [
  485. [
  486. "type",
  487. "=",
  488. "hostPath"
  489. ]
  490. ],
  491. "attrs": [
  492. {
  493. "variable": "aclEnable",
  494. "label": "Enable ACL",
  495. "description": "Enable ACL for the dataset.",
  496. "schema": {
  497. "type": "boolean",
  498. "default": false
  499. }
  500. },
  501. {
  502. "variable": "acl",
  503. "label": "ACL Configuration",
  504. "schema": {
  505. "type": "dict",
  506. "show_if": [
  507. [
  508. "aclEnable",
  509. "=",
  510. true
  511. ]
  512. ],
  513. "attrs": [
  514. {
  515. "variable": "path",
  516. "label": "Host Path",
  517. "description": "Host Path to perform ACL",
  518. "schema": {
  519. "type": "hostpath",
  520. "required": true,
  521. "empty": false
  522. }
  523. },
  524. {
  525. "variable": "entries",
  526. "label": "ACL Entries",
  527. "description": "ACL Entries",
  528. "schema": {
  529. "type": "list",
  530. "items": [
  531. {
  532. "variable": "aclEntry",
  533. "label": "ACL Entry",
  534. "schema": {
  535. "type": "dict",
  536. "attrs": [
  537. {
  538. "variable": "id_type",
  539. "label": "ID Type",
  540. "schema": {
  541. "type": "string",
  542. "enum": [
  543. {
  544. "value": "USER",
  545. "description": "Entry is for a USER"
  546. },
  547. {
  548. "value": "GROUP",
  549. "description": "Entry is for a GROUP"
  550. }
  551. ],
  552. "default": "USER"
  553. }
  554. },
  555. {
  556. "variable": "id",
  557. "label": "ID",
  558. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  559. "schema": {
  560. "type": "int",
  561. "required": true,
  562. "min": 0
  563. }
  564. },
  565. {
  566. "variable": "access",
  567. "label": "Access",
  568. "schema": {
  569. "type": "string",
  570. "enum": [
  571. {
  572. "value": "READ",
  573. "description": "Read Access"
  574. },
  575. {
  576. "value": "MODIFY",
  577. "description": "Modify Access"
  578. },
  579. {
  580. "value": "FULL_CONTROL",
  581. "description": "FULL_CONTROL Access"
  582. }
  583. ]
  584. }
  585. }
  586. ]
  587. }
  588. }
  589. ]
  590. }
  591. },
  592. {
  593. "variable": "options",
  594. "label": "ACL Options",
  595. "schema": {
  596. "type": "dict",
  597. "attrs": [
  598. {
  599. "variable": "force",
  600. "label": "Force Flag",
  601. "description": "Enabling `Force` applies ACL even if the path has existing data",
  602. "schema": {
  603. "type": "boolean",
  604. "default": false
  605. }
  606. }
  607. ]
  608. }
  609. }
  610. ],
  611. "$ref": [
  612. "normalize/acl"
  613. ]
  614. }
  615. },
  616. {
  617. "variable": "hostPath",
  618. "label": "Host Path",
  619. "description": "The host path to use for storage.",
  620. "schema": {
  621. "type": "hostpath",
  622. "show_if": [
  623. [
  624. "aclEnable",
  625. "=",
  626. false
  627. ]
  628. ],
  629. "required": true
  630. }
  631. }
  632. ]
  633. }
  634. }
  635. ]
  636. }
  637. },
  638. {
  639. "variable": "downloads",
  640. "label": "Deluge Downloads Storage",
  641. "description": "The path to store Deluge Downloads.",
  642. "schema": {
  643. "type": "dict",
  644. "attrs": [
  645. {
  646. "variable": "type",
  647. "label": "Type",
  648. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  649. "schema": {
  650. "type": "string",
  651. "required": true,
  652. "immutable": true,
  653. "default": "ixVolume",
  654. "enum": [
  655. {
  656. "value": "hostPath",
  657. "description": "Host Path (Path that already exists on the system)"
  658. },
  659. {
  660. "value": "ixVolume",
  661. "description": "ixVolume (Dataset created automatically by the system)"
  662. }
  663. ]
  664. }
  665. },
  666. {
  667. "variable": "ixVolumeConfig",
  668. "label": "ixVolume Configuration",
  669. "description": "The configuration for the ixVolume dataset.",
  670. "schema": {
  671. "type": "dict",
  672. "show_if": [
  673. [
  674. "type",
  675. "=",
  676. "ixVolume"
  677. ]
  678. ],
  679. "$ref": [
  680. "normalize/ixVolume"
  681. ],
  682. "attrs": [
  683. {
  684. "variable": "aclEnable",
  685. "label": "Enable ACL",
  686. "description": "Enable ACL for the dataset.",
  687. "schema": {
  688. "type": "boolean",
  689. "default": false
  690. }
  691. },
  692. {
  693. "variable": "datasetName",
  694. "label": "Dataset Name",
  695. "description": "The name of the dataset to use for storage.",
  696. "schema": {
  697. "type": "string",
  698. "required": true,
  699. "immutable": true,
  700. "hidden": true,
  701. "default": "downloads"
  702. }
  703. },
  704. {
  705. "variable": "aclEntries",
  706. "label": "ACL Configuration",
  707. "schema": {
  708. "type": "dict",
  709. "show_if": [
  710. [
  711. "aclEnable",
  712. "=",
  713. true
  714. ]
  715. ],
  716. "attrs": [
  717. {
  718. "variable": "path",
  719. "label": "Path",
  720. "description": "Path to perform ACL",
  721. "schema": {
  722. "type": "string",
  723. "hidden": true
  724. }
  725. },
  726. {
  727. "variable": "entries",
  728. "label": "ACL Entries",
  729. "description": "ACL Entries",
  730. "schema": {
  731. "type": "list",
  732. "items": [
  733. {
  734. "variable": "aclEntry",
  735. "label": "ACL Entry",
  736. "schema": {
  737. "type": "dict",
  738. "attrs": [
  739. {
  740. "variable": "id_type",
  741. "label": "ID Type",
  742. "schema": {
  743. "type": "string",
  744. "enum": [
  745. {
  746. "value": "USER",
  747. "description": "Entry is for a USER"
  748. },
  749. {
  750. "value": "GROUP",
  751. "description": "Entry is for a GROUP"
  752. }
  753. ],
  754. "default": "USER"
  755. }
  756. },
  757. {
  758. "variable": "id",
  759. "label": "ID",
  760. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  761. "schema": {
  762. "type": "int",
  763. "required": true,
  764. "min": 0
  765. }
  766. },
  767. {
  768. "variable": "access",
  769. "label": "Access",
  770. "schema": {
  771. "type": "string",
  772. "enum": [
  773. {
  774. "value": "READ",
  775. "description": "Read Access"
  776. },
  777. {
  778. "value": "MODIFY",
  779. "description": "Modify Access"
  780. },
  781. {
  782. "value": "FULL_CONTROL",
  783. "description": "FULL_CONTROL Access"
  784. }
  785. ]
  786. }
  787. }
  788. ]
  789. }
  790. }
  791. ]
  792. }
  793. }
  794. ]
  795. }
  796. }
  797. ]
  798. }
  799. },
  800. {
  801. "variable": "hostPathConfig",
  802. "label": "Host Path Configuration",
  803. "schema": {
  804. "type": "dict",
  805. "show_if": [
  806. [
  807. "type",
  808. "=",
  809. "hostPath"
  810. ]
  811. ],
  812. "attrs": [
  813. {
  814. "variable": "aclEnable",
  815. "label": "Enable ACL",
  816. "description": "Enable ACL for the dataset.",
  817. "schema": {
  818. "type": "boolean",
  819. "default": false
  820. }
  821. },
  822. {
  823. "variable": "acl",
  824. "label": "ACL Configuration",
  825. "schema": {
  826. "type": "dict",
  827. "show_if": [
  828. [
  829. "aclEnable",
  830. "=",
  831. true
  832. ]
  833. ],
  834. "attrs": [
  835. {
  836. "variable": "path",
  837. "label": "Host Path",
  838. "description": "Host Path to perform ACL",
  839. "schema": {
  840. "type": "hostpath",
  841. "required": true,
  842. "empty": false
  843. }
  844. },
  845. {
  846. "variable": "entries",
  847. "label": "ACL Entries",
  848. "description": "ACL Entries",
  849. "schema": {
  850. "type": "list",
  851. "items": [
  852. {
  853. "variable": "aclEntry",
  854. "label": "ACL Entry",
  855. "schema": {
  856. "type": "dict",
  857. "attrs": [
  858. {
  859. "variable": "id_type",
  860. "label": "ID Type",
  861. "schema": {
  862. "type": "string",
  863. "enum": [
  864. {
  865. "value": "USER",
  866. "description": "Entry is for a USER"
  867. },
  868. {
  869. "value": "GROUP",
  870. "description": "Entry is for a GROUP"
  871. }
  872. ],
  873. "default": "USER"
  874. }
  875. },
  876. {
  877. "variable": "id",
  878. "label": "ID",
  879. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  880. "schema": {
  881. "type": "int",
  882. "required": true,
  883. "min": 0
  884. }
  885. },
  886. {
  887. "variable": "access",
  888. "label": "Access",
  889. "schema": {
  890. "type": "string",
  891. "enum": [
  892. {
  893. "value": "READ",
  894. "description": "Read Access"
  895. },
  896. {
  897. "value": "MODIFY",
  898. "description": "Modify Access"
  899. },
  900. {
  901. "value": "FULL_CONTROL",
  902. "description": "FULL_CONTROL Access"
  903. }
  904. ]
  905. }
  906. }
  907. ]
  908. }
  909. }
  910. ]
  911. }
  912. },
  913. {
  914. "variable": "options",
  915. "label": "ACL Options",
  916. "schema": {
  917. "type": "dict",
  918. "attrs": [
  919. {
  920. "variable": "force",
  921. "label": "Force Flag",
  922. "description": "Enabling `Force` applies ACL even if the path has existing data",
  923. "schema": {
  924. "type": "boolean",
  925. "default": false
  926. }
  927. }
  928. ]
  929. }
  930. }
  931. ],
  932. "$ref": [
  933. "normalize/acl"
  934. ]
  935. }
  936. },
  937. {
  938. "variable": "hostPath",
  939. "label": "Host Path",
  940. "description": "The host path to use for storage.",
  941. "schema": {
  942. "type": "hostpath",
  943. "show_if": [
  944. [
  945. "aclEnable",
  946. "=",
  947. false
  948. ]
  949. ],
  950. "required": true
  951. }
  952. }
  953. ]
  954. }
  955. }
  956. ]
  957. }
  958. },
  959. {
  960. "variable": "additionalStorages",
  961. "label": "Additional Storage",
  962. "description": "Additional storage for Deluge.",
  963. "schema": {
  964. "type": "list",
  965. "default": [],
  966. "items": [
  967. {
  968. "variable": "storageEntry",
  969. "label": "Storage Entry",
  970. "schema": {
  971. "type": "dict",
  972. "attrs": [
  973. {
  974. "variable": "type",
  975. "label": "Type",
  976. "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",
  977. "schema": {
  978. "type": "string",
  979. "required": true,
  980. "default": "ixVolume",
  981. "immutable": true,
  982. "enum": [
  983. {
  984. "value": "hostPath",
  985. "description": "Host Path (Path that already exists on the system)"
  986. },
  987. {
  988. "value": "ixVolume",
  989. "description": "ixVolume (Dataset created automatically by the system)"
  990. },
  991. {
  992. "value": "smb-pv-pvc",
  993. "description": "SMB Share (Mounts a persistent volume claim to a SMB share)"
  994. }
  995. ]
  996. }
  997. },
  998. {
  999. "variable": "readOnly",
  1000. "label": "Read Only",
  1001. "description": "Mount the volume as read only.",
  1002. "schema": {
  1003. "type": "boolean",
  1004. "default": false
  1005. }
  1006. },
  1007. {
  1008. "variable": "mountPath",
  1009. "label": "Mount Path",
  1010. "description": "The path inside the container to mount the storage.",
  1011. "schema": {
  1012. "type": "path",
  1013. "required": true
  1014. }
  1015. },
  1016. {
  1017. "variable": "hostPathConfig",
  1018. "label": "Host Path Configuration",
  1019. "schema": {
  1020. "type": "dict",
  1021. "show_if": [
  1022. [
  1023. "type",
  1024. "=",
  1025. "hostPath"
  1026. ]
  1027. ],
  1028. "attrs": [
  1029. {
  1030. "variable": "aclEnable",
  1031. "label": "Enable ACL",
  1032. "description": "Enable ACL for the dataset.",
  1033. "schema": {
  1034. "type": "boolean",
  1035. "default": false
  1036. }
  1037. },
  1038. {
  1039. "variable": "acl",
  1040. "label": "ACL Configuration",
  1041. "schema": {
  1042. "type": "dict",
  1043. "show_if": [
  1044. [
  1045. "aclEnable",
  1046. "=",
  1047. true
  1048. ]
  1049. ],
  1050. "attrs": [
  1051. {
  1052. "variable": "path",
  1053. "label": "Host Path",
  1054. "description": "Host Path to perform ACL",
  1055. "schema": {
  1056. "type": "hostpath",
  1057. "required": true,
  1058. "empty": false
  1059. }
  1060. },
  1061. {
  1062. "variable": "entries",
  1063. "label": "ACL Entries",
  1064. "description": "ACL Entries",
  1065. "schema": {
  1066. "type": "list",
  1067. "items": [
  1068. {
  1069. "variable": "aclEntry",
  1070. "label": "ACL Entry",
  1071. "schema": {
  1072. "type": "dict",
  1073. "attrs": [
  1074. {
  1075. "variable": "id_type",
  1076. "label": "ID Type",
  1077. "schema": {
  1078. "type": "string",
  1079. "enum": [
  1080. {
  1081. "value": "USER",
  1082. "description": "Entry is for a USER"
  1083. },
  1084. {
  1085. "value": "GROUP",
  1086. "description": "Entry is for a GROUP"
  1087. }
  1088. ],
  1089. "default": "USER"
  1090. }
  1091. },
  1092. {
  1093. "variable": "id",
  1094. "label": "ID",
  1095. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  1096. "schema": {
  1097. "type": "int",
  1098. "required": true,
  1099. "min": 0
  1100. }
  1101. },
  1102. {
  1103. "variable": "access",
  1104. "label": "Access",
  1105. "schema": {
  1106. "type": "string",
  1107. "enum": [
  1108. {
  1109. "value": "READ",
  1110. "description": "Read Access"
  1111. },
  1112. {
  1113. "value": "MODIFY",
  1114. "description": "Modify Access"
  1115. },
  1116. {
  1117. "value": "FULL_CONTROL",
  1118. "description": "FULL_CONTROL Access"
  1119. }
  1120. ]
  1121. }
  1122. }
  1123. ]
  1124. }
  1125. }
  1126. ]
  1127. }
  1128. },
  1129. {
  1130. "variable": "options",
  1131. "label": "ACL Options",
  1132. "schema": {
  1133. "type": "dict",
  1134. "attrs": [
  1135. {
  1136. "variable": "force",
  1137. "label": "Force Flag",
  1138. "description": "Enabling `Force` applies ACL even if the path has existing data",
  1139. "schema": {
  1140. "type": "boolean",
  1141. "default": false
  1142. }
  1143. }
  1144. ]
  1145. }
  1146. }
  1147. ],
  1148. "$ref": [
  1149. "normalize/acl"
  1150. ]
  1151. }
  1152. },
  1153. {
  1154. "variable": "hostPath",
  1155. "label": "Host Path",
  1156. "description": "The host path to use for storage.",
  1157. "schema": {
  1158. "type": "hostpath",
  1159. "show_if": [
  1160. [
  1161. "aclEnable",
  1162. "=",
  1163. false
  1164. ]
  1165. ],
  1166. "required": true
  1167. }
  1168. }
  1169. ]
  1170. }
  1171. },
  1172. {
  1173. "variable": "ixVolumeConfig",
  1174. "label": "ixVolume Configuration",
  1175. "description": "The configuration for the ixVolume dataset.",
  1176. "schema": {
  1177. "type": "dict",
  1178. "show_if": [
  1179. [
  1180. "type",
  1181. "=",
  1182. "ixVolume"
  1183. ]
  1184. ],
  1185. "$ref": [
  1186. "normalize/ixVolume"
  1187. ],
  1188. "attrs": [
  1189. {
  1190. "variable": "aclEnable",
  1191. "label": "Enable ACL",
  1192. "description": "Enable ACL for the dataset.",
  1193. "schema": {
  1194. "type": "boolean",
  1195. "default": false
  1196. }
  1197. },
  1198. {
  1199. "variable": "datasetName",
  1200. "label": "Dataset Name",
  1201. "description": "The name of the dataset to use for storage.",
  1202. "schema": {
  1203. "type": "string",
  1204. "required": true,
  1205. "immutable": true,
  1206. "default": "storage_entry"
  1207. }
  1208. },
  1209. {
  1210. "variable": "aclEntries",
  1211. "label": "ACL Configuration",
  1212. "schema": {
  1213. "type": "dict",
  1214. "show_if": [
  1215. [
  1216. "aclEnable",
  1217. "=",
  1218. true
  1219. ]
  1220. ],
  1221. "attrs": [
  1222. {
  1223. "variable": "path",
  1224. "label": "Path",
  1225. "description": "Path to perform ACL",
  1226. "schema": {
  1227. "type": "string",
  1228. "hidden": true
  1229. }
  1230. },
  1231. {
  1232. "variable": "entries",
  1233. "label": "ACL Entries",
  1234. "description": "ACL Entries",
  1235. "schema": {
  1236. "type": "list",
  1237. "items": [
  1238. {
  1239. "variable": "aclEntry",
  1240. "label": "ACL Entry",
  1241. "schema": {
  1242. "type": "dict",
  1243. "attrs": [
  1244. {
  1245. "variable": "id_type",
  1246. "label": "ID Type",
  1247. "schema": {
  1248. "type": "string",
  1249. "enum": [
  1250. {
  1251. "value": "USER",
  1252. "description": "Entry is for a USER"
  1253. },
  1254. {
  1255. "value": "GROUP",
  1256. "description": "Entry is for a GROUP"
  1257. }
  1258. ],
  1259. "default": "USER"
  1260. }
  1261. },
  1262. {
  1263. "variable": "id",
  1264. "label": "ID",
  1265. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  1266. "schema": {
  1267. "type": "int",
  1268. "required": true,
  1269. "min": 0
  1270. }
  1271. },
  1272. {
  1273. "variable": "access",
  1274. "label": "Access",
  1275. "schema": {
  1276. "type": "string",
  1277. "enum": [
  1278. {
  1279. "value": "READ",
  1280. "description": "Read Access"
  1281. },
  1282. {
  1283. "value": "MODIFY",
  1284. "description": "Modify Access"
  1285. },
  1286. {
  1287. "value": "FULL_CONTROL",
  1288. "description": "FULL_CONTROL Access"
  1289. }
  1290. ]
  1291. }
  1292. }
  1293. ]
  1294. }
  1295. }
  1296. ]
  1297. }
  1298. }
  1299. ]
  1300. }
  1301. }
  1302. ]
  1303. }
  1304. },
  1305. {
  1306. "variable": "smbConfig",
  1307. "label": "SMB Share Configuration",
  1308. "description": "The configuration for the SMB Share.",
  1309. "schema": {
  1310. "type": "dict",
  1311. "show_if": [
  1312. [
  1313. "type",
  1314. "=",
  1315. "smb-pv-pvc"
  1316. ]
  1317. ],
  1318. "attrs": [
  1319. {
  1320. "variable": "server",
  1321. "label": "Server",
  1322. "description": "The server for the SMB share.",
  1323. "schema": {
  1324. "type": "string",
  1325. "required": true
  1326. }
  1327. },
  1328. {
  1329. "variable": "share",
  1330. "label": "Share",
  1331. "description": "The share name for the SMB share.",
  1332. "schema": {
  1333. "type": "string",
  1334. "required": true
  1335. }
  1336. },
  1337. {
  1338. "variable": "domain",
  1339. "label": "Domain (Optional)",
  1340. "description": "The domain for the SMB share.",
  1341. "schema": {
  1342. "type": "string"
  1343. }
  1344. },
  1345. {
  1346. "variable": "username",
  1347. "label": "Username",
  1348. "description": "The username for the SMB share.",
  1349. "schema": {
  1350. "type": "string",
  1351. "required": true
  1352. }
  1353. },
  1354. {
  1355. "variable": "password",
  1356. "label": "Password",
  1357. "description": "The password for the SMB share.",
  1358. "schema": {
  1359. "type": "string",
  1360. "required": true,
  1361. "private": true
  1362. }
  1363. },
  1364. {
  1365. "variable": "size",
  1366. "label": "Size (in Gi)",
  1367. "description": "The size of the volume quota.",
  1368. "schema": {
  1369. "type": "int",
  1370. "required": true,
  1371. "min": 1,
  1372. "default": 1
  1373. }
  1374. }
  1375. ]
  1376. }
  1377. }
  1378. ]
  1379. }
  1380. }
  1381. ]
  1382. }
  1383. }
  1384. ]
  1385. }
  1386. },
  1387. {
  1388. "variable": "resources",
  1389. "group": "Resources Configuration",
  1390. "label": "",
  1391. "schema": {
  1392. "type": "dict",
  1393. "attrs": [
  1394. {
  1395. "variable": "limits",
  1396. "label": "Limits",
  1397. "schema": {
  1398. "type": "dict",
  1399. "attrs": [
  1400. {
  1401. "variable": "cpu",
  1402. "label": "CPU",
  1403. "description": "CPU limit for Deluge.",
  1404. "schema": {
  1405. "type": "string",
  1406. "max_length": 6,
  1407. "valid_chars": "^(0\\.[1-9]|[1-9][0-9]*)(\\.[0-9]|m?)$",
  1408. "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",
  1409. "default": "4000m",
  1410. "required": true
  1411. }
  1412. },
  1413. {
  1414. "variable": "memory",
  1415. "label": "Memory",
  1416. "description": "Memory limit for Deluge.",
  1417. "schema": {
  1418. "type": "string",
  1419. "max_length": 12,
  1420. "valid_chars": "^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$",
  1421. "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",
  1422. "default": "8Gi",
  1423. "required": true
  1424. }
  1425. }
  1426. ]
  1427. }
  1428. }
  1429. ]
  1430. }
  1431. }
  1432. ]
  1433. },
  1434. "app_readme": "<h1>Deluge</h1>\n<p><a href=\"https://deluge-torrent.org/\">Deluge</a> is a lightweight, Free Software, cross-platform BitTorrent client.</p>",
  1435. "detailed_readme": "<h1>Deluge</h1>\n<p><a href=\"https://deluge-torrent.org/\">Deluge</a> is a lightweight, Free Software, cross-platform BitTorrent client.</p>",
  1436. "changelog": null
  1437. }
  1438. }