v1.0.json 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. [
  2. {
  3. "key": "general",
  4. "title": "General",
  5. "required": true,
  6. "vars": [
  7. {
  8. "name": "release_name",
  9. "description": "Helm release name",
  10. "type": "str",
  11. "required": true
  12. },
  13. {
  14. "name": "namespace",
  15. "description": "Kubernetes namespace",
  16. "type": "str"
  17. }
  18. ]
  19. },
  20. {
  21. "key": "networking",
  22. "title": "Networking",
  23. "vars": [
  24. {
  25. "name": "network_mode",
  26. "description": "Kubernetes service type",
  27. "type": "enum",
  28. "options": ["ClusterIP", "NodePort", "LoadBalancer"],
  29. "default": "ClusterIP"
  30. }
  31. ]
  32. },
  33. {
  34. "key": "database",
  35. "title": "Database Configuration",
  36. "toggle": "database_enabled",
  37. "vars": [
  38. {
  39. "name": "database_enabled",
  40. "description": "Enable external database configuration",
  41. "type": "bool",
  42. "default": false
  43. },
  44. {
  45. "name": "database_type",
  46. "description": "Database type",
  47. "type": "enum",
  48. "options": ["postgres", "mysql", "mariadb"],
  49. "default": "postgres"
  50. },
  51. {
  52. "name": "database_host",
  53. "description": "Database hostname",
  54. "type": "hostname"
  55. },
  56. {
  57. "name": "database_port",
  58. "description": "Database port",
  59. "type": "int",
  60. "default": 5432
  61. },
  62. {
  63. "name": "database_name",
  64. "description": "Database name",
  65. "type": "str"
  66. },
  67. {
  68. "name": "database_user",
  69. "description": "Database username",
  70. "type": "str"
  71. },
  72. {
  73. "name": "database_password",
  74. "description": "Database password",
  75. "type": "str",
  76. "sensitive": true
  77. }
  78. ]
  79. },
  80. {
  81. "key": "email",
  82. "title": "Email Configuration",
  83. "toggle": "email_enabled",
  84. "vars": [
  85. {
  86. "name": "email_enabled",
  87. "description": "Enable email configuration",
  88. "type": "bool",
  89. "default": false
  90. },
  91. {
  92. "name": "email_host",
  93. "description": "SMTP server hostname",
  94. "type": "hostname"
  95. },
  96. {
  97. "name": "email_port",
  98. "description": "SMTP server port",
  99. "type": "int",
  100. "default": 587
  101. },
  102. {
  103. "name": "email_username",
  104. "description": "SMTP username",
  105. "type": "str"
  106. },
  107. {
  108. "name": "email_password",
  109. "description": "SMTP password",
  110. "type": "str",
  111. "sensitive": true
  112. },
  113. {
  114. "name": "email_from",
  115. "description": "From email address",
  116. "type": "email"
  117. },
  118. {
  119. "name": "email_use_tls",
  120. "description": "Use TLS encryption",
  121. "type": "bool",
  122. "default": true
  123. },
  124. {
  125. "name": "email_use_ssl",
  126. "description": "Use SSL encryption",
  127. "type": "bool",
  128. "default": false
  129. }
  130. ]
  131. },
  132. {
  133. "key": "traefik",
  134. "title": "Traefik Ingress",
  135. "toggle": "traefik_enabled",
  136. "vars": [
  137. {
  138. "name": "traefik_enabled",
  139. "description": "Enable Traefik ingress",
  140. "type": "bool",
  141. "default": false
  142. },
  143. {
  144. "name": "traefik_host",
  145. "description": "Ingress hostname (FQDN)",
  146. "type": "hostname"
  147. }
  148. ]
  149. },
  150. {
  151. "key": "traefik_tls",
  152. "title": "Traefik TLS/SSL",
  153. "needs": "traefik",
  154. "toggle": "traefik_tls_enabled",
  155. "vars": [
  156. {
  157. "name": "traefik_tls_enabled",
  158. "description": "Enable TLS for ingress",
  159. "type": "bool",
  160. "default": true
  161. },
  162. {
  163. "name": "traefik_tls_certmanager",
  164. "description": "Use cert-manager for TLS certificates",
  165. "type": "bool",
  166. "default": false
  167. },
  168. {
  169. "name": "certmanager_issuer",
  170. "description": "Cert-manager cluster issuer name",
  171. "type": "str",
  172. "needs": "traefik_tls_certmanager=true",
  173. "default": "letsencrypt-prod"
  174. },
  175. {
  176. "name": "traefik_tls_secret",
  177. "description": "TLS secret name",
  178. "type": "str"
  179. }
  180. ]
  181. },
  182. {
  183. "key": "volumes",
  184. "title": "Persistent Volumes",
  185. "vars": [
  186. {
  187. "name": "volumes_mode",
  188. "description": "Volume configuration mode",
  189. "type": "enum",
  190. "options": ["dynamic-pvc", "existing-pvc"],
  191. "default": "dynamic-pvc",
  192. "extra": "dynamic-pvc=auto-provision storage, existing-pvc=use existing PVC"
  193. },
  194. {
  195. "name": "volumes_pvc_name",
  196. "description": "Existing PVC name",
  197. "type": "str",
  198. "needs": "volumes_mode=existing-pvc"
  199. }
  200. ]
  201. }
  202. ]