values.schema.json 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. {
  2. "$schema": "http://json-schema.org/schema#",
  3. "type": "object",
  4. "properties": {
  5. "architecture": {
  6. "type": "string",
  7. "title": "MySQL architecture",
  8. "form": true,
  9. "description": "Allowed values: `standalone` or `replication`",
  10. "enum": ["standalone", "replication"]
  11. },
  12. "auth": {
  13. "type": "object",
  14. "title": "Authentication configuration",
  15. "form": true,
  16. "required": ["username", "password"],
  17. "if": {
  18. "properties": {
  19. "createDatabase": { "enum": [ true ] }
  20. }
  21. },
  22. "then": {
  23. "properties": {
  24. "database": {
  25. "pattern": "[a-zA-Z0-9]{1,64}"
  26. }
  27. }
  28. },
  29. "properties": {
  30. "rootPassword": {
  31. "type": "string",
  32. "title": "MySQL root password",
  33. "description": "Defaults to a random 10-character alphanumeric string if not set"
  34. },
  35. "database": {
  36. "type": "string",
  37. "title": "MySQL custom database name",
  38. "maxLength": 64
  39. },
  40. "username": {
  41. "type": "string",
  42. "title": "MySQL custom username"
  43. },
  44. "password": {
  45. "type": "string",
  46. "title": "MySQL custom password"
  47. },
  48. "replicationUser": {
  49. "type": "string",
  50. "title": "MySQL replication username"
  51. },
  52. "replicationPassword": {
  53. "type": "string",
  54. "title": "MySQL replication password"
  55. },
  56. "createDatabase": {
  57. "type": "boolean",
  58. "title": "MySQL create custom database"
  59. }
  60. }
  61. },
  62. "primary": {
  63. "type": "object",
  64. "title": "Primary database configuration",
  65. "form": true,
  66. "properties": {
  67. "podSecurityContext": {
  68. "type": "object",
  69. "title": "MySQL primary Pod security context",
  70. "properties": {
  71. "enabled": {
  72. "type": "boolean",
  73. "default": false
  74. },
  75. "fsGroup": {
  76. "type": "integer",
  77. "default": 1001,
  78. "hidden": {
  79. "value": false,
  80. "path": "primary/podSecurityContext/enabled"
  81. }
  82. }
  83. }
  84. },
  85. "containerSecurityContext": {
  86. "type": "object",
  87. "title": "MySQL primary container security context",
  88. "properties": {
  89. "enabled": {
  90. "type": "boolean",
  91. "default": false
  92. },
  93. "runAsUser": {
  94. "type": "integer",
  95. "default": 1001,
  96. "hidden": {
  97. "value": false,
  98. "path": "primary/containerSecurityContext/enabled"
  99. }
  100. }
  101. }
  102. },
  103. "persistence": {
  104. "type": "object",
  105. "title": "Enable persistence using Persistent Volume Claims",
  106. "properties": {
  107. "enabled": {
  108. "type": "boolean",
  109. "default": true,
  110. "title": "If true, use a Persistent Volume Claim, If false, use emptyDir"
  111. },
  112. "size": {
  113. "type": "string",
  114. "title": "Persistent Volume Size",
  115. "form": true,
  116. "render": "slider",
  117. "sliderMin": 1,
  118. "sliderUnit": "Gi",
  119. "hidden": {
  120. "value": false,
  121. "path": "primary/persistence/enabled"
  122. }
  123. }
  124. }
  125. }
  126. }
  127. },
  128. "secondary": {
  129. "type": "object",
  130. "title": "Secondary database configuration",
  131. "form": true,
  132. "properties": {
  133. "podSecurityContext": {
  134. "type": "object",
  135. "title": "MySQL secondary Pod security context",
  136. "properties": {
  137. "enabled": {
  138. "type": "boolean",
  139. "default": false
  140. },
  141. "fsGroup": {
  142. "type": "integer",
  143. "default": 1001,
  144. "hidden": {
  145. "value": false,
  146. "path": "secondary/podSecurityContext/enabled"
  147. }
  148. }
  149. }
  150. },
  151. "containerSecurityContext": {
  152. "type": "object",
  153. "title": "MySQL secondary container security context",
  154. "properties": {
  155. "enabled": {
  156. "type": "boolean",
  157. "default": false
  158. },
  159. "runAsUser": {
  160. "type": "integer",
  161. "default": 1001,
  162. "hidden": {
  163. "value": false,
  164. "path": "secondary/containerSecurityContext/enabled"
  165. }
  166. }
  167. }
  168. },
  169. "persistence": {
  170. "type": "object",
  171. "title": "Enable persistence using Persistent Volume Claims",
  172. "properties": {
  173. "enabled": {
  174. "type": "boolean",
  175. "default": true,
  176. "title": "If true, use a Persistent Volume Claim, If false, use emptyDir"
  177. },
  178. "size": {
  179. "type": "string",
  180. "title": "Persistent Volume Size",
  181. "form": true,
  182. "render": "slider",
  183. "sliderMin": 1,
  184. "sliderUnit": "Gi",
  185. "hidden": {
  186. "value": false,
  187. "path": "secondary/persistence/enabled"
  188. }
  189. }
  190. }
  191. }
  192. }
  193. }
  194. }
  195. }