questions.yaml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688
  1. groups:
  2. - name: General
  3. description: General Configuration
  4. - name: Image Configuration
  5. description: Configure the image
  6. - name: Container Configuration
  7. description: Configure the container
  8. - name: Security Context Configuration
  9. description: Configure Security Context for the container
  10. - name: Network Configuration
  11. description: Configure Network for the container
  12. - name: Portal Configuration
  13. description: Configure Portals
  14. - name: Storage Configuration
  15. description: Configure Storage for the container
  16. - name: Labels Configuration
  17. description: Configure Labels for the container
  18. - name: Resources Configuration
  19. description: Configure Resources for the container
  20. questions:
  21. - variable: notes
  22. label: Notes
  23. group: General
  24. description: |
  25. Notes about the application, this will be shown in the Notes card. </br>
  26. You can use markdown here. This have no effect on the application.
  27. schema:
  28. type: text
  29. # Image Configuration
  30. - variable: image
  31. label: Image
  32. group: Image Configuration
  33. description: The image to use for the container.
  34. schema:
  35. type: dict
  36. attrs:
  37. - variable: repository
  38. label: Repository
  39. description: The repository of the image.
  40. schema:
  41. type: string
  42. required: true
  43. - variable: tag
  44. label: Tag
  45. description: The tag of the image.
  46. schema:
  47. type: string
  48. default: latest
  49. - variable: pull_policy
  50. label: Pull Policy
  51. description: The pull policy for the image.
  52. schema:
  53. type: string
  54. default: missing
  55. required: true
  56. enum:
  57. - value: missing
  58. description: Pull the image if it is not already present on the host.
  59. - value: always
  60. description: Always pull an image even if it is present on the host.
  61. - value: never
  62. description: Never pull an image even if it is not present on the host.
  63. # Container Configuration
  64. - variable: hostname
  65. label: Hostname
  66. group: Container Configuration
  67. description: The hostname to use for the container.
  68. schema:
  69. type: string
  70. default: ""
  71. - variable: entrypoint
  72. label: Entrypoint
  73. group: Container Configuration
  74. description: |
  75. Entrypoint to use for the container. </br>
  76. Overrides the default ENTRYPOINT of the image.
  77. schema:
  78. type: list
  79. default: []
  80. items:
  81. - variable: entrypoint_item
  82. label: ""
  83. schema:
  84. type: string
  85. required: true
  86. - variable: command
  87. label: Command
  88. group: Container Configuration
  89. description: |
  90. Command to use for the container. </br>
  91. Overrides the default CMD of the image.
  92. schema:
  93. type: list
  94. default: []
  95. items:
  96. - variable: command_item
  97. label: ""
  98. schema:
  99. type: string
  100. required: true
  101. - variable: TZ
  102. label: Timezone
  103. group: Container Configuration
  104. description: Timezone setting for the container.
  105. schema:
  106. type: string
  107. default: "Etc/UTC"
  108. required: true
  109. $ref:
  110. - "definitions/timezone"
  111. - variable: envs
  112. label: Environment Variables
  113. group: Container Configuration
  114. description: Configure environment variables.
  115. schema:
  116. type: list
  117. default: []
  118. items:
  119. - variable: env
  120. label: Environment Variable
  121. schema:
  122. type: dict
  123. attrs:
  124. - variable: name
  125. label: Name
  126. schema:
  127. type: string
  128. required: true
  129. - variable: value
  130. label: Value
  131. schema:
  132. type: string
  133. required: true
  134. - variable: restart_policy
  135. label: Restart Policy
  136. group: Container Configuration
  137. description: The restart policy to use for the container.
  138. schema:
  139. type: string
  140. default: "no"
  141. required: true
  142. enum:
  143. - value: "no"
  144. description: No - Does not restart the container under any circumstances.
  145. - value: unless-stopped
  146. description: Unless Stopped - Restarts the container irrespective of the exit code but stops restarting when the service is stopped or removed.
  147. - value: on-failure
  148. description: On Failure - Restarts the container if the exit code indicates an error.
  149. - value: always
  150. description: Always - Restarts the container until its removal.
  151. - variable: max_retry_count
  152. label: Maximum Retry Count
  153. group: Container Configuration
  154. description: |
  155. Maximum number of retries allowed for a container to exit with a code indicating an error. </br>
  156. Setting this to zero, will keep restarting the container if it exits with a code indicating an error.
  157. schema:
  158. type: int
  159. required: true
  160. default: 0
  161. show_if: [["restart_policy", "=", "on-failure"]]
  162. - variable: disable_builtin_healthcheck
  163. label: Disable Builtin Healthcheck
  164. group: Container Configuration
  165. description: |
  166. Disable the built-in HEALTHCHECK defined in the image.
  167. schema:
  168. type: boolean
  169. default: false
  170. - variable: tty
  171. label: TTY
  172. group: Container Configuration
  173. description: |
  174. Allocate a pseudo-TTY.</br>
  175. Note, that due to a bug in the underlying library</br>
  176. using this option will cause the logs to not display properly</br>
  177. on the TrueNAS WebUI.</br>
  178. You can still view logs using 'docker logs ...'.</br>
  179. Bug: https://github.com/docker/docker-py/issues/1394
  180. schema:
  181. type: boolean
  182. default: false
  183. - variable: stdin
  184. label: Stdin
  185. group: Container Configuration
  186. description: Keep stdin open on the container.
  187. schema:
  188. type: boolean
  189. default: false
  190. - variable: devices
  191. label: Devices
  192. group: Container Configuration
  193. description: |
  194. Devices to use for the container. </br>
  195. Eg: Host Device: /dev/ttyUSB0, Container Device: /dev/ttyACM0
  196. schema:
  197. type: list
  198. default: []
  199. items:
  200. - variable: device
  201. label: Device
  202. schema:
  203. type: dict
  204. attrs:
  205. - variable: host_device
  206. label: Host Device
  207. schema:
  208. type: string
  209. required: true
  210. - variable: container_device
  211. label: Container Device
  212. schema:
  213. type: string
  214. required: true
  215. # Security Context Configuration
  216. - variable: privileged
  217. label: Privileged
  218. group: Security Context Configuration
  219. description: Run the container in privileged mode.
  220. schema:
  221. type: boolean
  222. default: false
  223. - variable: capabilities
  224. label: Capabilities
  225. group: Security Context Configuration
  226. description: Add Linux capabilities to the container.
  227. schema:
  228. type: dict
  229. attrs:
  230. - variable: add
  231. label: Add
  232. schema:
  233. type: list
  234. items:
  235. - variable: capability
  236. label: Capability
  237. schema:
  238. type: string
  239. required: true
  240. - variable: run_as_custom_user
  241. label: Custom User
  242. group: Security Context Configuration
  243. description: Run the container as a custom user.
  244. schema:
  245. type: boolean
  246. default: false
  247. - variable: run_as
  248. label: ""
  249. group: Security Context Configuration
  250. schema:
  251. type: dict
  252. show_if: [["run_as_custom_user", "=", true]]
  253. attrs:
  254. - variable: user
  255. label: User ID
  256. description: The user id that container will run as.
  257. schema:
  258. type: int
  259. default: 568
  260. required: true
  261. - variable: group
  262. label: Group ID
  263. description: The group id that container will run as.
  264. schema:
  265. type: int
  266. default: 568
  267. required: true
  268. # Network Configuration
  269. - variable: host_network
  270. label: Host Network
  271. group: Network Configuration
  272. description: Bind to the host network.
  273. schema:
  274. type: boolean
  275. default: false
  276. - variable: ports
  277. label: Ports
  278. group: Network Configuration
  279. description: Configure ports for the container.
  280. schema:
  281. type: list
  282. show_if: [["host_network", "=", false]]
  283. default: []
  284. items:
  285. - variable: port
  286. label: Port
  287. schema:
  288. type: dict
  289. attrs:
  290. - variable: bind_mode
  291. label: Port Bind Mode
  292. description: |
  293. The port bind mode.</br>
  294. - Publish: The port will be published on the host for external access.</br>
  295. - Expose: The port will be exposed for inter-container communication.</br>
  296. schema:
  297. type: string
  298. default: "published"
  299. enum:
  300. - value: "published"
  301. description: Publish port on the host for external access
  302. - value: "exposed"
  303. description: Expose port for inter-container communication
  304. - variable: port_number
  305. label: Host Port
  306. schema:
  307. type: int
  308. min: 1
  309. max: 65535
  310. required: true
  311. - variable: container_port
  312. label: Container Port
  313. schema:
  314. type: int
  315. min: 1
  316. max: 65535
  317. required: true
  318. - variable: protocol
  319. label: Protocol
  320. schema:
  321. type: string
  322. required: true
  323. default: "tcp"
  324. enum:
  325. - value: "tcp"
  326. description: TCP
  327. - value: "udp"
  328. description: UDP
  329. - variable: host_ips
  330. label: Host IPs
  331. description: IPs on the host to bind this port
  332. schema:
  333. type: list
  334. show_if: [["bind_mode", "=", "published"]]
  335. default: []
  336. items:
  337. - variable: host_ip
  338. label: Host IP
  339. schema:
  340. type: string
  341. required: true
  342. $ref:
  343. - definitions/node_bind_ip
  344. - variable: dns_config
  345. label: Custom DNS Setup
  346. group: Network Configuration
  347. description: |
  348. Configure custom DNS settings for the container.
  349. schema:
  350. type: dict
  351. attrs:
  352. - variable: nameservers
  353. label: Nameservers
  354. description: The DNS nameservers to use.
  355. schema:
  356. type: list
  357. items:
  358. - variable: nameserver
  359. label: Nameserver
  360. schema:
  361. type: string
  362. required: true
  363. - variable: searches
  364. label: Search Domains
  365. description: The DNS search domains to use.
  366. schema:
  367. type: list
  368. items:
  369. - variable: search
  370. label: Search Domain
  371. schema:
  372. type: string
  373. required: true
  374. - variable: options
  375. label: DNS Options
  376. description: The DNS options to use.
  377. schema:
  378. type: list
  379. items:
  380. - variable: option
  381. label: Option
  382. schema:
  383. type: string
  384. required: true
  385. # Portal Configuration
  386. - variable: portals
  387. label: ""
  388. group: Portal Configuration
  389. schema:
  390. type: list
  391. items:
  392. - variable: portal
  393. label: Portal
  394. schema:
  395. type: dict
  396. attrs:
  397. - variable: name
  398. label: Name
  399. description: The name of the portal
  400. schema:
  401. type: string
  402. default: "Web UI"
  403. required: true
  404. - variable: scheme
  405. label: Protocol
  406. description: The protocol for the portal
  407. schema:
  408. type: string
  409. default: "http"
  410. required: true
  411. enum:
  412. - value: "http"
  413. description: HTTP
  414. - value: "https"
  415. description: HTTPS
  416. - variable: use_node_ip
  417. label: Use Node IP
  418. # This will set host as 0.0.0.0 if true.
  419. description: Use the node IP for the portal
  420. schema:
  421. type: boolean
  422. default: true
  423. required: true
  424. - variable: host
  425. label: Host
  426. description: The host for the portal
  427. schema:
  428. type: string
  429. default: ""
  430. show_if: [["use_node_ip", "=", false]]
  431. required: true
  432. - variable: port
  433. label: Port
  434. description: The port for the portal
  435. schema:
  436. type: int
  437. default: 15000
  438. required: true
  439. - variable: path
  440. label: Path
  441. description: The path for the portal
  442. schema:
  443. type: string
  444. default: "/"
  445. required: true
  446. # Storage Configuration
  447. - variable: storage
  448. label: Storage
  449. group: Storage Configuration
  450. description: Storage for the container.
  451. schema:
  452. type: list
  453. default: []
  454. items:
  455. - variable: storageEntry
  456. label: Storage Entry
  457. schema:
  458. type: dict
  459. attrs:
  460. - variable: type
  461. label: Type
  462. description: |
  463. ixVolume: Is dataset created automatically by the system.</br>
  464. Host Path: Is a path that already exists on the system.</br>
  465. SMB Share: Is a SMB share that is mounted to as a volume.</br>
  466. tmpfs: Is a temporary directory that will be created on the RAM.</br>
  467. schema:
  468. type: string
  469. required: true
  470. default: "ix_volume"
  471. enum:
  472. - value: "host_path"
  473. description: Host Path (Path that already exists on the system)
  474. - value: "ix_volume"
  475. description: ixVolume (Dataset created automatically by the system)
  476. - value: "cifs"
  477. description: SMB/CIFS Share (Mounts a volume to a SMB share)
  478. - value: "tmpfs"
  479. description: Tmpfs (Temporary directory created on the RAM)
  480. - variable: read_only
  481. label: Read Only
  482. description: Mount the volume as read only.
  483. schema:
  484. type: boolean
  485. default: false
  486. - variable: mount_path
  487. label: Mount Path
  488. description: The path inside the container to mount the storage.
  489. schema:
  490. type: path
  491. required: true
  492. - variable: host_path_config
  493. label: Host Path Configuration
  494. schema:
  495. type: dict
  496. show_if: [["type", "=", "host_path"]]
  497. attrs:
  498. - variable: acl_enable
  499. label: Enable ACL
  500. description: Enable ACL for the storage.
  501. schema:
  502. type: boolean
  503. default: false
  504. - variable: acl
  505. label: ACL Configuration
  506. schema:
  507. type: dict
  508. show_if: [["acl_enable", "=", true]]
  509. attrs: []
  510. $ref:
  511. - "normalize/acl"
  512. - variable: path
  513. label: Host Path
  514. description: The host path to use for storage.
  515. schema:
  516. type: hostpath
  517. show_if: [["acl_enable", "=", false]]
  518. required: true
  519. - variable: ix_volume_config
  520. label: ixVolume Configuration
  521. description: The configuration for the ixVolume dataset.
  522. schema:
  523. type: dict
  524. show_if: [["type", "=", "ix_volume"]]
  525. $ref:
  526. - "normalize/ix_volume"
  527. attrs:
  528. - variable: acl_enable
  529. label: Enable ACL
  530. description: Enable ACL for the storage.
  531. schema:
  532. type: boolean
  533. default: false
  534. - variable: dataset_name
  535. label: Dataset Name
  536. description: The name of the dataset to use for storage.
  537. schema:
  538. type: string
  539. required: true
  540. default: "storage_entry"
  541. - variable: acl_entries
  542. label: ACL Configuration
  543. schema:
  544. type: dict
  545. show_if: [["acl_enable", "=", true]]
  546. attrs: []
  547. $ref:
  548. - "normalize/acl"
  549. - variable: cifs_config
  550. label: SMB Configuration
  551. description: The configuration for the SMB dataset.
  552. schema:
  553. type: dict
  554. show_if: [["type", "=", "cifs"]]
  555. attrs:
  556. - variable: server
  557. label: Server
  558. description: The server to mount the SMB share.
  559. schema:
  560. type: string
  561. required: true
  562. - variable: path
  563. label: Path
  564. description: The path to mount the SMB share.
  565. schema:
  566. type: string
  567. required: true
  568. - variable: username
  569. label: Username
  570. description: The username to use for the SMB share.
  571. schema:
  572. type: string
  573. required: true
  574. - variable: password
  575. label: Password
  576. description: The password to use for the SMB share.
  577. schema:
  578. type: string
  579. required: true
  580. private: true
  581. - variable: domain
  582. label: Domain
  583. description: The domain to use for the SMB share.
  584. schema:
  585. type: string
  586. - variable: tmpfs_config
  587. label: Tmpfs Configuration
  588. description: The configuration for the tmpfs dataset.
  589. schema:
  590. type: dict
  591. show_if: [["type", "=", "tmpfs"]]
  592. attrs:
  593. - variable: size
  594. label: Tmpfs Size Limit (in Mi)
  595. description: |
  596. The maximum size (in Mi) of the temporary directory.</br>
  597. For example: 500
  598. schema:
  599. type: int
  600. default: 500
  601. required: true
  602. - variable: labels
  603. label: ""
  604. group: Labels Configuration
  605. schema:
  606. type: list
  607. default: []
  608. items:
  609. - variable: label
  610. label: Label
  611. schema:
  612. type: dict
  613. attrs:
  614. - variable: key
  615. label: Key
  616. schema:
  617. type: string
  618. required: true
  619. - variable: value
  620. label: Value
  621. schema:
  622. type: string
  623. required: true
  624. - variable: resources
  625. label: ""
  626. group: Resources Configuration
  627. schema:
  628. type: dict
  629. attrs:
  630. - variable: enable_resource_limits
  631. label: Enable Resource Limits
  632. group: Resources Configuration
  633. description: Enable resource limits for the container.
  634. schema:
  635. type: boolean
  636. default: false
  637. - variable: limits
  638. label: Limits
  639. schema:
  640. type: dict
  641. show_if: [["enable_resource_limits", "=", true]]
  642. attrs:
  643. - variable: cpus
  644. label: CPUs
  645. description: CPUs limit for the container.
  646. schema:
  647. type: int
  648. default: 2
  649. required: true
  650. - variable: memory
  651. label: Memory (in MB)
  652. description: Memory limit for the container.
  653. schema:
  654. type: int
  655. default: 4096
  656. required: true
  657. - variable: gpus
  658. group: Resources Configuration
  659. label: GPU Configuration
  660. schema:
  661. type: dict
  662. $ref:
  663. - "definitions/gpu_configuration"
  664. attrs: []