questions.yaml 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. groups:
  2. - name: "Container Images"
  3. description: "Image to be used for container"
  4. - name: "Workload Configuration"
  5. description: "Configure Storage for IPFS"
  6. - name: "Storage"
  7. description: "Configure Storage for IPFS"
  8. - name: "IPFS Configuration"
  9. description: "Configure Storage for IPFS"
  10. - name: "Advanced DNS Settings"
  11. description: "Configure DNS settings"
  12. - name: "Resource Limits"
  13. description: "Set CPU/memory limits for Kubernetes Pod"
  14. portals:
  15. web_portal:
  16. protocols:
  17. - "http"
  18. host:
  19. - "$node_ip"
  20. ports:
  21. - "$variable-service.apiPort"
  22. path: "/webui"
  23. questions:
  24. - variable: dnsConfig
  25. label: "DNS Configuration"
  26. group: "Advanced DNS Settings"
  27. schema:
  28. type: dict
  29. attrs:
  30. - variable: options
  31. label: "DNS Options"
  32. schema:
  33. type: list
  34. items:
  35. - variable: optionsEntry
  36. label: "Option Entry Configuration"
  37. schema:
  38. type: dict
  39. attrs:
  40. - variable: name
  41. label: "Option Name"
  42. schema:
  43. type: string
  44. required: true
  45. - variable: value
  46. label: "Option Value"
  47. schema:
  48. type: string
  49. required: true
  50. - variable: updateStrategy
  51. label: "IPFS update strategy"
  52. group: "Workload Configuration"
  53. schema:
  54. type: string
  55. default: "Recreate"
  56. enum:
  57. - value: "RollingUpdate"
  58. description: "Create new pods and then kill old ones"
  59. - value: "Recreate"
  60. description: "Kill existing pods before creating new ones"
  61. - variable: environmentVariables
  62. label: "IPFS image environment"
  63. group: "IPFS Configuration"
  64. schema:
  65. type: list
  66. default: []
  67. items:
  68. - variable: environmentVariable
  69. label: "Environment Variable"
  70. schema:
  71. type: dict
  72. attrs:
  73. - variable: name
  74. label: "Name"
  75. schema:
  76. type: string
  77. - variable: value
  78. label: "Value"
  79. schema:
  80. type: string
  81. - variable: service
  82. description: "IPFS Service Configuration"
  83. label: "IPFS Service Configuration"
  84. group: "IPFS Configuration"
  85. schema:
  86. type: dict
  87. required: true
  88. attrs:
  89. - variable: swarmPort
  90. label: "Swarm Port to use for IPFS (Public)"
  91. schema:
  92. type: int
  93. min: 9000
  94. max: 65535
  95. default: 9401
  96. required: true
  97. - variable: apiPort
  98. label: "API Port to use for IPFS (local)"
  99. schema:
  100. type: int
  101. min: 9000
  102. max: 65535
  103. default: 9501
  104. required: true
  105. - variable: gatewayPort
  106. label: "Gateway Port to use for IPFS (local)"
  107. schema:
  108. type: int
  109. min: 9000
  110. max: 65535
  111. default: 9880
  112. required: true
  113. - variable: appVolumeMounts
  114. label: "IPFS Storage"
  115. group: "Storage"
  116. schema:
  117. type: dict
  118. attrs:
  119. - variable: staging
  120. label: "Staging Volume"
  121. schema:
  122. type: dict
  123. attrs:
  124. - variable: datasetName
  125. label: "IPFS Staging Volume Dataset Name"
  126. schema:
  127. type: string
  128. hidden: true
  129. $ref:
  130. - "normalize/ixVolume"
  131. show_if: [["hostPathEnabled", "=", false]]
  132. default: "ix-ipfs-staging"
  133. editable: false
  134. - variable: mountPath
  135. label: "IPFS Staging Mount Path"
  136. description: "Path where the volume will be mounted inside the pod"
  137. schema:
  138. type: path
  139. hidden: true
  140. editable: false
  141. default: "/export"
  142. - variable: hostPathEnabled
  143. label: "Enable Host Path for IPFS Staging Volume"
  144. schema:
  145. type: boolean
  146. default: false
  147. show_subquestions_if: true
  148. subquestions:
  149. - variable: hostPath
  150. label: "Host Path for IPFS Staging Volume"
  151. schema:
  152. type: hostpath
  153. required: true
  154. - variable: data
  155. label: "Data Volume"
  156. schema:
  157. type: dict
  158. attrs:
  159. - variable: datasetName
  160. label: "IPFS Data Volume Name"
  161. schema:
  162. type: string
  163. hidden: true
  164. $ref:
  165. - "normalize/ixVolume"
  166. show_if: [["hostPathEnabled", "=", false]]
  167. default: "ix-ipfs-data"
  168. editable: false
  169. - variable: mountPath
  170. label: "IPFS Data Mount Path"
  171. description: "Path where the volume will be mounted inside the pod"
  172. schema:
  173. type: path
  174. hidden: true
  175. editable: false
  176. default: "/data/ipfs"
  177. - variable: hostPathEnabled
  178. label: "Enable Host Path for IPFS Data Volume"
  179. schema:
  180. type: boolean
  181. default: false
  182. show_subquestions_if: true
  183. subquestions:
  184. - variable: hostPath
  185. label: "Host Path for IPFS Data Volume"
  186. schema:
  187. type: hostpath
  188. required: true
  189. - variable: enableResourceLimits
  190. label: "Enable Pod resource limits"
  191. group: "Resource Limits"
  192. schema:
  193. type: boolean
  194. default: false
  195. - variable: cpuLimit
  196. label: "CPU Limit"
  197. description: "CPU resource limit allow plain integer values with suffix m(milli) e.g 1000m, 100."
  198. group: "Resource Limits"
  199. schema:
  200. type: string
  201. show_if: [["enableResourceLimits", "=", true]]
  202. valid_chars: "^\\d+(?:\\.\\d+(?!.*m$)|m?$)"
  203. default: "4000m"
  204. - variable: memLimit
  205. label: "Memory Limit"
  206. group: "Resource Limits"
  207. 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"
  208. schema:
  209. type: string
  210. show_if: [["enableResourceLimits", "=", true]]
  211. valid_chars: "^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
  212. default: "8Gi"