app_versions.json 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570
  1. {
  2. "1.0.16": {
  3. "healthy": true,
  4. "supported": true,
  5. "healthy_error": null,
  6. "location": "/__w/charts/charts/charts/storj/1.0.16",
  7. "last_update": "2023-11-14 10:11:57",
  8. "required_features": [
  9. "normalize/ixVolume"
  10. ],
  11. "human_version": "v1.68.2_1.0.16",
  12. "version": "1.0.16",
  13. "chart_metadata": {
  14. "name": "storj",
  15. "description": "Share your storage on the internet and earn.",
  16. "annotations": {
  17. "title": "Storj"
  18. },
  19. "type": "application",
  20. "version": "1.0.16",
  21. "apiVersion": "v2",
  22. "appVersion": "v1.68.2",
  23. "kubeVersion": ">=1.16.0-0",
  24. "maintainers": [
  25. {
  26. "name": "truenas",
  27. "url": "https://www.truenas.com/",
  28. "email": "dev@ixsystems.com"
  29. }
  30. ],
  31. "dependencies": [
  32. {
  33. "name": "common",
  34. "repository": "file://../../../common/2304.0.1",
  35. "version": "2304.0.1"
  36. }
  37. ],
  38. "home": "https://www.storj.io",
  39. "icon": "https://media.sys.truenas.net/apps/storj/icons/icon.svg",
  40. "sources": [
  41. "https://www.storj.io",
  42. "https://github.com/truenas/charts/tree/master/charts/storj"
  43. ],
  44. "keywords": [
  45. "storage",
  46. "dapps",
  47. "networking",
  48. "financial"
  49. ]
  50. },
  51. "app_metadata": {
  52. "runAsContext": [
  53. {
  54. "userName": "root",
  55. "groupName": "root",
  56. "gid": 0,
  57. "uid": 0,
  58. "description": "Storj runs as root user."
  59. }
  60. ],
  61. "capabilities": [
  62. {
  63. "name": "CHOWN",
  64. "description": "Storj is able to chown files."
  65. },
  66. {
  67. "name": "FOWNER",
  68. "description": "Storj is able to bypass permission checks for it's sub-processes."
  69. },
  70. {
  71. "name": "SYS_CHROOT",
  72. "description": "Storj is able to use chroot."
  73. },
  74. {
  75. "name": "MKNOD",
  76. "description": "Storj is able to create device nodes."
  77. },
  78. {
  79. "name": "DAC_OVERRIDE",
  80. "description": "Storj is able to bypass permission checks."
  81. },
  82. {
  83. "name": "FSETID",
  84. "description": "Storj is able to set file capabilities."
  85. },
  86. {
  87. "name": "KILL",
  88. "description": "Storj is able to kill processes."
  89. },
  90. {
  91. "name": "SETGID",
  92. "description": "Storj is able to set group ID for it's sub-processes."
  93. },
  94. {
  95. "name": "SETUID",
  96. "description": "Storj is able to set user ID for it's sub-processes."
  97. },
  98. {
  99. "name": "SETPCAP",
  100. "description": "Storj is able to set process capabilities."
  101. },
  102. {
  103. "name": "NET_BIND_SERVICE",
  104. "description": "Storj is able to bind to privileged ports."
  105. },
  106. {
  107. "name": "SETFCAP",
  108. "description": "Storj is able to set file capabilities."
  109. },
  110. {
  111. "name": "NET_RAW",
  112. "description": "Storj is able to use raw sockets."
  113. },
  114. {
  115. "name": "AUDIT_WRITE",
  116. "description": "Storj is able to write to audit log."
  117. }
  118. ],
  119. "hostMounts": []
  120. },
  121. "schema": {
  122. "groups": [
  123. {
  124. "name": "Configuration",
  125. "description": "Storj application configuration"
  126. },
  127. {
  128. "name": "Storage",
  129. "description": "Configure storage for storj"
  130. },
  131. {
  132. "name": "Networking",
  133. "description": "Networking Configuration for storj"
  134. },
  135. {
  136. "name": "Advanced DNS Settings",
  137. "description": "Configure DNS settings"
  138. },
  139. {
  140. "name": "Resource Limits",
  141. "description": "Set CPU/memory limits for Kubernetes Pod"
  142. }
  143. ],
  144. "portals": {
  145. "web_portal": {
  146. "protocols": [
  147. "http"
  148. ],
  149. "host": [
  150. "$node_ip"
  151. ],
  152. "ports": [
  153. "$variable-webPort"
  154. ],
  155. "path": "/"
  156. }
  157. },
  158. "questions": [
  159. {
  160. "variable": "webPort",
  161. "label": "Web Port for Storj",
  162. "group": "Networking",
  163. "schema": {
  164. "type": "int",
  165. "min": 9000,
  166. "max": 65535,
  167. "default": 20909,
  168. "required": true
  169. }
  170. },
  171. {
  172. "variable": "nodePort",
  173. "label": "Node Port for Storj",
  174. "description": "This port will be used for both TCP and UDP traffic. </br>\nNote that this port must be open on your firewall and that internal\nStorj port will not be affected by this change, but only the external (Node Port)\n",
  175. "group": "Networking",
  176. "schema": {
  177. "type": "int",
  178. "min": 9000,
  179. "max": 65535,
  180. "default": 28967,
  181. "required": true
  182. }
  183. },
  184. {
  185. "variable": "dnsConfig",
  186. "label": "DNS Configuration",
  187. "group": "Advanced DNS Settings",
  188. "schema": {
  189. "type": "dict",
  190. "attrs": [
  191. {
  192. "variable": "options",
  193. "label": "DNS Options",
  194. "schema": {
  195. "type": "list",
  196. "items": [
  197. {
  198. "variable": "optionsEntry",
  199. "label": "Option Entry Configuration",
  200. "schema": {
  201. "type": "dict",
  202. "attrs": [
  203. {
  204. "variable": "name",
  205. "label": "Option Name",
  206. "schema": {
  207. "type": "string",
  208. "required": true
  209. }
  210. },
  211. {
  212. "variable": "value",
  213. "label": "Option Value",
  214. "schema": {
  215. "type": "string",
  216. "required": true
  217. }
  218. }
  219. ]
  220. }
  221. }
  222. ]
  223. }
  224. }
  225. ]
  226. }
  227. },
  228. {
  229. "variable": "wallet",
  230. "label": "Configure Wallet for Storj",
  231. "group": "Configuration",
  232. "schema": {
  233. "type": "string",
  234. "required": true
  235. }
  236. },
  237. {
  238. "variable": "authToken",
  239. "label": "Configure Auth token for Storj Node",
  240. "group": "Configuration",
  241. "schema": {
  242. "type": "string",
  243. "required": true
  244. }
  245. },
  246. {
  247. "variable": "email",
  248. "label": "Configure Email for Storj",
  249. "group": "Configuration",
  250. "schema": {
  251. "type": "string",
  252. "required": true
  253. }
  254. },
  255. {
  256. "variable": "domainAddress",
  257. "label": "Add Your Storage Domain for Storj",
  258. "group": "Configuration",
  259. "schema": {
  260. "type": "string",
  261. "required": true
  262. }
  263. },
  264. {
  265. "variable": "zksync",
  266. "label": "Opt-in to zkSync",
  267. "description": "Appends --operator.wallet-features=zksync flag to the storagenode command",
  268. "group": "Configuration",
  269. "schema": {
  270. "type": "boolean",
  271. "default": false
  272. }
  273. },
  274. {
  275. "variable": "terminationGracePeriod",
  276. "label": "Termination Grace Period",
  277. "description": "Optional duration in seconds the pod needs to terminate gracefully.",
  278. "group": "Configuration",
  279. "schema": {
  280. "type": "int",
  281. "min": 30,
  282. "default": 30
  283. }
  284. },
  285. {
  286. "variable": "storageSize",
  287. "label": "Configure Storage Size You Want To Share in GB's",
  288. "group": "Storage",
  289. "schema": {
  290. "type": "int",
  291. "min": 500,
  292. "default": 500
  293. }
  294. },
  295. {
  296. "variable": "runAsUser",
  297. "label": "Owner User ID",
  298. "group": "Configuration",
  299. "schema": {
  300. "immutable": true,
  301. "type": "int",
  302. "default": 568,
  303. "min": 1,
  304. "max": 65535
  305. }
  306. },
  307. {
  308. "variable": "runAsGroup",
  309. "label": "Owner Group ID",
  310. "group": "Configuration",
  311. "schema": {
  312. "immutable": true,
  313. "type": "int",
  314. "default": 568,
  315. "min": 1,
  316. "max": 65535
  317. }
  318. },
  319. {
  320. "variable": "environmentVariables",
  321. "label": "Storj Extra Environment Variables",
  322. "group": "Configuration",
  323. "schema": {
  324. "type": "list",
  325. "default": [],
  326. "items": [
  327. {
  328. "variable": "environmentVariable",
  329. "label": "Environment Variable",
  330. "schema": {
  331. "type": "dict",
  332. "attrs": [
  333. {
  334. "variable": "name",
  335. "label": "Name",
  336. "schema": {
  337. "type": "string"
  338. }
  339. },
  340. {
  341. "variable": "value",
  342. "label": "Value",
  343. "schema": {
  344. "type": "string"
  345. }
  346. }
  347. ]
  348. }
  349. }
  350. ]
  351. }
  352. },
  353. {
  354. "variable": "appVolumeMounts",
  355. "label": "Storj Configuration",
  356. "group": "Storage",
  357. "schema": {
  358. "type": "dict",
  359. "attrs": [
  360. {
  361. "variable": "data",
  362. "label": "Configuration Data Volume to Share on Storj",
  363. "schema": {
  364. "type": "dict",
  365. "attrs": [
  366. {
  367. "variable": "datasetName",
  368. "label": "Configuration Volume Dataset Name",
  369. "schema": {
  370. "type": "string",
  371. "hidden": true,
  372. "$ref": [
  373. "normalize/ixVolume"
  374. ],
  375. "show_if": [
  376. [
  377. "hostPathEnabled",
  378. "=",
  379. false
  380. ]
  381. ],
  382. "default": "ix_data",
  383. "editable": false
  384. }
  385. },
  386. {
  387. "variable": "mountPath",
  388. "label": "Configuration Mount Path",
  389. "description": "Path Where the Volume Will be Mounted Inside the Pod",
  390. "schema": {
  391. "type": "path",
  392. "hidden": true,
  393. "editable": false,
  394. "default": "/app/config"
  395. }
  396. },
  397. {
  398. "variable": "hostPathEnabled",
  399. "label": "Enable Custom Host Path for Storj Configuration Volume",
  400. "schema": {
  401. "type": "boolean",
  402. "default": false,
  403. "show_subquestions_if": true,
  404. "subquestions": [
  405. {
  406. "variable": "hostPath",
  407. "label": "Host Path for Storj Configuration Volume",
  408. "schema": {
  409. "type": "hostpath",
  410. "required": true
  411. }
  412. }
  413. ]
  414. }
  415. }
  416. ]
  417. }
  418. },
  419. {
  420. "variable": "identity",
  421. "label": "Configure Identity Volume for Storage Node",
  422. "schema": {
  423. "type": "dict",
  424. "attrs": [
  425. {
  426. "variable": "datasetName",
  427. "label": "Configure Storj Identity Volume to Allocate",
  428. "schema": {
  429. "type": "string",
  430. "hidden": true,
  431. "$ref": [
  432. "normalize/ixVolume"
  433. ],
  434. "show_if": [
  435. [
  436. "hostPathEnabled",
  437. "=",
  438. false
  439. ]
  440. ],
  441. "default": "ix_identity",
  442. "editable": false
  443. }
  444. },
  445. {
  446. "variable": "mountPath",
  447. "label": "Configure Storj Identity Volume to Allocate",
  448. "description": "Path where the volume will be mounted inside the pod",
  449. "schema": {
  450. "type": "path",
  451. "hidden": true,
  452. "editable": false,
  453. "default": "/app/identity"
  454. }
  455. },
  456. {
  457. "variable": "hostPathEnabled",
  458. "label": "Enable Custom Host Path for Storj Identity Volume",
  459. "schema": {
  460. "type": "boolean",
  461. "default": false,
  462. "show_subquestions_if": true,
  463. "subquestions": [
  464. {
  465. "variable": "hostPath",
  466. "label": "Host Path for Storj identity Volume",
  467. "schema": {
  468. "type": "hostpath",
  469. "required": true
  470. }
  471. }
  472. ]
  473. }
  474. }
  475. ]
  476. }
  477. }
  478. ]
  479. }
  480. },
  481. {
  482. "variable": "extraAppVolumeMounts",
  483. "label": "Extra Host Path Volumes",
  484. "group": "Storage",
  485. "schema": {
  486. "type": "list",
  487. "items": [
  488. {
  489. "variable": "extraAppVolume",
  490. "label": "Host Path Volume",
  491. "description": "Add an extra host path volume for storj",
  492. "schema": {
  493. "type": "dict",
  494. "attrs": [
  495. {
  496. "variable": "mountPath",
  497. "label": "Mount Path in Pod",
  498. "description": "Path where the volume will be mounted inside the pod.",
  499. "schema": {
  500. "type": "path",
  501. "required": true
  502. }
  503. },
  504. {
  505. "variable": "hostPath",
  506. "label": "Host Path",
  507. "description": "Host path",
  508. "schema": {
  509. "type": "hostpath",
  510. "required": true
  511. }
  512. }
  513. ]
  514. }
  515. }
  516. ]
  517. }
  518. },
  519. {
  520. "variable": "enableResourceLimits",
  521. "label": "Enable Pod resource limits",
  522. "group": "Resource Limits",
  523. "schema": {
  524. "type": "boolean",
  525. "default": false
  526. }
  527. },
  528. {
  529. "variable": "cpuLimit",
  530. "label": "CPU Limit",
  531. "description": "CPU resource limit allow plain integer values with suffix m(milli) e.g 1000m, 100.",
  532. "group": "Resource Limits",
  533. "schema": {
  534. "type": "string",
  535. "show_if": [
  536. [
  537. "enableResourceLimits",
  538. "=",
  539. true
  540. ]
  541. ],
  542. "valid_chars": "^\\d+(?:\\.\\d+(?!.*m$)|m?$)",
  543. "default": "4000m"
  544. }
  545. },
  546. {
  547. "variable": "memLimit",
  548. "label": "Memory Limit",
  549. "group": "Resource Limits",
  550. "description": "Memory limits is specified by number of bytes. Followed by quantity suffix like E,P,T,G,M,k and Ei,Pi,Ti,Mi,Gi,Ki can also be used. e.g 129e6, 129M, 128974848000m, 123Mi",
  551. "schema": {
  552. "type": "string",
  553. "show_if": [
  554. [
  555. "enableResourceLimits",
  556. "=",
  557. true
  558. ]
  559. ],
  560. "valid_chars": "^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$",
  561. "default": "8Gi"
  562. }
  563. }
  564. ]
  565. },
  566. "app_readme": "<h1>storj</h1>\n<p><a href=\"https://www.storj.io/\">storj</a> share your extra storage and earn money</p>",
  567. "detailed_readme": "<h1>storj</h1>\n<p><a href=\"https://www.storj.io/\">storj</a> share your extra storage and earn money</p>",
  568. "changelog": null
  569. }
  570. }