Repository navigation
Expand file tree
/
Copy pathDeployConfig.json
More file actions
309 lines (309 loc) · 9.68 KB
/
Copy pathDeployConfig.json
File metadata and controls
309 lines (309 loc) · 9.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
{
"description": "mod-orders deployment configuration template. Default values are calibrated against a reference bugfest environment (tebfcon-mod-orders revision 15); see ADR-0013 (Module configuration management) for the governance model behind this file.",
"moduleDefaults": {
"resources": [
{
"name": "cpu",
"value": "128",
"description": "CPU request/limit for the mod-orders container"
},
{
"name": "memory",
"value": "2048",
"description": "Memory hard limit for the mod-orders container, in MB"
},
{
"name": "memoryReservation",
"value": "1740",
"description": "Memory reservation (soft limit) for the mod-orders container, in MB"
}
],
"java": [
{
"name": "xmx",
"value": "1024m",
"description": "Maximum Java heap size"
},
{
"name": "MaxMetaspaceSize",
"value": "512m",
"description": "Maximum Java metaspace size"
},
{
"name": "MetaspaceSize",
"value": "384m",
"description": "Initial Java metaspace size"
}
],
"deployment": {
"isHaSupported": true,
"replicasRecommendedCount": 2,
"description": "mod-orders is stateless (aside from Kafka consumer group coordination) and supports horizontal scaling / multiple replicas for HA. Adjust replicas based on expected order-processing and receiving load."
},
"kong": {
"timeouts": {
"connect": "60s",
"send": "60s",
"read": "60s"
},
"description": "Default Kong proxy timeouts are sufficient for mod-orders composite-order, receiving and rollover endpoints. Use this only if different from default Kong configuration."
},
"EnvVars": [
{
"name": "DB_HOST",
"value": null,
"description": "PostgreSQL database host",
"type": "DB",
"essential": true
},
{
"name": "DB_PORT",
"value": "5432",
"description": "PostgreSQL database port",
"type": "DB",
"essential": true
},
{
"name": "DB_USERNAME",
"value": null,
"description": "PostgreSQL database username (sourced from secret store)",
"type": "DB",
"essential": true
},
{
"name": "DB_PASSWORD",
"value": null,
"description": "PostgreSQL database password (sourced from secret store)",
"type": "DB",
"essential": true
},
{
"name": "DB_DATABASE",
"value": null,
"description": "PostgreSQL database name",
"type": "DB",
"essential": true
},
{
"name": "DB_HOST_READER",
"value": null,
"description": "Optional synchronously replicated read instance host; reads go to DB_HOST when unset",
"type": "DB",
"essential": false
},
{
"name": "DB_PORT_READER",
"value": null,
"description": "Port of the read instance; reads go to DB_HOST when unset",
"type": "DB",
"essential": false
},
{
"name": "DB_MAXPOOLSIZE",
"value": "20",
"description": "Maximum PostgreSQL connection pool size for mod-orders",
"type": "DB",
"essential": false
},
{
"name": "DB_MAXSHAREDPOOLSIZE",
"value": null,
"description": "When set, all tenants share one pool of this size instead of per-tenant pools of DB_MAXPOOLSIZE",
"type": "DB",
"essential": false
},
{
"name": "DB_CONNECTIONRELEASEDELAY",
"value": "60000",
"description": "Idle time in milliseconds before a pooled connection is closed (RMB default)",
"type": "DB",
"essential": false
},
{
"name": "DB_MAX_LIFETIME",
"value": "1800000",
"description": "Maximum lifetime of a pooled connection in milliseconds (RMB default)",
"type": "DB",
"essential": false
},
{
"name": "DB_RECONNECTATTEMPTS",
"value": "0",
"description": "Number of reconnect attempts when a database connection cannot be established (Vert.x default 0)",
"type": "DB",
"essential": false
},
{
"name": "DB_RECONNECTINTERVAL",
"value": "1000",
"description": "Interval in milliseconds between database reconnect attempts (Vert.x default)",
"type": "DB",
"essential": false
},
{
"name": "DB_SERVER_PEM",
"value": null,
"description": "PEM certificate of the PostgreSQL server; when set, connections use TLSv1.3 with full verification",
"type": "DB",
"essential": false
},
{
"name": "DB_EXPLAIN_QUERY_THRESHOLD",
"value": "300000",
"description": "Threshold in milliseconds above which query execution plans are logged for slow-query analysis",
"type": "DB",
"essential": false
},
{
"name": "KAFKA_HOST",
"value": null,
"description": "Kafka broker host",
"type": "KAFKA",
"essential": true
},
{
"name": "KAFKA_PORT",
"value": "9092",
"description": "Kafka broker port",
"type": "KAFKA",
"essential": true
},
{
"name": "REPLICATION_FACTOR",
"value": "2",
"description": "Kafka topic replication factor used when mod-orders creates its producer topics on tenant init",
"type": "KAFKA",
"essential": false
},
{
"name": "KAFKA_PRODUCER_TENANT_COLLECTION",
"value": "ALL",
"description": "Scope of tenants for which the Kafka producer is initialized (e.g. ALL, or a specific tenant collection)",
"type": "KAFKA",
"essential": false
},
{
"name": "KAFKA_EVENTS_CONCURRENCY",
"value": "4",
"description": "Number of concurrent consumer threads for general order-events Kafka consumers",
"type": "KAFKA",
"essential": false
},
{
"name": "KAFKA_CONTRIBUTOR_CONCURRENCY",
"value": "2",
"description": "Number of concurrent consumer threads for contributor-related Kafka event processing",
"type": "KAFKA",
"essential": false
},
{
"name": "DI_ORDER_CREATED_PARTITIONS",
"value": "8",
"description": "Number of partitions for the DI_ORDER_CREATED Kafka topic created during data-import order processing",
"type": "FUNCTIONAL",
"essential": true
},
{
"name": "DI_ORDER_CREATED_READY_FOR_POST_PROCESSING_PARTITIONS",
"value": "8",
"description": "Number of partitions for the DI_ORDER_CREATED_READY_FOR_POST_PROCESSING Kafka topic used during data-import post-processing",
"type": "FUNCTIONAL",
"essential": true
},
{
"name": "DI_PENDING_ORDER_CREATED_PARTITIONS",
"value": "8",
"description": "Number of partitions for the DI_PENDING_ORDER_CREATED Kafka topic used during data-import for pending orders",
"type": "FUNCTIONAL",
"essential": true
},
{
"name": "ENV",
"value": null,
"description": "Deployment environment identifier, also used as the Kafka environment/topic-naming prefix",
"type": "CONFIG",
"essential": true
},
{
"name": "JAVA_OPTIONS",
"value": "-Dhttp.port=8082",
"description": "JVM options for the module process. -Dhttp.port=8082 moves RMB off its default port 8081, which the Eureka sidecar uses; it must match the sidecar's MODULE_URL. Heap sizing comes from the java block.",
"type": "CONFIG",
"essential": false
},
{
"name": "SYSTEM_USER_ENABLED",
"value": false,
"description": "Defines if the mod-orders system user must be created/used at tenant initialization for internal (data-import) service requests",
"type": "FUNCTIONAL",
"essential": false
}
]
},
"sidecarDefaults": {
"resources": [
{
"name": "cpu",
"value": "64",
"description": "CPU request/limit for the sidecar container"
},
{
"name": "memory",
"value": "1024",
"description": "Memory hard limit for the sidecar container, in MB"
},
{
"name": "memoryReservation",
"value": "512",
"description": "Memory reservation for the sidecar container, in MB"
}
],
"java": [
{
"name": "xms",
"value": "128m",
"description": "Initial Java heap size"
},
{
"name": "xmx",
"value": "256m",
"description": "Maximum Java heap size"
},
{
"name": "MaxMetaspaceSize",
"value": "96m",
"description": "Maximum Java metaspace size"
}
],
"EnvVars": [
{
"name": "ENV",
"value": null,
"description": "Deployment environment identifier",
"type": "CONFIG",
"essential": true
},
{
"name": "MODULE_NAME",
"value": "mod-orders",
"description": "Name of the backend module the sidecar fronts",
"type": "CONFIG",
"essential": true
},
{
"name": "MODULE_URL",
"value": null,
"description": "Internal URL (host:port) at which the mod-orders backend container is reachable from its sidecar",
"type": "CONFIG",
"essential": true
},
{
"name": "MODULE_VERSION",
"value": null,
"description": "Version of the mod-orders module deployed alongside this sidecar",
"type": "CONFIG",
"essential": true
}
]
}
}