app_versions.json 52 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736
  1. {
  2. "1.0.25": {
  3. "healthy": true,
  4. "supported": false,
  5. "healthy_error": null,
  6. "location": "/__w/charts/charts/community/zerotier/1.0.25",
  7. "last_update": "2025-03-06 08:26:26",
  8. "required_features": [
  9. "normalize/ixVolume",
  10. "normalize/acl"
  11. ],
  12. "human_version": "1.14.2_1.0.25",
  13. "version": "1.0.25",
  14. "chart_metadata": {
  15. "name": "zerotier",
  16. "description": "Securely connect any device, anywhere.",
  17. "annotations": {
  18. "title": "Zerotier"
  19. },
  20. "type": "application",
  21. "version": "1.0.25",
  22. "apiVersion": "v2",
  23. "appVersion": "1.14.2",
  24. "kubeVersion": ">=1.16.0-0",
  25. "maintainers": [
  26. {
  27. "name": "truenas",
  28. "url": "https://www.truenas.com/",
  29. "email": "dev@ixsystems.com"
  30. }
  31. ],
  32. "dependencies": [
  33. {
  34. "name": "common",
  35. "repository": "file://../../../common",
  36. "version": "1.2.9"
  37. }
  38. ],
  39. "home": "https://www.zerotier.com",
  40. "icon": "https://media.sys.truenas.net/apps/zerotier/icons/icon.png",
  41. "sources": [
  42. "https://www.zerotier.com",
  43. "https://github.com/truenas/charts/tree/master/community/zerotier",
  44. "https://hub.docker.com/r/zerotier/zerotier"
  45. ],
  46. "keywords": [
  47. "vpn",
  48. "zerotier"
  49. ]
  50. },
  51. "app_metadata": {
  52. "runAsContext": [
  53. {
  54. "userName": "root",
  55. "groupName": "root",
  56. "gid": 0,
  57. "uid": 0,
  58. "description": "Zerotier requires root privileges to start the Zerotier process"
  59. }
  60. ],
  61. "capabilities": [
  62. {
  63. "name": "NET_ADMIN",
  64. "description": "Zerotier requires NET_ADMIN to configure the VPN interface, modify routes, etc."
  65. },
  66. {
  67. "name": "NET_RAW",
  68. "description": "Zerotier requires NET_RAW to use raw sockets and proxying"
  69. },
  70. {
  71. "name": "AUDIT_WRITE",
  72. "description": "Zerotier is able to write to audit log."
  73. },
  74. {
  75. "name": "CHOWN",
  76. "description": "Zerotier is able to chown files."
  77. },
  78. {
  79. "name": "DAC_OVERRIDE",
  80. "description": "Zerotier is able to bypass permission checks."
  81. },
  82. {
  83. "name": "FOWNER",
  84. "description": "Zerotier is able bypass permission checks for it's sub-processes."
  85. },
  86. {
  87. "name": "NET_BIND_SERVICE",
  88. "description": "Zerotier is able to bind to privileged ports."
  89. },
  90. {
  91. "name": "SETGID",
  92. "description": "Zerotier is able to set group ID for it's sub-processes."
  93. },
  94. {
  95. "name": "SETUID",
  96. "description": "Zerotier is able to set user ID for it's sub-processes."
  97. },
  98. {
  99. "name": "SETPCAP",
  100. "description": "Zerotier is able to set process capabilities."
  101. },
  102. {
  103. "name": "SYS_ADMIN",
  104. "description": "Zerotier is able to perform various system administration operations."
  105. }
  106. ],
  107. "hostMounts": [
  108. {
  109. "hostPath": "/dev/tun",
  110. "description": "Required to access the TUN device"
  111. }
  112. ]
  113. },
  114. "schema": {
  115. "groups": [
  116. {
  117. "name": "Zerotier Configuration",
  118. "description": "Configure Zerotier"
  119. },
  120. {
  121. "name": "Network Configuration",
  122. "description": "Configure Network for Zerotier"
  123. },
  124. {
  125. "name": "Storage Configuration",
  126. "description": "Configure Storage for Zerotier"
  127. },
  128. {
  129. "name": "Resources Configuration",
  130. "description": "Configure Resources for Zerotier"
  131. }
  132. ],
  133. "questions": [
  134. {
  135. "variable": "zerotierConfig",
  136. "label": "",
  137. "group": "Zerotier Configuration",
  138. "schema": {
  139. "type": "dict",
  140. "attrs": [
  141. {
  142. "variable": "networks",
  143. "label": "Networks",
  144. "description": "The network(s) to join",
  145. "schema": {
  146. "type": "list",
  147. "required": true,
  148. "min": 1,
  149. "default": [],
  150. "items": [
  151. {
  152. "variable": "networkEntry",
  153. "label": "Network",
  154. "schema": {
  155. "type": "string",
  156. "required": true
  157. }
  158. }
  159. ]
  160. }
  161. },
  162. {
  163. "variable": "authToken",
  164. "label": "Auth Token (API Key)",
  165. "description": "(Optional) The auth token for Zerotier.</br>\nSame as authtoken.secret.\n",
  166. "schema": {
  167. "type": "string",
  168. "default": "",
  169. "private": true
  170. }
  171. },
  172. {
  173. "variable": "identitySecret",
  174. "label": "Identity Secret",
  175. "description": "(Optional) The identity secret for Zerotier.</br>\nSame as identity.secret.\n",
  176. "schema": {
  177. "type": "string",
  178. "default": "",
  179. "private": true
  180. }
  181. },
  182. {
  183. "variable": "identityPublic",
  184. "label": "Identity Public",
  185. "description": "(Optional) The identity public for Zerotier.</br>\nSame as identity.public.\n",
  186. "schema": {
  187. "type": "string",
  188. "default": "",
  189. "private": true
  190. }
  191. },
  192. {
  193. "variable": "additionalEnvs",
  194. "label": "Additional Environment Variables",
  195. "description": "Configure additional environment variables for Zerotier.",
  196. "schema": {
  197. "type": "list",
  198. "default": [],
  199. "items": [
  200. {
  201. "variable": "env",
  202. "label": "Environment Variable",
  203. "schema": {
  204. "type": "dict",
  205. "attrs": [
  206. {
  207. "variable": "name",
  208. "label": "Name",
  209. "schema": {
  210. "type": "string",
  211. "required": true
  212. }
  213. },
  214. {
  215. "variable": "value",
  216. "label": "Value",
  217. "schema": {
  218. "type": "string",
  219. "required": true
  220. }
  221. }
  222. ]
  223. }
  224. }
  225. ]
  226. }
  227. }
  228. ]
  229. }
  230. },
  231. {
  232. "variable": "zerotierNetwork",
  233. "label": "",
  234. "group": "Network Configuration",
  235. "schema": {
  236. "type": "dict",
  237. "attrs": [
  238. {
  239. "variable": "hostNetwork",
  240. "label": "Host Network",
  241. "description": "Bind to the host network. It's recommended to keep this disabled.</br>\n",
  242. "schema": {
  243. "type": "boolean",
  244. "default": false
  245. }
  246. }
  247. ]
  248. }
  249. },
  250. {
  251. "variable": "zerotierStorage",
  252. "label": "",
  253. "group": "Storage Configuration",
  254. "schema": {
  255. "type": "dict",
  256. "attrs": [
  257. {
  258. "variable": "additionalStorages",
  259. "label": "Additional Storage",
  260. "description": "Additional storage for Zerotier.",
  261. "schema": {
  262. "type": "list",
  263. "default": [],
  264. "items": [
  265. {
  266. "variable": "storageEntry",
  267. "label": "Storage Entry",
  268. "schema": {
  269. "type": "dict",
  270. "attrs": [
  271. {
  272. "variable": "type",
  273. "label": "Type",
  274. "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",
  275. "schema": {
  276. "type": "string",
  277. "required": true,
  278. "default": "ixVolume",
  279. "immutable": true,
  280. "enum": [
  281. {
  282. "value": "hostPath",
  283. "description": "Host Path (Path that already exists on the system)"
  284. },
  285. {
  286. "value": "ixVolume",
  287. "description": "ixVolume (Dataset created automatically by the system)"
  288. },
  289. {
  290. "value": "smb-pv-pvc",
  291. "description": "SMB Share (Mounts a persistent volume claim to a SMB share)"
  292. }
  293. ]
  294. }
  295. },
  296. {
  297. "variable": "readOnly",
  298. "label": "Read Only",
  299. "description": "Mount the volume as read only.",
  300. "schema": {
  301. "type": "boolean",
  302. "default": false
  303. }
  304. },
  305. {
  306. "variable": "mountPath",
  307. "label": "Mount Path",
  308. "description": "The path inside the container to mount the storage.",
  309. "schema": {
  310. "type": "path",
  311. "required": true
  312. }
  313. },
  314. {
  315. "variable": "hostPathConfig",
  316. "label": "Host Path Configuration",
  317. "schema": {
  318. "type": "dict",
  319. "show_if": [
  320. [
  321. "type",
  322. "=",
  323. "hostPath"
  324. ]
  325. ],
  326. "attrs": [
  327. {
  328. "variable": "aclEnable",
  329. "label": "Enable ACL",
  330. "description": "Enable ACL for the dataset.",
  331. "schema": {
  332. "type": "boolean",
  333. "default": false
  334. }
  335. },
  336. {
  337. "variable": "acl",
  338. "label": "ACL Configuration",
  339. "schema": {
  340. "type": "dict",
  341. "show_if": [
  342. [
  343. "aclEnable",
  344. "=",
  345. true
  346. ]
  347. ],
  348. "attrs": [
  349. {
  350. "variable": "path",
  351. "label": "Host Path",
  352. "description": "Host Path to perform ACL",
  353. "schema": {
  354. "type": "hostpath",
  355. "required": true,
  356. "empty": false
  357. }
  358. },
  359. {
  360. "variable": "entries",
  361. "label": "ACL Entries",
  362. "description": "ACL Entries",
  363. "schema": {
  364. "type": "list",
  365. "items": [
  366. {
  367. "variable": "aclEntry",
  368. "label": "ACL Entry",
  369. "schema": {
  370. "type": "dict",
  371. "attrs": [
  372. {
  373. "variable": "id_type",
  374. "label": "ID Type",
  375. "schema": {
  376. "type": "string",
  377. "enum": [
  378. {
  379. "value": "USER",
  380. "description": "Entry is for a USER"
  381. },
  382. {
  383. "value": "GROUP",
  384. "description": "Entry is for a GROUP"
  385. }
  386. ],
  387. "default": "USER"
  388. }
  389. },
  390. {
  391. "variable": "id",
  392. "label": "ID",
  393. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  394. "schema": {
  395. "type": "int",
  396. "required": true,
  397. "min": 0
  398. }
  399. },
  400. {
  401. "variable": "access",
  402. "label": "Access",
  403. "schema": {
  404. "type": "string",
  405. "enum": [
  406. {
  407. "value": "READ",
  408. "description": "Read Access"
  409. },
  410. {
  411. "value": "MODIFY",
  412. "description": "Modify Access"
  413. },
  414. {
  415. "value": "FULL_CONTROL",
  416. "description": "FULL_CONTROL Access"
  417. }
  418. ]
  419. }
  420. }
  421. ]
  422. }
  423. }
  424. ]
  425. }
  426. },
  427. {
  428. "variable": "options",
  429. "label": "ACL Options",
  430. "schema": {
  431. "type": "dict",
  432. "attrs": [
  433. {
  434. "variable": "force",
  435. "label": "Force Flag",
  436. "description": "Enabling `Force` applies ACL even if the path has existing data",
  437. "schema": {
  438. "type": "boolean",
  439. "default": false
  440. }
  441. }
  442. ]
  443. }
  444. }
  445. ],
  446. "$ref": [
  447. "normalize/acl"
  448. ]
  449. }
  450. },
  451. {
  452. "variable": "hostPath",
  453. "label": "Host Path",
  454. "description": "The host path to use for storage.",
  455. "schema": {
  456. "type": "hostpath",
  457. "show_if": [
  458. [
  459. "aclEnable",
  460. "=",
  461. false
  462. ]
  463. ],
  464. "required": true
  465. }
  466. }
  467. ]
  468. }
  469. },
  470. {
  471. "variable": "ixVolumeConfig",
  472. "label": "ixVolume Configuration",
  473. "description": "The configuration for the ixVolume dataset.",
  474. "schema": {
  475. "type": "dict",
  476. "show_if": [
  477. [
  478. "type",
  479. "=",
  480. "ixVolume"
  481. ]
  482. ],
  483. "$ref": [
  484. "normalize/ixVolume"
  485. ],
  486. "attrs": [
  487. {
  488. "variable": "aclEnable",
  489. "label": "Enable ACL",
  490. "description": "Enable ACL for the dataset.",
  491. "schema": {
  492. "type": "boolean",
  493. "default": false
  494. }
  495. },
  496. {
  497. "variable": "datasetName",
  498. "label": "Dataset Name",
  499. "description": "The name of the dataset to use for storage.",
  500. "schema": {
  501. "type": "string",
  502. "required": true,
  503. "immutable": true,
  504. "default": "storage_entry"
  505. }
  506. },
  507. {
  508. "variable": "aclEntries",
  509. "label": "ACL Configuration",
  510. "schema": {
  511. "type": "dict",
  512. "show_if": [
  513. [
  514. "aclEnable",
  515. "=",
  516. true
  517. ]
  518. ],
  519. "attrs": [
  520. {
  521. "variable": "path",
  522. "label": "Path",
  523. "description": "Path to perform ACL",
  524. "schema": {
  525. "type": "string",
  526. "hidden": true
  527. }
  528. },
  529. {
  530. "variable": "entries",
  531. "label": "ACL Entries",
  532. "description": "ACL Entries",
  533. "schema": {
  534. "type": "list",
  535. "items": [
  536. {
  537. "variable": "aclEntry",
  538. "label": "ACL Entry",
  539. "schema": {
  540. "type": "dict",
  541. "attrs": [
  542. {
  543. "variable": "id_type",
  544. "label": "ID Type",
  545. "schema": {
  546. "type": "string",
  547. "enum": [
  548. {
  549. "value": "USER",
  550. "description": "Entry is for a USER"
  551. },
  552. {
  553. "value": "GROUP",
  554. "description": "Entry is for a GROUP"
  555. }
  556. ],
  557. "default": "USER"
  558. }
  559. },
  560. {
  561. "variable": "id",
  562. "label": "ID",
  563. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  564. "schema": {
  565. "type": "int",
  566. "required": true,
  567. "min": 0
  568. }
  569. },
  570. {
  571. "variable": "access",
  572. "label": "Access",
  573. "schema": {
  574. "type": "string",
  575. "enum": [
  576. {
  577. "value": "READ",
  578. "description": "Read Access"
  579. },
  580. {
  581. "value": "MODIFY",
  582. "description": "Modify Access"
  583. },
  584. {
  585. "value": "FULL_CONTROL",
  586. "description": "FULL_CONTROL Access"
  587. }
  588. ]
  589. }
  590. }
  591. ]
  592. }
  593. }
  594. ]
  595. }
  596. }
  597. ]
  598. }
  599. }
  600. ]
  601. }
  602. },
  603. {
  604. "variable": "smbConfig",
  605. "label": "SMB Share Configuration",
  606. "description": "The configuration for the SMB Share.",
  607. "schema": {
  608. "type": "dict",
  609. "show_if": [
  610. [
  611. "type",
  612. "=",
  613. "smb-pv-pvc"
  614. ]
  615. ],
  616. "attrs": [
  617. {
  618. "variable": "server",
  619. "label": "Server",
  620. "description": "The server for the SMB share.",
  621. "schema": {
  622. "type": "string",
  623. "required": true
  624. }
  625. },
  626. {
  627. "variable": "share",
  628. "label": "Share",
  629. "description": "The share name for the SMB share.",
  630. "schema": {
  631. "type": "string",
  632. "required": true
  633. }
  634. },
  635. {
  636. "variable": "domain",
  637. "label": "Domain (Optional)",
  638. "description": "The domain for the SMB share.",
  639. "schema": {
  640. "type": "string"
  641. }
  642. },
  643. {
  644. "variable": "username",
  645. "label": "Username",
  646. "description": "The username for the SMB share.",
  647. "schema": {
  648. "type": "string",
  649. "required": true
  650. }
  651. },
  652. {
  653. "variable": "password",
  654. "label": "Password",
  655. "description": "The password for the SMB share.",
  656. "schema": {
  657. "type": "string",
  658. "required": true,
  659. "private": true
  660. }
  661. },
  662. {
  663. "variable": "size",
  664. "label": "Size (in Gi)",
  665. "description": "The size of the volume quota.",
  666. "schema": {
  667. "type": "int",
  668. "required": true,
  669. "min": 1,
  670. "default": 1
  671. }
  672. }
  673. ]
  674. }
  675. }
  676. ]
  677. }
  678. }
  679. ]
  680. }
  681. }
  682. ]
  683. }
  684. },
  685. {
  686. "variable": "resources",
  687. "group": "Resources Configuration",
  688. "label": "",
  689. "schema": {
  690. "type": "dict",
  691. "attrs": [
  692. {
  693. "variable": "limits",
  694. "label": "Limits",
  695. "schema": {
  696. "type": "dict",
  697. "attrs": [
  698. {
  699. "variable": "cpu",
  700. "label": "CPU",
  701. "description": "CPU limit for Zerotier.",
  702. "schema": {
  703. "type": "string",
  704. "max_length": 6,
  705. "valid_chars": "^(0\\.[1-9]|[1-9][0-9]*)(\\.[0-9]|m?)$",
  706. "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",
  707. "default": "4000m",
  708. "required": true
  709. }
  710. },
  711. {
  712. "variable": "memory",
  713. "label": "Memory",
  714. "description": "Memory limit for Zerotier.",
  715. "schema": {
  716. "type": "string",
  717. "max_length": 12,
  718. "valid_chars": "^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$",
  719. "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",
  720. "default": "8Gi",
  721. "required": true
  722. }
  723. }
  724. ]
  725. }
  726. }
  727. ]
  728. }
  729. }
  730. ]
  731. },
  732. "app_readme": "<h1>Zerotier</h1>\n<p><a href=\"https://www.zerotier.com\">Zerotier</a> Securely connect any device, anywhere.</p>",
  733. "detailed_readme": "<h1>Zerotier</h1>\n<p><a href=\"https://www.zerotier.com\">Zerotier</a> Securely connect any device, anywhere.</p>",
  734. "changelog": null
  735. }
  736. }