Merge "[AAI] Add model-loader tracing config"
[oom.git] / kubernetes / common / mongodb / values.schema.json
1 {
2   "$schema": "http://json-schema.org/schema#",
3   "type": "object",
4   "properties": {
5     "architecture": {
6       "type": "string",
7       "title": "MongoDB® architecture",
8       "form": true,
9       "description": "Allowed values: `standalone` or `replicaset`"
10     },
11     "auth": {
12       "type": "object",
13       "title": "Authentication configuration",
14       "form": true,
15       "properties": {
16         "enabled": {
17           "type": "boolean",
18           "title": "Enable Authentication",
19           "form": true
20         },
21         "rootUser": {
22           "type": "string",
23           "title": "MongoDB® admin user",
24           "form": true,
25           "description": "Name of the admin user. Default is root"
26         },
27         "rootPassword": {
28           "type": "string",
29           "title": "MongoDB® admin password",
30           "form": true,
31           "description": "Defaults to a random 10-character alphanumeric string if not set",
32           "hidden": {
33             "value": false,
34             "path": "auth/enabled"
35           }
36         },
37         "database": {
38           "type": "string",
39           "title": "MongoDB® custom database",
40           "description": "Name of the custom database to be created during the 1st initialization of MongoDB®",
41           "form": true
42         },
43         "username": {
44           "type": "string",
45           "title": "MongoDB® custom user",
46           "description": "Name of the custom user to be created during the 1st initialization of MongoDB®. This user only has permissions on the MongoDB® custom database",
47           "form": true
48         },
49         "password": {
50           "type": "string",
51           "title": "Password for MongoDB® custom user",
52           "form": true,
53           "description": "Defaults to a random 10-character alphanumeric string if not set",
54           "hidden": {
55             "value": false,
56             "path": "auth/enabled"
57           }
58         },
59         "replicaSetKey": {
60           "type": "string",
61           "title": "Key used for replica set authentication",
62           "form": true,
63           "description": "Defaults to a random 10-character alphanumeric string if not set",
64           "hidden": {
65             "value": "standalone",
66             "path": "architecture"
67           }
68         }
69       }
70     },
71     "replicaCount": {
72       "type": "integer",
73       "form": true,
74       "title": "Number of MongoDB® replicas",
75       "hidden": {
76         "value": "standalone",
77         "path": "architecture"
78       }
79     },
80     "configuration": {
81       "type": "string",
82       "title": "MongoDB® Custom Configuration",
83       "form": true,
84       "render": "textArea"
85     },
86     "arbiter": {
87       "type": "object",
88       "title": "Arbiter configuration",
89       "form": true,
90       "properties": {
91         "configuration": {
92           "type": "string",
93           "title": "Arbiter Custom Configuration",
94           "form": true,
95           "render": "textArea",
96           "hidden": {
97             "value": "standalone",
98             "path": "architecture"
99           }
100         }
101       }
102     },
103     "networkPolicy": {
104       "type": "object",
105       "title": "Network policy configuration",
106       "form": true,
107       "properties": {
108         "enabled": {
109           "type": "boolean",
110           "form": true,
111           "title": "Enable network policy",
112           "description": "Enable network policy using Kubernetes native NP",
113           "hidden": {
114             "value": false,
115             "path": "networkPolicy/enabled"
116           }
117         },
118         "ingress": {
119           "type": "object",
120           "properties": {
121             "namespaceSelector": {
122               "type": "object",
123               "title": "Namespace selector label that is allowed to access this instance",
124               "hidden": {
125                 "value": {},
126                 "path": "networkPolicy/ingress/namespaceSelector"
127               }
128             },
129             "podSelector": {
130               "type": "object",
131               "title": "Pod selector label that is allowed to access this instance",
132               "hidden": {
133                 "value": {},
134                 "path": "networkPolicy/ingress/podSelector"
135               }
136             },
137             "customRules": {
138               "type": "array",
139               "title": "Custom rules for ingress network policy",
140               "hidden": {
141                 "value": [],
142                 "path": "networkPolicy/ingress/customRules"
143               }
144             }
145           }
146         },
147         "egress": {
148           "type": "object",
149           "properties": {
150             "customRules": {
151               "type": "array",
152               "title": "Custom rules for egress network policy",
153               "hidden": {
154                 "value": [],
155                 "path": "networkPolicy/egress/customRules"
156               }
157             }
158           }
159         }
160       }
161     },
162     "persistence": {
163       "type": "object",
164       "title": "Persistence configuration",
165       "form": true,
166       "properties": {
167         "enabled": {
168           "type": "boolean",
169           "form": true,
170           "title": "Enable persistence",
171           "description": "Enable persistence using Persistent Volume Claims"
172         },
173         "size": {
174           "type": "string",
175           "title": "Persistent Volume Size",
176           "form": true,
177           "render": "slider",
178           "sliderMin": 1,
179           "sliderMax": 100,
180           "sliderUnit": "Gi",
181           "hidden": {
182             "value": false,
183             "path": "persistence/enabled"
184           }
185         }
186       }
187     },
188     "volumePermissions": {
189       "type": "object",
190       "hidden": {
191         "value": false,
192         "path": "persistence/enabled"
193       },
194       "properties": {
195         "enabled": {
196           "type": "boolean",
197           "form": true,
198           "title": "Enable Init Containers",
199           "description": "Use an init container to set required folder permissions on the data volume before mounting it in the final destination"
200         }
201       }
202     },
203     "metrics": {
204       "type": "object",
205       "form": true,
206       "title": "Prometheus metrics details",
207       "properties": {
208         "enabled": {
209           "type": "boolean",
210           "title": "Create Prometheus metrics exporter",
211           "description": "Create a side-car container to expose Prometheus metrics",
212           "form": true
213         },
214         "serviceMonitor": {
215           "type": "object",
216           "properties": {
217             "enabled": {
218               "type": "boolean",
219               "title": "Create Prometheus Operator ServiceMonitor",
220               "description": "Create a ServiceMonitor to track metrics using Prometheus Operator",
221               "form": true,
222               "hidden": {
223                 "value": false,
224                 "path": "metrics/enabled"
225               }
226             }
227           }
228         }
229       }
230     }
231   }
232 }