app_versions.json 152 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909
  1. {
  2. "1.1.0": {
  3. "healthy": true,
  4. "supported": false,
  5. "healthy_error": null,
  6. "location": "/__w/charts/charts/community/odoo/1.1.0",
  7. "last_update": "2023-11-23 22:47:30",
  8. "required_features": [
  9. "normalize/acl",
  10. "normalize/ixVolume"
  11. ],
  12. "human_version": "16.0_1.1.0",
  13. "version": "1.1.0",
  14. "chart_metadata": {
  15. "name": "odoo",
  16. "description": "Odoo is a suite of web based open source business apps.",
  17. "annotations": {
  18. "title": "Odoo"
  19. },
  20. "type": "application",
  21. "version": "1.1.0",
  22. "apiVersion": "v2",
  23. "appVersion": "16.0",
  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.3"
  37. }
  38. ],
  39. "home": "https://www.odoo.com/",
  40. "icon": "https://media.sys.truenas.net/apps/odoo/icons/icon.png",
  41. "sources": [
  42. "https://hub.docker.com/_/odoo",
  43. "https://github.com/truenas/charts/tree/master/community/odoo",
  44. "https://github.com/odoo/odoo"
  45. ],
  46. "keywords": [
  47. "erp",
  48. "odoo"
  49. ]
  50. },
  51. "app_metadata": {
  52. "runAsContext": [
  53. {
  54. "userName": "odoo",
  55. "groupName": "odoo",
  56. "gid": 101,
  57. "uid": 101,
  58. "description": "Odoo runs as a non-root user"
  59. },
  60. {
  61. "userName": "postgres",
  62. "groupName": "postgres",
  63. "gid": 999,
  64. "uid": 999,
  65. "description": "Postgres runs as a non-root user."
  66. }
  67. ],
  68. "capabilities": [],
  69. "hostMounts": []
  70. },
  71. "schema": {
  72. "groups": [
  73. {
  74. "name": "Odoo Configuration",
  75. "description": "Configure Odoo"
  76. },
  77. {
  78. "name": "Network Configuration",
  79. "description": "Configure Network for Odoo"
  80. },
  81. {
  82. "name": "Storage Configuration",
  83. "description": "Configure Storage for Odoo"
  84. },
  85. {
  86. "name": "Resources Configuration",
  87. "description": "Configure Resources for Odoo"
  88. }
  89. ],
  90. "portals": {
  91. "web_portal": {
  92. "protocols": [
  93. "$kubernetes-resource_configmap_portal_protocol"
  94. ],
  95. "host": [
  96. "$kubernetes-resource_configmap_portal_host"
  97. ],
  98. "ports": [
  99. "$kubernetes-resource_configmap_portal_port"
  100. ],
  101. "path": "$kubernetes-resource_configmap_portal_path"
  102. }
  103. },
  104. "questions": [
  105. {
  106. "variable": "odooConfig",
  107. "label": "",
  108. "group": "Odoo Configuration",
  109. "schema": {
  110. "type": "dict",
  111. "attrs": [
  112. {
  113. "variable": "additionalConf",
  114. "label": "Additional File Configuration Options",
  115. "description": "Configure additional file configuration options for Odoo.</br>\nOptions are appended to the end of the configuration file.</br>\nAfter the predefined configuration options.</br>\n",
  116. "schema": {
  117. "type": "list",
  118. "default": [],
  119. "items": [
  120. {
  121. "variable": "conf",
  122. "label": "Configuration Option",
  123. "schema": {
  124. "type": "dict",
  125. "attrs": [
  126. {
  127. "variable": "key",
  128. "label": "Key",
  129. "schema": {
  130. "type": "string",
  131. "required": true
  132. }
  133. },
  134. {
  135. "variable": "value",
  136. "label": "Value",
  137. "schema": {
  138. "type": "string",
  139. "required": true
  140. }
  141. }
  142. ]
  143. }
  144. }
  145. ]
  146. }
  147. },
  148. {
  149. "variable": "additionalEnvs",
  150. "label": "Additional Environment Variables",
  151. "description": "Configure additional environment variables for Odoo.",
  152. "schema": {
  153. "type": "list",
  154. "default": [],
  155. "items": [
  156. {
  157. "variable": "env",
  158. "label": "Environment Variable",
  159. "schema": {
  160. "type": "dict",
  161. "attrs": [
  162. {
  163. "variable": "name",
  164. "label": "Name",
  165. "schema": {
  166. "type": "string",
  167. "required": true
  168. }
  169. },
  170. {
  171. "variable": "value",
  172. "label": "Value",
  173. "schema": {
  174. "type": "string",
  175. "required": true
  176. }
  177. }
  178. ]
  179. }
  180. }
  181. ]
  182. }
  183. }
  184. ]
  185. }
  186. },
  187. {
  188. "variable": "odooNetwork",
  189. "label": "",
  190. "group": "Network Configuration",
  191. "schema": {
  192. "type": "dict",
  193. "attrs": [
  194. {
  195. "variable": "webPort",
  196. "label": "Web Port",
  197. "description": "The port for the Odoo WebUI.",
  198. "schema": {
  199. "type": "int",
  200. "default": 30062,
  201. "min": 9000,
  202. "max": 65535,
  203. "required": true
  204. }
  205. },
  206. {
  207. "variable": "hostNetwork",
  208. "label": "Host Network",
  209. "description": "Bind to the host network. It's recommended to keep this disabled.\n",
  210. "schema": {
  211. "type": "boolean",
  212. "default": false
  213. }
  214. }
  215. ]
  216. }
  217. },
  218. {
  219. "variable": "odooStorage",
  220. "label": "",
  221. "group": "Storage Configuration",
  222. "schema": {
  223. "type": "dict",
  224. "attrs": [
  225. {
  226. "variable": "data",
  227. "label": "Odoo Data Storage",
  228. "description": "The path to store Odoo data.",
  229. "schema": {
  230. "type": "dict",
  231. "attrs": [
  232. {
  233. "variable": "type",
  234. "label": "Type",
  235. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  236. "schema": {
  237. "type": "string",
  238. "required": true,
  239. "immutable": true,
  240. "default": "ixVolume",
  241. "enum": [
  242. {
  243. "value": "hostPath",
  244. "description": "Host Path (Path that already exists on the system)"
  245. },
  246. {
  247. "value": "ixVolume",
  248. "description": "ixVolume (Dataset created automatically by the system)"
  249. }
  250. ]
  251. }
  252. },
  253. {
  254. "variable": "ixVolumeConfig",
  255. "label": "ixVolume Configuration",
  256. "description": "The configuration for the ixVolume dataset.",
  257. "schema": {
  258. "type": "dict",
  259. "show_if": [
  260. [
  261. "type",
  262. "=",
  263. "ixVolume"
  264. ]
  265. ],
  266. "$ref": [
  267. "normalize/ixVolume"
  268. ],
  269. "attrs": [
  270. {
  271. "variable": "aclEnable",
  272. "label": "Enable ACL",
  273. "description": "Enable ACL for the dataset.",
  274. "schema": {
  275. "type": "boolean",
  276. "default": false
  277. }
  278. },
  279. {
  280. "variable": "datasetName",
  281. "label": "Dataset Name",
  282. "description": "The name of the dataset to use for storage.",
  283. "schema": {
  284. "type": "string",
  285. "required": true,
  286. "immutable": true,
  287. "hidden": true,
  288. "default": "data"
  289. }
  290. },
  291. {
  292. "variable": "aclEntries",
  293. "label": "ACL Configuration",
  294. "schema": {
  295. "type": "dict",
  296. "show_if": [
  297. [
  298. "aclEnable",
  299. "=",
  300. true
  301. ]
  302. ],
  303. "attrs": [
  304. {
  305. "variable": "path",
  306. "label": "Path",
  307. "description": "Path to perform ACL",
  308. "schema": {
  309. "type": "string",
  310. "hidden": true
  311. }
  312. },
  313. {
  314. "variable": "entries",
  315. "label": "ACL Entries",
  316. "description": "ACL Entries",
  317. "schema": {
  318. "type": "list",
  319. "items": [
  320. {
  321. "variable": "aclEntry",
  322. "label": "ACL Entry",
  323. "schema": {
  324. "type": "dict",
  325. "attrs": [
  326. {
  327. "variable": "id_type",
  328. "label": "ID Type",
  329. "schema": {
  330. "type": "string",
  331. "enum": [
  332. {
  333. "value": "USER",
  334. "description": "Entry is for a USER"
  335. },
  336. {
  337. "value": "GROUP",
  338. "description": "Entry is for a GROUP"
  339. }
  340. ],
  341. "default": "USER"
  342. }
  343. },
  344. {
  345. "variable": "id",
  346. "label": "ID",
  347. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  348. "schema": {
  349. "type": "int",
  350. "required": true,
  351. "min": 0
  352. }
  353. },
  354. {
  355. "variable": "access",
  356. "label": "Access",
  357. "schema": {
  358. "type": "string",
  359. "enum": [
  360. {
  361. "value": "READ",
  362. "description": "Read Access"
  363. },
  364. {
  365. "value": "MODIFY",
  366. "description": "Modify Access"
  367. },
  368. {
  369. "value": "FULL_CONTROL",
  370. "description": "FULL_CONTROL Access"
  371. }
  372. ]
  373. }
  374. }
  375. ]
  376. }
  377. }
  378. ]
  379. }
  380. }
  381. ]
  382. }
  383. }
  384. ]
  385. }
  386. },
  387. {
  388. "variable": "hostPathConfig",
  389. "label": "hostPathConfig",
  390. "schema": {
  391. "type": "dict",
  392. "show_if": [
  393. [
  394. "type",
  395. "=",
  396. "hostPath"
  397. ]
  398. ],
  399. "attrs": [
  400. {
  401. "variable": "aclEnable",
  402. "label": "Enable ACL",
  403. "description": "Enable ACL for the dataset.",
  404. "schema": {
  405. "type": "boolean",
  406. "default": false
  407. }
  408. },
  409. {
  410. "variable": "acl",
  411. "label": "ACL Configuration",
  412. "schema": {
  413. "type": "dict",
  414. "show_if": [
  415. [
  416. "aclEnable",
  417. "=",
  418. true
  419. ]
  420. ],
  421. "attrs": [
  422. {
  423. "variable": "path",
  424. "label": "Host Path",
  425. "description": "Host Path to perform ACL",
  426. "schema": {
  427. "type": "hostpath",
  428. "required": true,
  429. "empty": false
  430. }
  431. },
  432. {
  433. "variable": "entries",
  434. "label": "ACL Entries",
  435. "description": "ACL Entries",
  436. "schema": {
  437. "type": "list",
  438. "items": [
  439. {
  440. "variable": "aclEntry",
  441. "label": "ACL Entry",
  442. "schema": {
  443. "type": "dict",
  444. "attrs": [
  445. {
  446. "variable": "id_type",
  447. "label": "ID Type",
  448. "schema": {
  449. "type": "string",
  450. "enum": [
  451. {
  452. "value": "USER",
  453. "description": "Entry is for a USER"
  454. },
  455. {
  456. "value": "GROUP",
  457. "description": "Entry is for a GROUP"
  458. }
  459. ],
  460. "default": "USER"
  461. }
  462. },
  463. {
  464. "variable": "id",
  465. "label": "ID",
  466. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  467. "schema": {
  468. "type": "int",
  469. "required": true,
  470. "min": 0
  471. }
  472. },
  473. {
  474. "variable": "access",
  475. "label": "Access",
  476. "schema": {
  477. "type": "string",
  478. "enum": [
  479. {
  480. "value": "READ",
  481. "description": "Read Access"
  482. },
  483. {
  484. "value": "MODIFY",
  485. "description": "Modify Access"
  486. },
  487. {
  488. "value": "FULL_CONTROL",
  489. "description": "FULL_CONTROL Access"
  490. }
  491. ]
  492. }
  493. }
  494. ]
  495. }
  496. }
  497. ]
  498. }
  499. }
  500. ],
  501. "$ref": [
  502. "normalize/acl"
  503. ]
  504. }
  505. },
  506. {
  507. "variable": "hostPath",
  508. "label": "Host Path",
  509. "description": "The host path to use for storage.",
  510. "schema": {
  511. "type": "hostpath",
  512. "show_if": [
  513. [
  514. "aclEnable",
  515. "=",
  516. false
  517. ]
  518. ],
  519. "immutable": true,
  520. "required": true
  521. }
  522. }
  523. ]
  524. }
  525. }
  526. ]
  527. }
  528. },
  529. {
  530. "variable": "addons",
  531. "label": "Odoo Addons Storage",
  532. "description": "The path to store Odoo addons storage.",
  533. "schema": {
  534. "type": "dict",
  535. "attrs": [
  536. {
  537. "variable": "type",
  538. "label": "Type",
  539. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  540. "schema": {
  541. "type": "string",
  542. "required": true,
  543. "immutable": true,
  544. "default": "ixVolume",
  545. "enum": [
  546. {
  547. "value": "hostPath",
  548. "description": "Host Path (Path that already exists on the system)"
  549. },
  550. {
  551. "value": "ixVolume",
  552. "description": "ixVolume (Dataset created automatically by the system)"
  553. }
  554. ]
  555. }
  556. },
  557. {
  558. "variable": "ixVolumeConfig",
  559. "label": "ixVolume Configuration",
  560. "description": "The configuration for the ixVolume dataset.",
  561. "schema": {
  562. "type": "dict",
  563. "show_if": [
  564. [
  565. "type",
  566. "=",
  567. "ixVolume"
  568. ]
  569. ],
  570. "$ref": [
  571. "normalize/ixVolume"
  572. ],
  573. "attrs": [
  574. {
  575. "variable": "aclEnable",
  576. "label": "Enable ACL",
  577. "description": "Enable ACL for the dataset.",
  578. "schema": {
  579. "type": "boolean",
  580. "default": false
  581. }
  582. },
  583. {
  584. "variable": "datasetName",
  585. "label": "Dataset Name",
  586. "description": "The name of the dataset to use for storage.",
  587. "schema": {
  588. "type": "string",
  589. "required": true,
  590. "immutable": true,
  591. "hidden": true,
  592. "default": "addons"
  593. }
  594. },
  595. {
  596. "variable": "aclEntries",
  597. "label": "ACL Configuration",
  598. "schema": {
  599. "type": "dict",
  600. "show_if": [
  601. [
  602. "aclEnable",
  603. "=",
  604. true
  605. ]
  606. ],
  607. "attrs": [
  608. {
  609. "variable": "path",
  610. "label": "Path",
  611. "description": "Path to perform ACL",
  612. "schema": {
  613. "type": "string",
  614. "hidden": true
  615. }
  616. },
  617. {
  618. "variable": "entries",
  619. "label": "ACL Entries",
  620. "description": "ACL Entries",
  621. "schema": {
  622. "type": "list",
  623. "items": [
  624. {
  625. "variable": "aclEntry",
  626. "label": "ACL Entry",
  627. "schema": {
  628. "type": "dict",
  629. "attrs": [
  630. {
  631. "variable": "id_type",
  632. "label": "ID Type",
  633. "schema": {
  634. "type": "string",
  635. "enum": [
  636. {
  637. "value": "USER",
  638. "description": "Entry is for a USER"
  639. },
  640. {
  641. "value": "GROUP",
  642. "description": "Entry is for a GROUP"
  643. }
  644. ],
  645. "default": "USER"
  646. }
  647. },
  648. {
  649. "variable": "id",
  650. "label": "ID",
  651. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  652. "schema": {
  653. "type": "int",
  654. "required": true,
  655. "min": 0
  656. }
  657. },
  658. {
  659. "variable": "access",
  660. "label": "Access",
  661. "schema": {
  662. "type": "string",
  663. "enum": [
  664. {
  665. "value": "READ",
  666. "description": "Read Access"
  667. },
  668. {
  669. "value": "MODIFY",
  670. "description": "Modify Access"
  671. },
  672. {
  673. "value": "FULL_CONTROL",
  674. "description": "FULL_CONTROL Access"
  675. }
  676. ]
  677. }
  678. }
  679. ]
  680. }
  681. }
  682. ]
  683. }
  684. }
  685. ]
  686. }
  687. }
  688. ]
  689. }
  690. },
  691. {
  692. "variable": "hostPathConfig",
  693. "label": "hostPathConfig",
  694. "schema": {
  695. "type": "dict",
  696. "show_if": [
  697. [
  698. "type",
  699. "=",
  700. "hostPath"
  701. ]
  702. ],
  703. "attrs": [
  704. {
  705. "variable": "aclEnable",
  706. "label": "Enable ACL",
  707. "description": "Enable ACL for the dataset.",
  708. "schema": {
  709. "type": "boolean",
  710. "default": false
  711. }
  712. },
  713. {
  714. "variable": "acl",
  715. "label": "ACL Configuration",
  716. "schema": {
  717. "type": "dict",
  718. "show_if": [
  719. [
  720. "aclEnable",
  721. "=",
  722. true
  723. ]
  724. ],
  725. "attrs": [
  726. {
  727. "variable": "path",
  728. "label": "Host Path",
  729. "description": "Host Path to perform ACL",
  730. "schema": {
  731. "type": "hostpath",
  732. "required": true,
  733. "empty": false
  734. }
  735. },
  736. {
  737. "variable": "entries",
  738. "label": "ACL Entries",
  739. "description": "ACL Entries",
  740. "schema": {
  741. "type": "list",
  742. "items": [
  743. {
  744. "variable": "aclEntry",
  745. "label": "ACL Entry",
  746. "schema": {
  747. "type": "dict",
  748. "attrs": [
  749. {
  750. "variable": "id_type",
  751. "label": "ID Type",
  752. "schema": {
  753. "type": "string",
  754. "enum": [
  755. {
  756. "value": "USER",
  757. "description": "Entry is for a USER"
  758. },
  759. {
  760. "value": "GROUP",
  761. "description": "Entry is for a GROUP"
  762. }
  763. ],
  764. "default": "USER"
  765. }
  766. },
  767. {
  768. "variable": "id",
  769. "label": "ID",
  770. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  771. "schema": {
  772. "type": "int",
  773. "required": true,
  774. "min": 0
  775. }
  776. },
  777. {
  778. "variable": "access",
  779. "label": "Access",
  780. "schema": {
  781. "type": "string",
  782. "enum": [
  783. {
  784. "value": "READ",
  785. "description": "Read Access"
  786. },
  787. {
  788. "value": "MODIFY",
  789. "description": "Modify Access"
  790. },
  791. {
  792. "value": "FULL_CONTROL",
  793. "description": "FULL_CONTROL Access"
  794. }
  795. ]
  796. }
  797. }
  798. ]
  799. }
  800. }
  801. ]
  802. }
  803. }
  804. ],
  805. "$ref": [
  806. "normalize/acl"
  807. ]
  808. }
  809. },
  810. {
  811. "variable": "hostPath",
  812. "label": "Host Path",
  813. "description": "The host path to use for storage.",
  814. "schema": {
  815. "type": "hostpath",
  816. "show_if": [
  817. [
  818. "aclEnable",
  819. "=",
  820. false
  821. ]
  822. ],
  823. "immutable": true,
  824. "required": true
  825. }
  826. }
  827. ]
  828. }
  829. }
  830. ]
  831. }
  832. },
  833. {
  834. "variable": "pgData",
  835. "label": "Odoo Postgres Data Storage",
  836. "description": "The path to store Odoo Postgres Data.",
  837. "schema": {
  838. "type": "dict",
  839. "attrs": [
  840. {
  841. "variable": "type",
  842. "label": "Type",
  843. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  844. "schema": {
  845. "type": "string",
  846. "required": true,
  847. "immutable": true,
  848. "default": "ixVolume",
  849. "enum": [
  850. {
  851. "value": "hostPath",
  852. "description": "Host Path (Path that already exists on the system)"
  853. },
  854. {
  855. "value": "ixVolume",
  856. "description": "ixVolume (Dataset created automatically by the system)"
  857. }
  858. ]
  859. }
  860. },
  861. {
  862. "variable": "ixVolumeConfig",
  863. "label": "ixVolume Configuration",
  864. "description": "The configuration for the ixVolume dataset.",
  865. "schema": {
  866. "type": "dict",
  867. "hidden": true,
  868. "show_if": [
  869. [
  870. "type",
  871. "=",
  872. "ixVolume"
  873. ]
  874. ],
  875. "$ref": [
  876. "normalize/ixVolume"
  877. ],
  878. "attrs": [
  879. {
  880. "variable": "aclEnable",
  881. "label": "Enable ACL",
  882. "description": "Enable ACL for the dataset.",
  883. "schema": {
  884. "type": "boolean",
  885. "hidden": true,
  886. "default": false
  887. }
  888. },
  889. {
  890. "variable": "datasetName",
  891. "label": "Dataset Name",
  892. "description": "The name of the dataset to use for storage.",
  893. "schema": {
  894. "type": "string",
  895. "required": true,
  896. "immutable": true,
  897. "hidden": true,
  898. "default": "pgData"
  899. }
  900. },
  901. {
  902. "variable": "aclEntries",
  903. "label": "ACL Configuration",
  904. "schema": {
  905. "type": "dict",
  906. "show_if": [
  907. [
  908. "aclEnable",
  909. "=",
  910. true
  911. ]
  912. ],
  913. "attrs": [
  914. {
  915. "variable": "path",
  916. "label": "Path",
  917. "description": "Path to perform ACL",
  918. "schema": {
  919. "type": "string",
  920. "hidden": true
  921. }
  922. },
  923. {
  924. "variable": "entries",
  925. "label": "ACL Entries",
  926. "description": "ACL Entries",
  927. "schema": {
  928. "type": "list",
  929. "items": [
  930. {
  931. "variable": "aclEntry",
  932. "label": "ACL Entry",
  933. "schema": {
  934. "type": "dict",
  935. "attrs": [
  936. {
  937. "variable": "id_type",
  938. "label": "ID Type",
  939. "schema": {
  940. "type": "string",
  941. "enum": [
  942. {
  943. "value": "USER",
  944. "description": "Entry is for a USER"
  945. },
  946. {
  947. "value": "GROUP",
  948. "description": "Entry is for a GROUP"
  949. }
  950. ],
  951. "default": "USER"
  952. }
  953. },
  954. {
  955. "variable": "id",
  956. "label": "ID",
  957. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  958. "schema": {
  959. "type": "int",
  960. "required": true,
  961. "min": 0
  962. }
  963. },
  964. {
  965. "variable": "access",
  966. "label": "Access",
  967. "schema": {
  968. "type": "string",
  969. "enum": [
  970. {
  971. "value": "READ",
  972. "description": "Read Access"
  973. },
  974. {
  975. "value": "MODIFY",
  976. "description": "Modify Access"
  977. },
  978. {
  979. "value": "FULL_CONTROL",
  980. "description": "FULL_CONTROL Access"
  981. }
  982. ]
  983. }
  984. }
  985. ]
  986. }
  987. }
  988. ]
  989. }
  990. }
  991. ]
  992. }
  993. }
  994. ]
  995. }
  996. },
  997. {
  998. "variable": "hostPathConfig",
  999. "label": "hostPathConfig",
  1000. "schema": {
  1001. "type": "dict",
  1002. "show_if": [
  1003. [
  1004. "type",
  1005. "=",
  1006. "hostPath"
  1007. ]
  1008. ],
  1009. "attrs": [
  1010. {
  1011. "variable": "aclEnable",
  1012. "label": "Enable ACL",
  1013. "description": "Enable ACL for the dataset.",
  1014. "schema": {
  1015. "type": "boolean",
  1016. "hidden": true,
  1017. "default": false
  1018. }
  1019. },
  1020. {
  1021. "variable": "acl",
  1022. "label": "ACL Configuration",
  1023. "schema": {
  1024. "type": "dict",
  1025. "show_if": [
  1026. [
  1027. "aclEnable",
  1028. "=",
  1029. true
  1030. ]
  1031. ],
  1032. "attrs": [
  1033. {
  1034. "variable": "path",
  1035. "label": "Host Path",
  1036. "description": "Host Path to perform ACL",
  1037. "schema": {
  1038. "type": "hostpath",
  1039. "required": true,
  1040. "empty": false
  1041. }
  1042. },
  1043. {
  1044. "variable": "entries",
  1045. "label": "ACL Entries",
  1046. "description": "ACL Entries",
  1047. "schema": {
  1048. "type": "list",
  1049. "items": [
  1050. {
  1051. "variable": "aclEntry",
  1052. "label": "ACL Entry",
  1053. "schema": {
  1054. "type": "dict",
  1055. "attrs": [
  1056. {
  1057. "variable": "id_type",
  1058. "label": "ID Type",
  1059. "schema": {
  1060. "type": "string",
  1061. "enum": [
  1062. {
  1063. "value": "USER",
  1064. "description": "Entry is for a USER"
  1065. },
  1066. {
  1067. "value": "GROUP",
  1068. "description": "Entry is for a GROUP"
  1069. }
  1070. ],
  1071. "default": "USER"
  1072. }
  1073. },
  1074. {
  1075. "variable": "id",
  1076. "label": "ID",
  1077. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  1078. "schema": {
  1079. "type": "int",
  1080. "required": true,
  1081. "min": 0
  1082. }
  1083. },
  1084. {
  1085. "variable": "access",
  1086. "label": "Access",
  1087. "schema": {
  1088. "type": "string",
  1089. "enum": [
  1090. {
  1091. "value": "READ",
  1092. "description": "Read Access"
  1093. },
  1094. {
  1095. "value": "MODIFY",
  1096. "description": "Modify Access"
  1097. },
  1098. {
  1099. "value": "FULL_CONTROL",
  1100. "description": "FULL_CONTROL Access"
  1101. }
  1102. ]
  1103. }
  1104. }
  1105. ]
  1106. }
  1107. }
  1108. ]
  1109. }
  1110. }
  1111. ],
  1112. "$ref": [
  1113. "normalize/acl"
  1114. ]
  1115. }
  1116. },
  1117. {
  1118. "variable": "hostPath",
  1119. "label": "Host Path",
  1120. "description": "The host path to use for storage.",
  1121. "schema": {
  1122. "type": "hostpath",
  1123. "show_if": [
  1124. [
  1125. "aclEnable",
  1126. "=",
  1127. false
  1128. ]
  1129. ],
  1130. "immutable": true,
  1131. "required": true
  1132. }
  1133. }
  1134. ]
  1135. }
  1136. }
  1137. ]
  1138. }
  1139. },
  1140. {
  1141. "variable": "pgBackup",
  1142. "label": "Odoo Postgres Backup Storage",
  1143. "description": "The path to store Odoo Postgres Backup.",
  1144. "schema": {
  1145. "type": "dict",
  1146. "attrs": [
  1147. {
  1148. "variable": "type",
  1149. "label": "Type",
  1150. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  1151. "schema": {
  1152. "type": "string",
  1153. "required": true,
  1154. "immutable": true,
  1155. "default": "ixVolume",
  1156. "enum": [
  1157. {
  1158. "value": "hostPath",
  1159. "description": "Host Path (Path that already exists on the system)"
  1160. },
  1161. {
  1162. "value": "ixVolume",
  1163. "description": "ixVolume (Dataset created automatically by the system)"
  1164. }
  1165. ]
  1166. }
  1167. },
  1168. {
  1169. "variable": "ixVolumeConfig",
  1170. "label": "ixVolume Configuration",
  1171. "description": "The configuration for the ixVolume dataset.",
  1172. "schema": {
  1173. "type": "dict",
  1174. "hidden": true,
  1175. "show_if": [
  1176. [
  1177. "type",
  1178. "=",
  1179. "ixVolume"
  1180. ]
  1181. ],
  1182. "$ref": [
  1183. "normalize/ixVolume"
  1184. ],
  1185. "attrs": [
  1186. {
  1187. "variable": "aclEnable",
  1188. "label": "Enable ACL",
  1189. "description": "Enable ACL for the dataset.",
  1190. "schema": {
  1191. "type": "boolean",
  1192. "hidden": true,
  1193. "default": false
  1194. }
  1195. },
  1196. {
  1197. "variable": "datasetName",
  1198. "label": "Dataset Name",
  1199. "description": "The name of the dataset to use for storage.",
  1200. "schema": {
  1201. "type": "string",
  1202. "required": true,
  1203. "immutable": true,
  1204. "hidden": true,
  1205. "default": "pgBackup"
  1206. }
  1207. },
  1208. {
  1209. "variable": "aclEntries",
  1210. "label": "ACL Configuration",
  1211. "schema": {
  1212. "type": "dict",
  1213. "show_if": [
  1214. [
  1215. "aclEnable",
  1216. "=",
  1217. true
  1218. ]
  1219. ],
  1220. "attrs": [
  1221. {
  1222. "variable": "path",
  1223. "label": "Path",
  1224. "description": "Path to perform ACL",
  1225. "schema": {
  1226. "type": "string",
  1227. "hidden": true
  1228. }
  1229. },
  1230. {
  1231. "variable": "entries",
  1232. "label": "ACL Entries",
  1233. "description": "ACL Entries",
  1234. "schema": {
  1235. "type": "list",
  1236. "items": [
  1237. {
  1238. "variable": "aclEntry",
  1239. "label": "ACL Entry",
  1240. "schema": {
  1241. "type": "dict",
  1242. "attrs": [
  1243. {
  1244. "variable": "id_type",
  1245. "label": "ID Type",
  1246. "schema": {
  1247. "type": "string",
  1248. "enum": [
  1249. {
  1250. "value": "USER",
  1251. "description": "Entry is for a USER"
  1252. },
  1253. {
  1254. "value": "GROUP",
  1255. "description": "Entry is for a GROUP"
  1256. }
  1257. ],
  1258. "default": "USER"
  1259. }
  1260. },
  1261. {
  1262. "variable": "id",
  1263. "label": "ID",
  1264. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  1265. "schema": {
  1266. "type": "int",
  1267. "required": true,
  1268. "min": 0
  1269. }
  1270. },
  1271. {
  1272. "variable": "access",
  1273. "label": "Access",
  1274. "schema": {
  1275. "type": "string",
  1276. "enum": [
  1277. {
  1278. "value": "READ",
  1279. "description": "Read Access"
  1280. },
  1281. {
  1282. "value": "MODIFY",
  1283. "description": "Modify Access"
  1284. },
  1285. {
  1286. "value": "FULL_CONTROL",
  1287. "description": "FULL_CONTROL Access"
  1288. }
  1289. ]
  1290. }
  1291. }
  1292. ]
  1293. }
  1294. }
  1295. ]
  1296. }
  1297. }
  1298. ]
  1299. }
  1300. }
  1301. ]
  1302. }
  1303. },
  1304. {
  1305. "variable": "hostPathConfig",
  1306. "label": "hostPathConfig",
  1307. "schema": {
  1308. "type": "dict",
  1309. "show_if": [
  1310. [
  1311. "type",
  1312. "=",
  1313. "hostPath"
  1314. ]
  1315. ],
  1316. "attrs": [
  1317. {
  1318. "variable": "aclEnable",
  1319. "label": "Enable ACL",
  1320. "description": "Enable ACL for the dataset.",
  1321. "schema": {
  1322. "type": "boolean",
  1323. "hidden": true,
  1324. "default": false
  1325. }
  1326. },
  1327. {
  1328. "variable": "acl",
  1329. "label": "ACL Configuration",
  1330. "schema": {
  1331. "type": "dict",
  1332. "show_if": [
  1333. [
  1334. "aclEnable",
  1335. "=",
  1336. true
  1337. ]
  1338. ],
  1339. "attrs": [
  1340. {
  1341. "variable": "path",
  1342. "label": "Host Path",
  1343. "description": "Host Path to perform ACL",
  1344. "schema": {
  1345. "type": "hostpath",
  1346. "required": true,
  1347. "empty": false
  1348. }
  1349. },
  1350. {
  1351. "variable": "entries",
  1352. "label": "ACL Entries",
  1353. "description": "ACL Entries",
  1354. "schema": {
  1355. "type": "list",
  1356. "items": [
  1357. {
  1358. "variable": "aclEntry",
  1359. "label": "ACL Entry",
  1360. "schema": {
  1361. "type": "dict",
  1362. "attrs": [
  1363. {
  1364. "variable": "id_type",
  1365. "label": "ID Type",
  1366. "schema": {
  1367. "type": "string",
  1368. "enum": [
  1369. {
  1370. "value": "USER",
  1371. "description": "Entry is for a USER"
  1372. },
  1373. {
  1374. "value": "GROUP",
  1375. "description": "Entry is for a GROUP"
  1376. }
  1377. ],
  1378. "default": "USER"
  1379. }
  1380. },
  1381. {
  1382. "variable": "id",
  1383. "label": "ID",
  1384. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  1385. "schema": {
  1386. "type": "int",
  1387. "required": true,
  1388. "min": 0
  1389. }
  1390. },
  1391. {
  1392. "variable": "access",
  1393. "label": "Access",
  1394. "schema": {
  1395. "type": "string",
  1396. "enum": [
  1397. {
  1398. "value": "READ",
  1399. "description": "Read Access"
  1400. },
  1401. {
  1402. "value": "MODIFY",
  1403. "description": "Modify Access"
  1404. },
  1405. {
  1406. "value": "FULL_CONTROL",
  1407. "description": "FULL_CONTROL Access"
  1408. }
  1409. ]
  1410. }
  1411. }
  1412. ]
  1413. }
  1414. }
  1415. ]
  1416. }
  1417. }
  1418. ],
  1419. "$ref": [
  1420. "normalize/acl"
  1421. ]
  1422. }
  1423. },
  1424. {
  1425. "variable": "hostPath",
  1426. "label": "Host Path",
  1427. "description": "The host path to use for storage.",
  1428. "schema": {
  1429. "type": "hostpath",
  1430. "show_if": [
  1431. [
  1432. "aclEnable",
  1433. "=",
  1434. false
  1435. ]
  1436. ],
  1437. "immutable": true,
  1438. "required": true
  1439. }
  1440. }
  1441. ]
  1442. }
  1443. }
  1444. ]
  1445. }
  1446. },
  1447. {
  1448. "variable": "additionalStorages",
  1449. "label": "Additional Storage",
  1450. "description": "Additional storage for Odoo.",
  1451. "schema": {
  1452. "type": "list",
  1453. "default": [],
  1454. "items": [
  1455. {
  1456. "variable": "storageEntry",
  1457. "label": "Storage Entry",
  1458. "schema": {
  1459. "type": "dict",
  1460. "attrs": [
  1461. {
  1462. "variable": "type",
  1463. "label": "Type",
  1464. "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",
  1465. "schema": {
  1466. "type": "string",
  1467. "required": true,
  1468. "default": "ixVolume",
  1469. "immutable": true,
  1470. "enum": [
  1471. {
  1472. "value": "hostPath",
  1473. "description": "Host Path (Path that already exists on the system)"
  1474. },
  1475. {
  1476. "value": "ixVolume",
  1477. "description": "ixVolume (Dataset created automatically by the system)"
  1478. },
  1479. {
  1480. "value": "smb-pv-pvc",
  1481. "description": "SMB Share (Mounts a persistent volume claim to a SMB share)"
  1482. }
  1483. ]
  1484. }
  1485. },
  1486. {
  1487. "variable": "readOnly",
  1488. "label": "Read Only",
  1489. "description": "Mount the volume as read only.",
  1490. "schema": {
  1491. "type": "boolean",
  1492. "default": false
  1493. }
  1494. },
  1495. {
  1496. "variable": "mountPath",
  1497. "label": "Mount Path",
  1498. "description": "The path inside the container to mount the storage.",
  1499. "schema": {
  1500. "type": "path",
  1501. "required": true
  1502. }
  1503. },
  1504. {
  1505. "variable": "hostPathConfig",
  1506. "label": "hostPathConfig",
  1507. "schema": {
  1508. "type": "dict",
  1509. "show_if": [
  1510. [
  1511. "type",
  1512. "=",
  1513. "hostPath"
  1514. ]
  1515. ],
  1516. "attrs": [
  1517. {
  1518. "variable": "aclEnable",
  1519. "label": "Enable ACL",
  1520. "description": "Enable ACL for the dataset.",
  1521. "schema": {
  1522. "type": "boolean",
  1523. "default": false
  1524. }
  1525. },
  1526. {
  1527. "variable": "acl",
  1528. "label": "ACL Configuration",
  1529. "schema": {
  1530. "type": "dict",
  1531. "show_if": [
  1532. [
  1533. "aclEnable",
  1534. "=",
  1535. true
  1536. ]
  1537. ],
  1538. "attrs": [
  1539. {
  1540. "variable": "path",
  1541. "label": "Host Path",
  1542. "description": "Host Path to perform ACL",
  1543. "schema": {
  1544. "type": "hostpath",
  1545. "required": true,
  1546. "empty": false
  1547. }
  1548. },
  1549. {
  1550. "variable": "entries",
  1551. "label": "ACL Entries",
  1552. "description": "ACL Entries",
  1553. "schema": {
  1554. "type": "list",
  1555. "items": [
  1556. {
  1557. "variable": "aclEntry",
  1558. "label": "ACL Entry",
  1559. "schema": {
  1560. "type": "dict",
  1561. "attrs": [
  1562. {
  1563. "variable": "id_type",
  1564. "label": "ID Type",
  1565. "schema": {
  1566. "type": "string",
  1567. "enum": [
  1568. {
  1569. "value": "USER",
  1570. "description": "Entry is for a USER"
  1571. },
  1572. {
  1573. "value": "GROUP",
  1574. "description": "Entry is for a GROUP"
  1575. }
  1576. ],
  1577. "default": "USER"
  1578. }
  1579. },
  1580. {
  1581. "variable": "id",
  1582. "label": "ID",
  1583. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  1584. "schema": {
  1585. "type": "int",
  1586. "required": true,
  1587. "min": 0
  1588. }
  1589. },
  1590. {
  1591. "variable": "access",
  1592. "label": "Access",
  1593. "schema": {
  1594. "type": "string",
  1595. "enum": [
  1596. {
  1597. "value": "READ",
  1598. "description": "Read Access"
  1599. },
  1600. {
  1601. "value": "MODIFY",
  1602. "description": "Modify Access"
  1603. },
  1604. {
  1605. "value": "FULL_CONTROL",
  1606. "description": "FULL_CONTROL Access"
  1607. }
  1608. ]
  1609. }
  1610. }
  1611. ]
  1612. }
  1613. }
  1614. ]
  1615. }
  1616. }
  1617. ],
  1618. "$ref": [
  1619. "normalize/acl"
  1620. ]
  1621. }
  1622. },
  1623. {
  1624. "variable": "hostPath",
  1625. "label": "Host Path",
  1626. "description": "The host path to use for storage.",
  1627. "schema": {
  1628. "type": "hostpath",
  1629. "show_if": [
  1630. [
  1631. "aclEnable",
  1632. "=",
  1633. false
  1634. ]
  1635. ],
  1636. "immutable": true,
  1637. "required": true
  1638. }
  1639. }
  1640. ]
  1641. }
  1642. },
  1643. {
  1644. "variable": "ixVolumeConfig",
  1645. "label": "ixVolume Configuration",
  1646. "description": "The configuration for the ixVolume dataset.",
  1647. "schema": {
  1648. "type": "dict",
  1649. "show_if": [
  1650. [
  1651. "type",
  1652. "=",
  1653. "ixVolume"
  1654. ]
  1655. ],
  1656. "$ref": [
  1657. "normalize/ixVolume"
  1658. ],
  1659. "attrs": [
  1660. {
  1661. "variable": "aclEnable",
  1662. "label": "Enable ACL",
  1663. "description": "Enable ACL for the dataset.",
  1664. "schema": {
  1665. "type": "boolean",
  1666. "default": false
  1667. }
  1668. },
  1669. {
  1670. "variable": "datasetName",
  1671. "label": "Dataset Name",
  1672. "description": "The name of the dataset to use for storage.",
  1673. "schema": {
  1674. "type": "string",
  1675. "required": true,
  1676. "immutable": true,
  1677. "default": "storage_entry"
  1678. }
  1679. },
  1680. {
  1681. "variable": "aclEntries",
  1682. "label": "ACL Configuration",
  1683. "schema": {
  1684. "type": "dict",
  1685. "show_if": [
  1686. [
  1687. "aclEnable",
  1688. "=",
  1689. true
  1690. ]
  1691. ],
  1692. "attrs": [
  1693. {
  1694. "variable": "path",
  1695. "label": "Path",
  1696. "description": "Path to perform ACL",
  1697. "schema": {
  1698. "type": "string",
  1699. "hidden": true
  1700. }
  1701. },
  1702. {
  1703. "variable": "entries",
  1704. "label": "ACL Entries",
  1705. "description": "ACL Entries",
  1706. "schema": {
  1707. "type": "list",
  1708. "items": [
  1709. {
  1710. "variable": "aclEntry",
  1711. "label": "ACL Entry",
  1712. "schema": {
  1713. "type": "dict",
  1714. "attrs": [
  1715. {
  1716. "variable": "id_type",
  1717. "label": "ID Type",
  1718. "schema": {
  1719. "type": "string",
  1720. "enum": [
  1721. {
  1722. "value": "USER",
  1723. "description": "Entry is for a USER"
  1724. },
  1725. {
  1726. "value": "GROUP",
  1727. "description": "Entry is for a GROUP"
  1728. }
  1729. ],
  1730. "default": "USER"
  1731. }
  1732. },
  1733. {
  1734. "variable": "id",
  1735. "label": "ID",
  1736. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  1737. "schema": {
  1738. "type": "int",
  1739. "required": true,
  1740. "min": 0
  1741. }
  1742. },
  1743. {
  1744. "variable": "access",
  1745. "label": "Access",
  1746. "schema": {
  1747. "type": "string",
  1748. "enum": [
  1749. {
  1750. "value": "READ",
  1751. "description": "Read Access"
  1752. },
  1753. {
  1754. "value": "MODIFY",
  1755. "description": "Modify Access"
  1756. },
  1757. {
  1758. "value": "FULL_CONTROL",
  1759. "description": "FULL_CONTROL Access"
  1760. }
  1761. ]
  1762. }
  1763. }
  1764. ]
  1765. }
  1766. }
  1767. ]
  1768. }
  1769. }
  1770. ]
  1771. }
  1772. }
  1773. ]
  1774. }
  1775. },
  1776. {
  1777. "variable": "smbConfig",
  1778. "label": "SMB Share Configuration",
  1779. "description": "The configuration for the SMB Share.",
  1780. "schema": {
  1781. "type": "dict",
  1782. "show_if": [
  1783. [
  1784. "type",
  1785. "=",
  1786. "smb-pv-pvc"
  1787. ]
  1788. ],
  1789. "attrs": [
  1790. {
  1791. "variable": "server",
  1792. "label": "Server",
  1793. "description": "The server for the SMB share.",
  1794. "schema": {
  1795. "type": "string",
  1796. "required": true
  1797. }
  1798. },
  1799. {
  1800. "variable": "share",
  1801. "label": "Share",
  1802. "description": "The share name for the SMB share.",
  1803. "schema": {
  1804. "type": "string",
  1805. "required": true
  1806. }
  1807. },
  1808. {
  1809. "variable": "domain",
  1810. "label": "Domain (Optional)",
  1811. "description": "The domain for the SMB share.",
  1812. "schema": {
  1813. "type": "string"
  1814. }
  1815. },
  1816. {
  1817. "variable": "username",
  1818. "label": "Username",
  1819. "description": "The username for the SMB share.",
  1820. "schema": {
  1821. "type": "string",
  1822. "required": true
  1823. }
  1824. },
  1825. {
  1826. "variable": "password",
  1827. "label": "Password",
  1828. "description": "The password for the SMB share.",
  1829. "schema": {
  1830. "type": "string",
  1831. "required": true,
  1832. "private": true
  1833. }
  1834. },
  1835. {
  1836. "variable": "size",
  1837. "label": "Size (in Gi)",
  1838. "description": "The size of the volume quota.",
  1839. "schema": {
  1840. "type": "int",
  1841. "required": true,
  1842. "min": 1,
  1843. "default": 1
  1844. }
  1845. }
  1846. ]
  1847. }
  1848. }
  1849. ]
  1850. }
  1851. }
  1852. ]
  1853. }
  1854. }
  1855. ]
  1856. }
  1857. },
  1858. {
  1859. "variable": "resources",
  1860. "label": "",
  1861. "group": "Resources Configuration",
  1862. "schema": {
  1863. "type": "dict",
  1864. "attrs": [
  1865. {
  1866. "variable": "limits",
  1867. "label": "Limits",
  1868. "schema": {
  1869. "type": "dict",
  1870. "attrs": [
  1871. {
  1872. "variable": "cpu",
  1873. "label": "CPU",
  1874. "description": "CPU limit for Odoo.",
  1875. "schema": {
  1876. "type": "string",
  1877. "max_length": 6,
  1878. "valid_chars": "^(0\\.[1-9]|[1-9][0-9]*)(\\.[0-9]|m?)$",
  1879. "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",
  1880. "default": "4000m",
  1881. "required": true
  1882. }
  1883. },
  1884. {
  1885. "variable": "memory",
  1886. "label": "Memory",
  1887. "description": "Memory limit for Odoo.",
  1888. "schema": {
  1889. "type": "string",
  1890. "max_length": 12,
  1891. "valid_chars": "^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$",
  1892. "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",
  1893. "default": "8Gi",
  1894. "required": true
  1895. }
  1896. }
  1897. ]
  1898. }
  1899. }
  1900. ]
  1901. }
  1902. }
  1903. ]
  1904. },
  1905. "app_readme": "<h1>Odoo</h1>\n<p><a href=\"https://odoo.com\">Odoo</a> is a suite of web based open source business apps.</p>\n<blockquote>\n<p>When application is installed, a container will be launched with <strong>root</strong> privileges.\nThis is required in order to apply the correct permissions to the <code>postgres</code> directories.\nAfterwards <code>postgres</code> will run afterwards as a <strong>non</strong>-root user (<code>999</code>).\nOn each upgrade, a container will be launched with <strong>root</strong> privileges in order to apply the correct\npermissions to the <code>postgres</code> <strong>backups</strong> directory. Container that performs the backup will run as a <strong>non</strong>-root user (<code>999</code>) afterwards.\nKeep in mind the permissions on the backup directory will be changed to <code>999:999</code> on <strong>every</strong> update.\nBut will only be changed once for the <code>postgres</code> data directories.</p>\n</blockquote>",
  1906. "detailed_readme": "<h1>Odoo</h1>\n<p><a href=\"https://odoo.com\">Odoo</a> is a suite of web based open source business apps.</p>\n<blockquote>\n<p>When application is installed, a container will be launched with <strong>root</strong> privileges.\nThis is required in order to apply the correct permissions to the <code>postgres</code> directories.\nAfterwards <code>postgres</code> will run afterwards as a <strong>non</strong>-root user (<code>999</code>).\nOn each upgrade, a container will be launched with <strong>root</strong> privileges in order to apply the correct\npermissions to the <code>postgres</code> <strong>backups</strong> directory. Container that performs the backup will run as a <strong>non</strong>-root user (<code>999</code>) afterwards.\nKeep in mind the permissions on the backup directory will be changed to <code>999:999</code> on <strong>every</strong> update.\nBut will only be changed once for the <code>postgres</code> data directories.</p>\n</blockquote>",
  1907. "changelog": null
  1908. }
  1909. }