app_versions.json 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580
  1. {
  2. "1.0.17": {
  3. "healthy": true,
  4. "supported": true,
  5. "healthy_error": null,
  6. "location": "/__w/charts/charts/charts/storj/1.0.17",
  7. "last_update": "2024-01-10 09:41:19",
  8. "required_features": [
  9. "normalize/ixVolume"
  10. ],
  11. "human_version": "v1.68.2_1.0.17",
  12. "version": "1.0.17",
  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.17",
  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 \"zksync\" to --operator.wallet-features flag to the storagenode command",
  268. "group": "Configuration",
  269. "schema": {
  270. "type": "boolean",
  271. "default": false
  272. }
  273. },
  274. {
  275. "variable": "zksyncEra",
  276. "label": "Opt-in to zkSync era",
  277. "description": "Appends \"zksync-era\" to --operator.wallet-features flag to the storagenode command",
  278. "group": "Configuration",
  279. "schema": {
  280. "type": "boolean",
  281. "default": false
  282. }
  283. },
  284. {
  285. "variable": "terminationGracePeriod",
  286. "label": "Termination Grace Period",
  287. "description": "Optional duration in seconds the pod needs to terminate gracefully.",
  288. "group": "Configuration",
  289. "schema": {
  290. "type": "int",
  291. "min": 30,
  292. "default": 30
  293. }
  294. },
  295. {
  296. "variable": "storageSize",
  297. "label": "Configure Storage Size You Want To Share in GB's",
  298. "group": "Storage",
  299. "schema": {
  300. "type": "int",
  301. "min": 500,
  302. "default": 500
  303. }
  304. },
  305. {
  306. "variable": "runAsUser",
  307. "label": "Owner User ID",
  308. "group": "Configuration",
  309. "schema": {
  310. "immutable": true,
  311. "type": "int",
  312. "default": 568,
  313. "min": 1,
  314. "max": 65535
  315. }
  316. },
  317. {
  318. "variable": "runAsGroup",
  319. "label": "Owner Group ID",
  320. "group": "Configuration",
  321. "schema": {
  322. "immutable": true,
  323. "type": "int",
  324. "default": 568,
  325. "min": 1,
  326. "max": 65535
  327. }
  328. },
  329. {
  330. "variable": "environmentVariables",
  331. "label": "Storj Extra Environment Variables",
  332. "group": "Configuration",
  333. "schema": {
  334. "type": "list",
  335. "default": [],
  336. "items": [
  337. {
  338. "variable": "environmentVariable",
  339. "label": "Environment Variable",
  340. "schema": {
  341. "type": "dict",
  342. "attrs": [
  343. {
  344. "variable": "name",
  345. "label": "Name",
  346. "schema": {
  347. "type": "string"
  348. }
  349. },
  350. {
  351. "variable": "value",
  352. "label": "Value",
  353. "schema": {
  354. "type": "string"
  355. }
  356. }
  357. ]
  358. }
  359. }
  360. ]
  361. }
  362. },
  363. {
  364. "variable": "appVolumeMounts",
  365. "label": "Storj Configuration",
  366. "group": "Storage",
  367. "schema": {
  368. "type": "dict",
  369. "attrs": [
  370. {
  371. "variable": "data",
  372. "label": "Configuration Data Volume to Share on Storj",
  373. "schema": {
  374. "type": "dict",
  375. "attrs": [
  376. {
  377. "variable": "datasetName",
  378. "label": "Configuration Volume Dataset Name",
  379. "schema": {
  380. "type": "string",
  381. "hidden": true,
  382. "$ref": [
  383. "normalize/ixVolume"
  384. ],
  385. "show_if": [
  386. [
  387. "hostPathEnabled",
  388. "=",
  389. false
  390. ]
  391. ],
  392. "default": "ix_data",
  393. "editable": false
  394. }
  395. },
  396. {
  397. "variable": "mountPath",
  398. "label": "Configuration Mount Path",
  399. "description": "Path Where the Volume Will be Mounted Inside the Pod",
  400. "schema": {
  401. "type": "path",
  402. "hidden": true,
  403. "editable": false,
  404. "default": "/app/config"
  405. }
  406. },
  407. {
  408. "variable": "hostPathEnabled",
  409. "label": "Enable Custom Host Path for Storj Configuration Volume",
  410. "schema": {
  411. "type": "boolean",
  412. "default": false,
  413. "show_subquestions_if": true,
  414. "subquestions": [
  415. {
  416. "variable": "hostPath",
  417. "label": "Host Path for Storj Configuration Volume",
  418. "schema": {
  419. "type": "hostpath",
  420. "required": true
  421. }
  422. }
  423. ]
  424. }
  425. }
  426. ]
  427. }
  428. },
  429. {
  430. "variable": "identity",
  431. "label": "Configure Identity Volume for Storage Node",
  432. "schema": {
  433. "type": "dict",
  434. "attrs": [
  435. {
  436. "variable": "datasetName",
  437. "label": "Configure Storj Identity Volume to Allocate",
  438. "schema": {
  439. "type": "string",
  440. "hidden": true,
  441. "$ref": [
  442. "normalize/ixVolume"
  443. ],
  444. "show_if": [
  445. [
  446. "hostPathEnabled",
  447. "=",
  448. false
  449. ]
  450. ],
  451. "default": "ix_identity",
  452. "editable": false
  453. }
  454. },
  455. {
  456. "variable": "mountPath",
  457. "label": "Configure Storj Identity Volume to Allocate",
  458. "description": "Path where the volume will be mounted inside the pod",
  459. "schema": {
  460. "type": "path",
  461. "hidden": true,
  462. "editable": false,
  463. "default": "/app/identity"
  464. }
  465. },
  466. {
  467. "variable": "hostPathEnabled",
  468. "label": "Enable Custom Host Path for Storj Identity Volume",
  469. "schema": {
  470. "type": "boolean",
  471. "default": false,
  472. "show_subquestions_if": true,
  473. "subquestions": [
  474. {
  475. "variable": "hostPath",
  476. "label": "Host Path for Storj identity Volume",
  477. "schema": {
  478. "type": "hostpath",
  479. "required": true
  480. }
  481. }
  482. ]
  483. }
  484. }
  485. ]
  486. }
  487. }
  488. ]
  489. }
  490. },
  491. {
  492. "variable": "extraAppVolumeMounts",
  493. "label": "Extra Host Path Volumes",
  494. "group": "Storage",
  495. "schema": {
  496. "type": "list",
  497. "items": [
  498. {
  499. "variable": "extraAppVolume",
  500. "label": "Host Path Volume",
  501. "description": "Add an extra host path volume for storj",
  502. "schema": {
  503. "type": "dict",
  504. "attrs": [
  505. {
  506. "variable": "mountPath",
  507. "label": "Mount Path in Pod",
  508. "description": "Path where the volume will be mounted inside the pod.",
  509. "schema": {
  510. "type": "path",
  511. "required": true
  512. }
  513. },
  514. {
  515. "variable": "hostPath",
  516. "label": "Host Path",
  517. "description": "Host path",
  518. "schema": {
  519. "type": "hostpath",
  520. "required": true
  521. }
  522. }
  523. ]
  524. }
  525. }
  526. ]
  527. }
  528. },
  529. {
  530. "variable": "enableResourceLimits",
  531. "label": "Enable Pod resource limits",
  532. "group": "Resource Limits",
  533. "schema": {
  534. "type": "boolean",
  535. "default": false
  536. }
  537. },
  538. {
  539. "variable": "cpuLimit",
  540. "label": "CPU Limit",
  541. "description": "CPU resource limit allow plain integer values with suffix m(milli) e.g 1000m, 100.",
  542. "group": "Resource Limits",
  543. "schema": {
  544. "type": "string",
  545. "show_if": [
  546. [
  547. "enableResourceLimits",
  548. "=",
  549. true
  550. ]
  551. ],
  552. "valid_chars": "^\\d+(?:\\.\\d+(?!.*m$)|m?$)",
  553. "default": "4000m"
  554. }
  555. },
  556. {
  557. "variable": "memLimit",
  558. "label": "Memory Limit",
  559. "group": "Resource Limits",
  560. "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",
  561. "schema": {
  562. "type": "string",
  563. "show_if": [
  564. [
  565. "enableResourceLimits",
  566. "=",
  567. true
  568. ]
  569. ],
  570. "valid_chars": "^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$",
  571. "default": "8Gi"
  572. }
  573. }
  574. ]
  575. },
  576. "app_readme": "<h1>storj</h1>\n<p><a href=\"https://www.storj.io/\">storj</a> share your extra storage and earn money</p>",
  577. "detailed_readme": "<h1>storj</h1>\n<p><a href=\"https://www.storj.io/\">storj</a> share your extra storage and earn money</p>",
  578. "changelog": null
  579. }
  580. }