app_versions.json 105 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634
  1. {
  2. "2.0.16": {
  3. "healthy": true,
  4. "supported": false,
  5. "healthy_error": null,
  6. "location": "/__w/charts/charts/charts/syncthing/2.0.16",
  7. "last_update": "2025-03-06 08:26:26",
  8. "required_features": [
  9. "normalize/ixVolume",
  10. "normalize/acl"
  11. ],
  12. "human_version": "1.29.2_2.0.16",
  13. "version": "2.0.16",
  14. "chart_metadata": {
  15. "name": "syncthing",
  16. "description": "Syncthing is a continuous file synchronization program.",
  17. "annotations": {
  18. "title": "Syncthing"
  19. },
  20. "type": "application",
  21. "version": "2.0.16",
  22. "apiVersion": "v2",
  23. "appVersion": "1.29.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://syncthing.net/",
  40. "icon": "https://media.sys.truenas.net/apps/syncthing/icons/icon.svg",
  41. "sources": [
  42. "https://syncthing.net",
  43. "https://github.com/truenas/charts/tree/master/charts/syncthing"
  44. ],
  45. "keywords": [
  46. "storage",
  47. "backup"
  48. ]
  49. },
  50. "app_metadata": {
  51. "runAsContext": [
  52. {
  53. "userName": "root",
  54. "groupName": "root",
  55. "gid": 0,
  56. "uid": 0,
  57. "description": "Syncthing runs as root user."
  58. }
  59. ],
  60. "capabilities": [
  61. {
  62. "name": "CHOWN",
  63. "description": "Syncthing is able to chown files."
  64. },
  65. {
  66. "name": "FOWNER",
  67. "description": "Syncthing is able to bypass permission checks for it's sub-processes."
  68. },
  69. {
  70. "name": "SYS_CHROOT",
  71. "description": "Syncthing is able to use chroot."
  72. },
  73. {
  74. "name": "MKNOD",
  75. "description": "Syncthing is able to create device nodes."
  76. },
  77. {
  78. "name": "DAC_OVERRIDE",
  79. "description": "Syncthing is able to bypass permission checks."
  80. },
  81. {
  82. "name": "FSETID",
  83. "description": "Syncthing is able to set file capabilities."
  84. },
  85. {
  86. "name": "KILL",
  87. "description": "Syncthing is able to kill processes."
  88. },
  89. {
  90. "name": "SETGID",
  91. "description": "Syncthing is able to set group ID for it's sub-processes."
  92. },
  93. {
  94. "name": "SETUID",
  95. "description": "Syncthing is able to set user ID for it's sub-processes."
  96. },
  97. {
  98. "name": "SETPCAP",
  99. "description": "Syncthing is able to set process capabilities."
  100. },
  101. {
  102. "name": "NET_BIND_SERVICE",
  103. "description": "Syncthing is able to bind to privileged ports."
  104. },
  105. {
  106. "name": "SETFCAP",
  107. "description": "Syncthing is able to set file capabilities."
  108. },
  109. {
  110. "name": "NET_RAW",
  111. "description": "Syncthing is able to use raw sockets."
  112. },
  113. {
  114. "name": "AUDIT_WRITE",
  115. "description": "Syncthing is able to write to audit log."
  116. }
  117. ],
  118. "hostMounts": []
  119. },
  120. "schema": {
  121. "groups": [
  122. {
  123. "name": "Syncthing Configuration",
  124. "description": "Configure Syncthing"
  125. },
  126. {
  127. "name": "User and Group Configuration",
  128. "description": "Configure User and Group for Syncthing"
  129. },
  130. {
  131. "name": "Advanced Pod Configuration",
  132. "description": "Configure Advanced Pod Options for Syncthing"
  133. },
  134. {
  135. "name": "Network Configuration",
  136. "description": "Configure Network for Syncthing"
  137. },
  138. {
  139. "name": "Storage Configuration",
  140. "description": "Configure Storage for Syncthing"
  141. },
  142. {
  143. "name": "Resources Configuration",
  144. "description": "Configure Resources for Syncthing"
  145. }
  146. ],
  147. "portals": {
  148. "web_portal": {
  149. "protocols": [
  150. "$kubernetes-resource_configmap_portal_protocol"
  151. ],
  152. "host": [
  153. "$kubernetes-resource_configmap_portal_host"
  154. ],
  155. "ports": [
  156. "$kubernetes-resource_configmap_portal_port"
  157. ],
  158. "path": "$kubernetes-resource_configmap_portal_path"
  159. }
  160. },
  161. "questions": [
  162. {
  163. "variable": "syncthingConfig",
  164. "label": "",
  165. "group": "Syncthing Configuration",
  166. "schema": {
  167. "type": "dict",
  168. "attrs": [
  169. {
  170. "variable": "additionalEnvs",
  171. "label": "Additional Environment Variables",
  172. "description": "Configure additional environment variables for Syncthing.",
  173. "schema": {
  174. "type": "list",
  175. "default": [],
  176. "items": [
  177. {
  178. "variable": "env",
  179. "label": "Environment Variable",
  180. "schema": {
  181. "type": "dict",
  182. "attrs": [
  183. {
  184. "variable": "name",
  185. "label": "Name",
  186. "schema": {
  187. "type": "string",
  188. "required": true
  189. }
  190. },
  191. {
  192. "variable": "value",
  193. "label": "Value",
  194. "schema": {
  195. "type": "string",
  196. "required": true
  197. }
  198. }
  199. ]
  200. }
  201. }
  202. ]
  203. }
  204. }
  205. ]
  206. }
  207. },
  208. {
  209. "variable": "syncthingID",
  210. "label": "",
  211. "group": "User and Group Configuration",
  212. "schema": {
  213. "type": "dict",
  214. "attrs": [
  215. {
  216. "variable": "user",
  217. "label": "User ID",
  218. "description": "The user id that Syncthing files will be owned by.",
  219. "schema": {
  220. "type": "int",
  221. "min": 0,
  222. "default": 568,
  223. "required": true
  224. }
  225. },
  226. {
  227. "variable": "group",
  228. "label": "Group ID",
  229. "description": "The group id that Syncthing files will be owned by.",
  230. "schema": {
  231. "type": "int",
  232. "min": 0,
  233. "default": 568,
  234. "required": true
  235. }
  236. }
  237. ]
  238. }
  239. },
  240. {
  241. "variable": "podOptions",
  242. "label": "",
  243. "group": "Advanced Pod Configuration",
  244. "schema": {
  245. "type": "dict",
  246. "attrs": [
  247. {
  248. "variable": "dnsConfig",
  249. "label": "Advanced DNS Configuration",
  250. "schema": {
  251. "type": "dict",
  252. "attrs": [
  253. {
  254. "variable": "options",
  255. "label": "DNS Options",
  256. "schema": {
  257. "type": "list",
  258. "items": [
  259. {
  260. "variable": "optionsEntry",
  261. "label": "DNS Option Entry",
  262. "schema": {
  263. "type": "dict",
  264. "attrs": [
  265. {
  266. "variable": "name",
  267. "label": "Option Name",
  268. "schema": {
  269. "type": "string",
  270. "required": true
  271. }
  272. },
  273. {
  274. "variable": "value",
  275. "label": "Option Value",
  276. "schema": {
  277. "type": "string",
  278. "required": true
  279. }
  280. }
  281. ]
  282. }
  283. }
  284. ]
  285. }
  286. }
  287. ]
  288. }
  289. }
  290. ]
  291. }
  292. },
  293. {
  294. "variable": "syncthingNetwork",
  295. "label": "",
  296. "group": "Network Configuration",
  297. "schema": {
  298. "type": "dict",
  299. "attrs": [
  300. {
  301. "variable": "webPort",
  302. "label": "Web Port",
  303. "description": "The port for the Syncthing Web UI.",
  304. "schema": {
  305. "type": "int",
  306. "default": 20910,
  307. "min": 9000,
  308. "max": 65535,
  309. "required": true
  310. }
  311. },
  312. {
  313. "variable": "tcpPort",
  314. "label": "TCP Port",
  315. "description": "The port for the Syncthing TCP connection.",
  316. "schema": {
  317. "type": "int",
  318. "default": 20978,
  319. "show_if": [
  320. [
  321. "hostNetwork",
  322. "=",
  323. false
  324. ]
  325. ],
  326. "min": 9000,
  327. "max": 65535,
  328. "required": true
  329. }
  330. },
  331. {
  332. "variable": "udpPort",
  333. "label": "UDP Port",
  334. "description": "The port for the Syncthing UDP connection.",
  335. "schema": {
  336. "type": "int",
  337. "default": 20979,
  338. "show_if": [
  339. [
  340. "hostNetwork",
  341. "=",
  342. false
  343. ]
  344. ],
  345. "min": 9000,
  346. "max": 65535,
  347. "required": true
  348. }
  349. },
  350. {
  351. "variable": "hostNetwork",
  352. "label": "Host Network",
  353. "description": "Enabling this will use the host network for Syncthing.</br>\nThe TCP and UDP ports will listen on port 22000. </br>\nWeb UI will listen on the port specified above.\n",
  354. "schema": {
  355. "type": "boolean",
  356. "default": false
  357. }
  358. }
  359. ]
  360. }
  361. },
  362. {
  363. "variable": "syncthingStorage",
  364. "label": "",
  365. "group": "Storage Configuration",
  366. "schema": {
  367. "type": "dict",
  368. "attrs": [
  369. {
  370. "variable": "config",
  371. "label": "Syncthing Config Storage",
  372. "description": "The path to store Syncthing Configuration.",
  373. "schema": {
  374. "type": "dict",
  375. "attrs": [
  376. {
  377. "variable": "type",
  378. "label": "Type",
  379. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  380. "schema": {
  381. "type": "string",
  382. "required": true,
  383. "immutable": true,
  384. "default": "ixVolume",
  385. "enum": [
  386. {
  387. "value": "hostPath",
  388. "description": "Host Path (Path that already exists on the system)"
  389. },
  390. {
  391. "value": "ixVolume",
  392. "description": "ixVolume (Dataset created automatically by the system)"
  393. }
  394. ]
  395. }
  396. },
  397. {
  398. "variable": "ixVolumeConfig",
  399. "label": "ixVolume Configuration",
  400. "description": "The configuration for the ixVolume dataset.",
  401. "schema": {
  402. "type": "dict",
  403. "show_if": [
  404. [
  405. "type",
  406. "=",
  407. "ixVolume"
  408. ]
  409. ],
  410. "$ref": [
  411. "normalize/ixVolume"
  412. ],
  413. "attrs": [
  414. {
  415. "variable": "aclEnable",
  416. "label": "Enable ACL",
  417. "description": "Enable ACL for the dataset.",
  418. "schema": {
  419. "type": "boolean",
  420. "default": false
  421. }
  422. },
  423. {
  424. "variable": "datasetName",
  425. "label": "Dataset Name",
  426. "description": "The name of the dataset to use for storage.",
  427. "schema": {
  428. "type": "string",
  429. "required": true,
  430. "immutable": true,
  431. "hidden": true,
  432. "default": "config"
  433. }
  434. },
  435. {
  436. "variable": "aclEntries",
  437. "label": "ACL Configuration",
  438. "schema": {
  439. "type": "dict",
  440. "show_if": [
  441. [
  442. "aclEnable",
  443. "=",
  444. true
  445. ]
  446. ],
  447. "attrs": [
  448. {
  449. "variable": "path",
  450. "label": "Path",
  451. "description": "Path to perform ACL",
  452. "schema": {
  453. "type": "string",
  454. "hidden": true
  455. }
  456. },
  457. {
  458. "variable": "entries",
  459. "label": "ACL Entries",
  460. "description": "ACL Entries",
  461. "schema": {
  462. "type": "list",
  463. "items": [
  464. {
  465. "variable": "aclEntry",
  466. "label": "ACL Entry",
  467. "schema": {
  468. "type": "dict",
  469. "attrs": [
  470. {
  471. "variable": "id_type",
  472. "label": "ID Type",
  473. "schema": {
  474. "type": "string",
  475. "enum": [
  476. {
  477. "value": "USER",
  478. "description": "Entry is for a USER"
  479. },
  480. {
  481. "value": "GROUP",
  482. "description": "Entry is for a GROUP"
  483. }
  484. ],
  485. "default": "USER"
  486. }
  487. },
  488. {
  489. "variable": "id",
  490. "label": "ID",
  491. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  492. "schema": {
  493. "type": "int",
  494. "required": true,
  495. "min": 0
  496. }
  497. },
  498. {
  499. "variable": "access",
  500. "label": "Access",
  501. "schema": {
  502. "type": "string",
  503. "enum": [
  504. {
  505. "value": "READ",
  506. "description": "Read Access"
  507. },
  508. {
  509. "value": "MODIFY",
  510. "description": "Modify Access"
  511. },
  512. {
  513. "value": "FULL_CONTROL",
  514. "description": "FULL_CONTROL Access"
  515. }
  516. ]
  517. }
  518. }
  519. ]
  520. }
  521. }
  522. ]
  523. }
  524. }
  525. ]
  526. }
  527. }
  528. ]
  529. }
  530. },
  531. {
  532. "variable": "hostPathConfig",
  533. "label": "Host Path Config",
  534. "schema": {
  535. "type": "dict",
  536. "show_if": [
  537. [
  538. "type",
  539. "=",
  540. "hostPath"
  541. ]
  542. ],
  543. "attrs": [
  544. {
  545. "variable": "aclEnable",
  546. "label": "Enable ACL",
  547. "description": "Enable ACL for the dataset.",
  548. "schema": {
  549. "type": "boolean",
  550. "default": false
  551. }
  552. },
  553. {
  554. "variable": "acl",
  555. "label": "ACL Configuration",
  556. "schema": {
  557. "type": "dict",
  558. "show_if": [
  559. [
  560. "aclEnable",
  561. "=",
  562. true
  563. ]
  564. ],
  565. "attrs": [
  566. {
  567. "variable": "path",
  568. "label": "Host Path",
  569. "description": "Host Path to perform ACL",
  570. "schema": {
  571. "type": "hostpath",
  572. "required": true,
  573. "empty": false
  574. }
  575. },
  576. {
  577. "variable": "entries",
  578. "label": "ACL Entries",
  579. "description": "ACL Entries",
  580. "schema": {
  581. "type": "list",
  582. "items": [
  583. {
  584. "variable": "aclEntry",
  585. "label": "ACL Entry",
  586. "schema": {
  587. "type": "dict",
  588. "attrs": [
  589. {
  590. "variable": "id_type",
  591. "label": "ID Type",
  592. "schema": {
  593. "type": "string",
  594. "enum": [
  595. {
  596. "value": "USER",
  597. "description": "Entry is for a USER"
  598. },
  599. {
  600. "value": "GROUP",
  601. "description": "Entry is for a GROUP"
  602. }
  603. ],
  604. "default": "USER"
  605. }
  606. },
  607. {
  608. "variable": "id",
  609. "label": "ID",
  610. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  611. "schema": {
  612. "type": "int",
  613. "required": true,
  614. "min": 0
  615. }
  616. },
  617. {
  618. "variable": "access",
  619. "label": "Access",
  620. "schema": {
  621. "type": "string",
  622. "enum": [
  623. {
  624. "value": "READ",
  625. "description": "Read Access"
  626. },
  627. {
  628. "value": "MODIFY",
  629. "description": "Modify Access"
  630. },
  631. {
  632. "value": "FULL_CONTROL",
  633. "description": "FULL_CONTROL Access"
  634. }
  635. ]
  636. }
  637. }
  638. ]
  639. }
  640. }
  641. ]
  642. }
  643. },
  644. {
  645. "variable": "options",
  646. "label": "ACL Options",
  647. "schema": {
  648. "type": "dict",
  649. "attrs": [
  650. {
  651. "variable": "force",
  652. "label": "Force Flag",
  653. "description": "Enabling `Force` applies ACL even if the path has existing data",
  654. "schema": {
  655. "type": "boolean",
  656. "default": false
  657. }
  658. }
  659. ]
  660. }
  661. }
  662. ],
  663. "$ref": [
  664. "normalize/acl"
  665. ]
  666. }
  667. },
  668. {
  669. "variable": "hostPath",
  670. "label": "Host Path",
  671. "description": "The host path to use for storage.",
  672. "schema": {
  673. "type": "hostpath",
  674. "show_if": [
  675. [
  676. "aclEnable",
  677. "=",
  678. false
  679. ]
  680. ],
  681. "required": true
  682. }
  683. }
  684. ]
  685. }
  686. }
  687. ]
  688. }
  689. },
  690. {
  691. "variable": "additionalStorages",
  692. "label": "Additional Storage",
  693. "description": "Additional storage for Syncthing.",
  694. "schema": {
  695. "type": "list",
  696. "default": [],
  697. "items": [
  698. {
  699. "variable": "storageEntry",
  700. "label": "Storage Entry",
  701. "schema": {
  702. "type": "dict",
  703. "attrs": [
  704. {
  705. "variable": "type",
  706. "label": "Type",
  707. "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",
  708. "schema": {
  709. "type": "string",
  710. "required": true,
  711. "default": "ixVolume",
  712. "immutable": true,
  713. "enum": [
  714. {
  715. "value": "hostPath",
  716. "description": "Host Path (Path that already exists on the system)"
  717. },
  718. {
  719. "value": "ixVolume",
  720. "description": "ixVolume (Dataset created automatically by the system)"
  721. },
  722. {
  723. "value": "smb-pv-pvc",
  724. "description": "SMB Share (Mounts a persistent volume claim to a SMB share)"
  725. }
  726. ]
  727. }
  728. },
  729. {
  730. "variable": "readOnly",
  731. "label": "Read Only",
  732. "description": "Mount the volume as read only.",
  733. "schema": {
  734. "type": "boolean",
  735. "default": false
  736. }
  737. },
  738. {
  739. "variable": "mountPath",
  740. "label": "Mount Path",
  741. "description": "The path inside the container to mount the storage.",
  742. "schema": {
  743. "type": "path",
  744. "required": true
  745. }
  746. },
  747. {
  748. "variable": "hostPathConfig",
  749. "label": "Host Path Config",
  750. "schema": {
  751. "type": "dict",
  752. "show_if": [
  753. [
  754. "type",
  755. "=",
  756. "hostPath"
  757. ]
  758. ],
  759. "attrs": [
  760. {
  761. "variable": "aclEnable",
  762. "label": "Enable ACL",
  763. "description": "Enable ACL for the dataset.",
  764. "schema": {
  765. "type": "boolean",
  766. "default": false
  767. }
  768. },
  769. {
  770. "variable": "acl",
  771. "label": "ACL Configuration",
  772. "schema": {
  773. "type": "dict",
  774. "show_if": [
  775. [
  776. "aclEnable",
  777. "=",
  778. true
  779. ]
  780. ],
  781. "attrs": [
  782. {
  783. "variable": "path",
  784. "label": "Host Path",
  785. "description": "Host Path to perform ACL",
  786. "schema": {
  787. "type": "hostpath",
  788. "required": true,
  789. "empty": false
  790. }
  791. },
  792. {
  793. "variable": "entries",
  794. "label": "ACL Entries",
  795. "description": "ACL Entries",
  796. "schema": {
  797. "type": "list",
  798. "items": [
  799. {
  800. "variable": "aclEntry",
  801. "label": "ACL Entry",
  802. "schema": {
  803. "type": "dict",
  804. "attrs": [
  805. {
  806. "variable": "id_type",
  807. "label": "ID Type",
  808. "schema": {
  809. "type": "string",
  810. "enum": [
  811. {
  812. "value": "USER",
  813. "description": "Entry is for a USER"
  814. },
  815. {
  816. "value": "GROUP",
  817. "description": "Entry is for a GROUP"
  818. }
  819. ],
  820. "default": "USER"
  821. }
  822. },
  823. {
  824. "variable": "id",
  825. "label": "ID",
  826. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  827. "schema": {
  828. "type": "int",
  829. "required": true,
  830. "min": 0
  831. }
  832. },
  833. {
  834. "variable": "access",
  835. "label": "Access",
  836. "schema": {
  837. "type": "string",
  838. "enum": [
  839. {
  840. "value": "READ",
  841. "description": "Read Access"
  842. },
  843. {
  844. "value": "MODIFY",
  845. "description": "Modify Access"
  846. },
  847. {
  848. "value": "FULL_CONTROL",
  849. "description": "FULL_CONTROL Access"
  850. }
  851. ]
  852. }
  853. }
  854. ]
  855. }
  856. }
  857. ]
  858. }
  859. },
  860. {
  861. "variable": "options",
  862. "label": "ACL Options",
  863. "schema": {
  864. "type": "dict",
  865. "attrs": [
  866. {
  867. "variable": "force",
  868. "label": "Force Flag",
  869. "description": "Enabling `Force` applies ACL even if the path has existing data",
  870. "schema": {
  871. "type": "boolean",
  872. "default": false
  873. }
  874. }
  875. ]
  876. }
  877. }
  878. ],
  879. "$ref": [
  880. "normalize/acl"
  881. ]
  882. }
  883. },
  884. {
  885. "variable": "hostPath",
  886. "label": "Host Path",
  887. "description": "The host path to use for storage.",
  888. "schema": {
  889. "type": "hostpath",
  890. "show_if": [
  891. [
  892. "aclEnable",
  893. "=",
  894. false
  895. ]
  896. ],
  897. "required": true
  898. }
  899. }
  900. ]
  901. }
  902. },
  903. {
  904. "variable": "ixVolumeConfig",
  905. "label": "ixVolume Configuration",
  906. "description": "The configuration for the ixVolume dataset.",
  907. "schema": {
  908. "type": "dict",
  909. "show_if": [
  910. [
  911. "type",
  912. "=",
  913. "ixVolume"
  914. ]
  915. ],
  916. "$ref": [
  917. "normalize/ixVolume"
  918. ],
  919. "attrs": [
  920. {
  921. "variable": "aclEnable",
  922. "label": "Enable ACL",
  923. "description": "Enable ACL for the dataset.",
  924. "schema": {
  925. "type": "boolean",
  926. "default": false
  927. }
  928. },
  929. {
  930. "variable": "datasetName",
  931. "label": "Dataset Name",
  932. "description": "The name of the dataset to use for storage.",
  933. "schema": {
  934. "type": "string",
  935. "required": true,
  936. "immutable": true,
  937. "default": "storage_entry"
  938. }
  939. },
  940. {
  941. "variable": "aclEntries",
  942. "label": "ACL Configuration",
  943. "schema": {
  944. "type": "dict",
  945. "show_if": [
  946. [
  947. "aclEnable",
  948. "=",
  949. true
  950. ]
  951. ],
  952. "attrs": [
  953. {
  954. "variable": "path",
  955. "label": "Path",
  956. "description": "Path to perform ACL",
  957. "schema": {
  958. "type": "string",
  959. "hidden": true
  960. }
  961. },
  962. {
  963. "variable": "entries",
  964. "label": "ACL Entries",
  965. "description": "ACL Entries",
  966. "schema": {
  967. "type": "list",
  968. "items": [
  969. {
  970. "variable": "aclEntry",
  971. "label": "ACL Entry",
  972. "schema": {
  973. "type": "dict",
  974. "attrs": [
  975. {
  976. "variable": "id_type",
  977. "label": "ID Type",
  978. "schema": {
  979. "type": "string",
  980. "enum": [
  981. {
  982. "value": "USER",
  983. "description": "Entry is for a USER"
  984. },
  985. {
  986. "value": "GROUP",
  987. "description": "Entry is for a GROUP"
  988. }
  989. ],
  990. "default": "USER"
  991. }
  992. },
  993. {
  994. "variable": "id",
  995. "label": "ID",
  996. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  997. "schema": {
  998. "type": "int",
  999. "required": true,
  1000. "min": 0
  1001. }
  1002. },
  1003. {
  1004. "variable": "access",
  1005. "label": "Access",
  1006. "schema": {
  1007. "type": "string",
  1008. "enum": [
  1009. {
  1010. "value": "READ",
  1011. "description": "Read Access"
  1012. },
  1013. {
  1014. "value": "MODIFY",
  1015. "description": "Modify Access"
  1016. },
  1017. {
  1018. "value": "FULL_CONTROL",
  1019. "description": "FULL_CONTROL Access"
  1020. }
  1021. ]
  1022. }
  1023. }
  1024. ]
  1025. }
  1026. }
  1027. ]
  1028. }
  1029. }
  1030. ]
  1031. }
  1032. }
  1033. ]
  1034. }
  1035. },
  1036. {
  1037. "variable": "smbConfig",
  1038. "label": "SMB Share Configuration",
  1039. "description": "The configuration for the SMB Share.",
  1040. "schema": {
  1041. "type": "dict",
  1042. "show_if": [
  1043. [
  1044. "type",
  1045. "=",
  1046. "smb-pv-pvc"
  1047. ]
  1048. ],
  1049. "attrs": [
  1050. {
  1051. "variable": "server",
  1052. "label": "Server",
  1053. "description": "The server for the SMB share.",
  1054. "schema": {
  1055. "type": "string",
  1056. "required": true
  1057. }
  1058. },
  1059. {
  1060. "variable": "share",
  1061. "label": "Share",
  1062. "description": "The share name for the SMB share.",
  1063. "schema": {
  1064. "type": "string",
  1065. "required": true
  1066. }
  1067. },
  1068. {
  1069. "variable": "domain",
  1070. "label": "Domain (Optional)",
  1071. "description": "The domain for the SMB share.",
  1072. "schema": {
  1073. "type": "string"
  1074. }
  1075. },
  1076. {
  1077. "variable": "username",
  1078. "label": "Username",
  1079. "description": "The username for the SMB share.",
  1080. "schema": {
  1081. "type": "string",
  1082. "required": true
  1083. }
  1084. },
  1085. {
  1086. "variable": "password",
  1087. "label": "Password",
  1088. "description": "The password for the SMB share.",
  1089. "schema": {
  1090. "type": "string",
  1091. "required": true,
  1092. "private": true
  1093. }
  1094. },
  1095. {
  1096. "variable": "size",
  1097. "label": "Size (in Gi)",
  1098. "description": "The size of the volume quota.",
  1099. "schema": {
  1100. "type": "int",
  1101. "required": true,
  1102. "min": 1,
  1103. "default": 1
  1104. }
  1105. }
  1106. ]
  1107. }
  1108. }
  1109. ]
  1110. }
  1111. }
  1112. ]
  1113. }
  1114. }
  1115. ]
  1116. }
  1117. },
  1118. {
  1119. "variable": "resources",
  1120. "group": "Resources Configuration",
  1121. "label": "",
  1122. "schema": {
  1123. "type": "dict",
  1124. "attrs": [
  1125. {
  1126. "variable": "limits",
  1127. "label": "Limits",
  1128. "schema": {
  1129. "type": "dict",
  1130. "attrs": [
  1131. {
  1132. "variable": "cpu",
  1133. "label": "CPU",
  1134. "description": "CPU limit for Syncthing.",
  1135. "schema": {
  1136. "type": "string",
  1137. "max_length": 6,
  1138. "valid_chars": "^(0\\.[1-9]|[1-9][0-9]*)(\\.[0-9]|m?)$",
  1139. "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",
  1140. "default": "4000m",
  1141. "required": true
  1142. }
  1143. },
  1144. {
  1145. "variable": "memory",
  1146. "label": "Memory",
  1147. "description": "Memory limit for Syncthing.",
  1148. "schema": {
  1149. "type": "string",
  1150. "max_length": 12,
  1151. "valid_chars": "^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$",
  1152. "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",
  1153. "default": "8Gi",
  1154. "required": true
  1155. }
  1156. }
  1157. ]
  1158. }
  1159. }
  1160. ]
  1161. }
  1162. }
  1163. ]
  1164. },
  1165. "app_readme": "<h1>Syncthing</h1>\n<p><a href=\"https://syncthing.net/\">Syncthing</a> is a continuous file synchronization program. It synchronizes files between two or\nmore computers in real time, safely protected from prying eyes. Your data is your data alone and you deserve to choose\nwhere it is stored, whether it is shared with some third party, and how it's transmitted over the internet.</p>\n<blockquote>\n<p><strong>WARNING</strong> Do check out <a href=\"https://docs.syncthing.net/users/faq.html#what-things-are-synced\">official docs</a> to see what is synced.</p>\n</blockquote>",
  1166. "detailed_readme": "<h1>Syncthing</h1>\n<p><a href=\"https://syncthing.net/\">Syncthing</a> is a continuous file synchronization program. It synchronizes files between two or\nmore computers in real time, safely protected from prying eyes. Your data is your data alone and you deserve to choose\nwhere it is stored, whether it is shared with some third party, and how it's transmitted over the internet.</p>\n<blockquote>\n<p><strong>WARNING</strong> Do check out <a href=\"https://docs.syncthing.net/users/faq.html#what-things-are-synced\">official docs</a> to see what is synced.</p>\n</blockquote>",
  1167. "changelog": null
  1168. },
  1169. "1.0.42": {
  1170. "healthy": true,
  1171. "supported": true,
  1172. "healthy_error": null,
  1173. "location": "/__w/charts/charts/charts/syncthing/1.0.42",
  1174. "last_update": "2025-03-06 08:26:26",
  1175. "required_features": [
  1176. "validations/lockedHostPath",
  1177. "normalize/ixVolume"
  1178. ],
  1179. "human_version": "1.27.3_1.0.42",
  1180. "version": "1.0.42",
  1181. "chart_metadata": {
  1182. "name": "syncthing",
  1183. "description": "Syncthing is a continuous file synchronization program.",
  1184. "annotations": {
  1185. "title": "Syncthing"
  1186. },
  1187. "type": "application",
  1188. "version": "1.0.42",
  1189. "apiVersion": "v2",
  1190. "appVersion": "1.27.3",
  1191. "kubeVersion": ">=1.16.0-0",
  1192. "maintainers": [
  1193. {
  1194. "name": "truenas",
  1195. "url": "https://www.truenas.com/",
  1196. "email": "dev@ixsystems.com"
  1197. }
  1198. ],
  1199. "dependencies": [
  1200. {
  1201. "name": "common",
  1202. "repository": "file://../../../common/2304.0.1",
  1203. "version": "2304.0.1"
  1204. }
  1205. ],
  1206. "home": "https://syncthing.net/",
  1207. "icon": "https://media.sys.truenas.net/apps/syncthing/icons/icon.svg",
  1208. "sources": [
  1209. "https://syncthing.net",
  1210. "https://github.com/truenas/charts/tree/master/charts/syncthing"
  1211. ],
  1212. "keywords": [
  1213. "storage",
  1214. "backup"
  1215. ]
  1216. },
  1217. "app_metadata": {
  1218. "runAsContext": [
  1219. {
  1220. "userName": "root",
  1221. "groupName": "root",
  1222. "gid": 0,
  1223. "uid": 0,
  1224. "description": "Syncthing runs as root user."
  1225. }
  1226. ],
  1227. "capabilities": [
  1228. {
  1229. "name": "CHOWN",
  1230. "description": "Syncthing is able to chown files."
  1231. },
  1232. {
  1233. "name": "FOWNER",
  1234. "description": "Syncthing is able to bypass permission checks for it's sub-processes."
  1235. },
  1236. {
  1237. "name": "SYS_CHROOT",
  1238. "description": "Syncthing is able to use chroot."
  1239. },
  1240. {
  1241. "name": "MKNOD",
  1242. "description": "Syncthing is able to create device nodes."
  1243. },
  1244. {
  1245. "name": "DAC_OVERRIDE",
  1246. "description": "Syncthing is able to bypass permission checks."
  1247. },
  1248. {
  1249. "name": "FSETID",
  1250. "description": "Syncthing is able to set file capabilities."
  1251. },
  1252. {
  1253. "name": "KILL",
  1254. "description": "Syncthing is able to kill processes."
  1255. },
  1256. {
  1257. "name": "SETGID",
  1258. "description": "Syncthing is able to set group ID for it's sub-processes."
  1259. },
  1260. {
  1261. "name": "SETUID",
  1262. "description": "Syncthing is able to set user ID for it's sub-processes."
  1263. },
  1264. {
  1265. "name": "SETPCAP",
  1266. "description": "Syncthing is able to set process capabilities."
  1267. },
  1268. {
  1269. "name": "NET_BIND_SERVICE",
  1270. "description": "Syncthing is able to bind to privileged ports."
  1271. },
  1272. {
  1273. "name": "SETFCAP",
  1274. "description": "Syncthing is able to set file capabilities."
  1275. },
  1276. {
  1277. "name": "NET_RAW",
  1278. "description": "Syncthing is able to use raw sockets."
  1279. },
  1280. {
  1281. "name": "AUDIT_WRITE",
  1282. "description": "Syncthing is able to write to audit log."
  1283. }
  1284. ],
  1285. "hostMounts": []
  1286. },
  1287. "schema": {
  1288. "groups": [
  1289. {
  1290. "name": "Configuration",
  1291. "description": "Syncthing application configuration"
  1292. },
  1293. {
  1294. "name": "Storage",
  1295. "description": "Configure storage for syncthing"
  1296. },
  1297. {
  1298. "name": "Networking",
  1299. "description": "Networking Configuration for syncthing"
  1300. },
  1301. {
  1302. "name": "Advanced DNS Settings",
  1303. "description": "Configure DNS settings"
  1304. },
  1305. {
  1306. "name": "Resource Limits",
  1307. "description": "Set CPU/memory limits for Kubernetes Pod"
  1308. }
  1309. ],
  1310. "portals": {
  1311. "web_portal": {
  1312. "protocols": [
  1313. "http"
  1314. ],
  1315. "host": [
  1316. "$node_ip"
  1317. ],
  1318. "ports": [
  1319. "$variable-web_port"
  1320. ],
  1321. "path": "/"
  1322. }
  1323. },
  1324. "questions": [
  1325. {
  1326. "variable": "web_port",
  1327. "label": "Web Port for syncthing",
  1328. "group": "Networking",
  1329. "schema": {
  1330. "type": "int",
  1331. "min": 8000,
  1332. "max": 65535,
  1333. "default": 20910,
  1334. "required": true
  1335. }
  1336. },
  1337. {
  1338. "variable": "tcp_port",
  1339. "label": "TCP Port for syncthing",
  1340. "group": "Networking",
  1341. "schema": {
  1342. "type": "int",
  1343. "min": 8000,
  1344. "max": 65535,
  1345. "default": 20978,
  1346. "required": true
  1347. }
  1348. },
  1349. {
  1350. "variable": "udp_port",
  1351. "label": "UDP Port for syncthing",
  1352. "group": "Networking",
  1353. "schema": {
  1354. "type": "int",
  1355. "min": 8000,
  1356. "max": 65535,
  1357. "default": 20979,
  1358. "required": true
  1359. }
  1360. },
  1361. {
  1362. "variable": "hostNetwork",
  1363. "label": "Host Network",
  1364. "group": "Networking",
  1365. "schema": {
  1366. "type": "boolean",
  1367. "default": false
  1368. }
  1369. },
  1370. {
  1371. "variable": "dnsConfig",
  1372. "label": "DNS Configuration",
  1373. "group": "Advanced DNS Settings",
  1374. "schema": {
  1375. "type": "dict",
  1376. "attrs": [
  1377. {
  1378. "variable": "options",
  1379. "label": "DNS Options",
  1380. "schema": {
  1381. "type": "list",
  1382. "items": [
  1383. {
  1384. "variable": "optionsEntry",
  1385. "label": "Option Entry Configuration",
  1386. "schema": {
  1387. "type": "dict",
  1388. "attrs": [
  1389. {
  1390. "variable": "name",
  1391. "label": "Option Name",
  1392. "schema": {
  1393. "type": "string",
  1394. "required": true
  1395. }
  1396. },
  1397. {
  1398. "variable": "value",
  1399. "label": "Option Value",
  1400. "schema": {
  1401. "type": "string",
  1402. "required": true
  1403. }
  1404. }
  1405. ]
  1406. }
  1407. }
  1408. ]
  1409. }
  1410. }
  1411. ]
  1412. }
  1413. },
  1414. {
  1415. "variable": "ownerUID",
  1416. "label": "Owner User ID",
  1417. "group": "Configuration",
  1418. "schema": {
  1419. "type": "int",
  1420. "default": 568,
  1421. "min": 1,
  1422. "max": 65535
  1423. }
  1424. },
  1425. {
  1426. "variable": "ownerGID",
  1427. "label": "Owner Group ID",
  1428. "group": "Configuration",
  1429. "schema": {
  1430. "type": "int",
  1431. "default": 568,
  1432. "min": 1,
  1433. "max": 65535
  1434. }
  1435. },
  1436. {
  1437. "variable": "environmentVariables",
  1438. "label": "Syncthing environment",
  1439. "group": "Configuration",
  1440. "schema": {
  1441. "type": "list",
  1442. "default": [],
  1443. "items": [
  1444. {
  1445. "variable": "environmentVariable",
  1446. "label": "Environment Variable",
  1447. "schema": {
  1448. "type": "dict",
  1449. "attrs": [
  1450. {
  1451. "variable": "name",
  1452. "label": "Name",
  1453. "schema": {
  1454. "type": "string"
  1455. }
  1456. },
  1457. {
  1458. "variable": "value",
  1459. "label": "Value",
  1460. "schema": {
  1461. "type": "string"
  1462. }
  1463. }
  1464. ]
  1465. }
  1466. }
  1467. ]
  1468. }
  1469. },
  1470. {
  1471. "variable": "appVolumeMounts",
  1472. "label": "Syncthing Storage",
  1473. "group": "Storage",
  1474. "schema": {
  1475. "type": "dict",
  1476. "attrs": [
  1477. {
  1478. "variable": "config",
  1479. "label": "Configuration Volume",
  1480. "schema": {
  1481. "type": "dict",
  1482. "attrs": [
  1483. {
  1484. "variable": "datasetName",
  1485. "label": "Configuration Volume Dataset Name",
  1486. "schema": {
  1487. "type": "string",
  1488. "hidden": true,
  1489. "$ref": [
  1490. "normalize/ixVolume"
  1491. ],
  1492. "show_if": [
  1493. [
  1494. "hostPathEnabled",
  1495. "=",
  1496. false
  1497. ]
  1498. ],
  1499. "default": "ix-syncthing_config",
  1500. "editable": false
  1501. }
  1502. },
  1503. {
  1504. "variable": "mountPath",
  1505. "label": "Configuration Mount Path",
  1506. "description": "Path where the volume will be mounted inside the pod",
  1507. "schema": {
  1508. "type": "path",
  1509. "hidden": true,
  1510. "editable": true,
  1511. "default": "/var/syncthing"
  1512. }
  1513. },
  1514. {
  1515. "variable": "hostPathEnabled",
  1516. "label": "Enable Custom Host Path for Syncthing Configuration Volume",
  1517. "schema": {
  1518. "type": "boolean",
  1519. "default": false,
  1520. "show_subquestions_if": true,
  1521. "subquestions": [
  1522. {
  1523. "variable": "hostPath",
  1524. "label": "Host Path for Syncthing Configuration Volume",
  1525. "schema": {
  1526. "type": "hostpath",
  1527. "required": true,
  1528. "$ref": [
  1529. "validations/lockedHostPath"
  1530. ]
  1531. }
  1532. }
  1533. ]
  1534. }
  1535. }
  1536. ]
  1537. }
  1538. }
  1539. ]
  1540. }
  1541. },
  1542. {
  1543. "variable": "extraAppVolumeMounts",
  1544. "label": "Extra Host Path Volumes",
  1545. "group": "Storage",
  1546. "schema": {
  1547. "type": "list",
  1548. "items": [
  1549. {
  1550. "variable": "extraAppVolume",
  1551. "label": "Host Path Volume",
  1552. "description": "Add an extra host path volume for Syncthing application",
  1553. "schema": {
  1554. "type": "dict",
  1555. "attrs": [
  1556. {
  1557. "variable": "mountPath",
  1558. "label": "Mount Path in Pod",
  1559. "description": "Path where the volume will be mounted inside the pod",
  1560. "schema": {
  1561. "type": "path",
  1562. "required": true
  1563. }
  1564. },
  1565. {
  1566. "variable": "hostPath",
  1567. "label": "Host Path",
  1568. "description": "Host path",
  1569. "schema": {
  1570. "type": "hostpath",
  1571. "required": true,
  1572. "$ref": [
  1573. "validations/lockedHostPath"
  1574. ]
  1575. }
  1576. }
  1577. ]
  1578. }
  1579. }
  1580. ]
  1581. }
  1582. },
  1583. {
  1584. "variable": "enableResourceLimits",
  1585. "label": "Enable Pod resource limits",
  1586. "group": "Resource Limits",
  1587. "schema": {
  1588. "type": "boolean",
  1589. "default": false
  1590. }
  1591. },
  1592. {
  1593. "variable": "cpuLimit",
  1594. "label": "CPU Limit",
  1595. "description": "CPU resource limit allow plain integer values with suffix m(milli) e.g 1000m, 100.",
  1596. "group": "Resource Limits",
  1597. "schema": {
  1598. "type": "string",
  1599. "show_if": [
  1600. [
  1601. "enableResourceLimits",
  1602. "=",
  1603. true
  1604. ]
  1605. ],
  1606. "valid_chars": "^\\d+(?:\\.\\d+(?!.*m$)|m?$)",
  1607. "default": "4000m"
  1608. }
  1609. },
  1610. {
  1611. "variable": "memLimit",
  1612. "label": "Memory Limit",
  1613. "group": "Resource Limits",
  1614. "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",
  1615. "schema": {
  1616. "type": "string",
  1617. "show_if": [
  1618. [
  1619. "enableResourceLimits",
  1620. "=",
  1621. true
  1622. ]
  1623. ],
  1624. "valid_chars": "^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$",
  1625. "default": "8Gi"
  1626. }
  1627. }
  1628. ]
  1629. },
  1630. "app_readme": "<h1>Syncthing</h1>\n<p><a href=\"https://syncthing.net/\">syncthing</a> is a continuous file synchronization program. It synchronizes files between two or\nmore computers in real time, safely protected from prying eyes.</p>\n<blockquote>\n<p><strong>WARNING</strong> Do check out https://docs.syncthing.net/users/faq.html#what-things-are-synced to see what is synced.</p>\n</blockquote>",
  1631. "detailed_readme": "<h1>Syncthing</h1>\n<p><a href=\"https://syncthing.net/\">syncthing</a> is a continuous file synchronization program. It synchronizes files between two or\nmore computers in real time, safely protected from prying eyes. Your data is your data alone and you deserve to choose\nwhere it is stored, whether it is shared with some third party, and how it's transmitted over the internet.</p>",
  1632. "changelog": null
  1633. }
  1634. }