blob: 3eb6a64ce7f8d2588fa9f8af6675335d9d18b193 [file] [log] [blame]
Andreas Geisslercde4a782024-02-28 16:08:06 +01001{
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}