@leverege/build-tools 2.96.8 → 2.97.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/.vscode/launch.json +21 -1
  2. package/package.json +10 -10
  3. package/src/Utils.mjs +6 -1
  4. package/src/artifacts/Utils.mjs +5 -2
  5. package/src/build-cnpg-image.mjs +0 -1
  6. package/src/chart-compass.yaml +1 -1
  7. package/src/chart-to-registry.mjs +10 -1
  8. package/src/helm-charts/api-server/values-local.yaml +3 -0
  9. package/src/helm-charts/cnpg-db-psql-stack/cluster.yaml.ovh +37 -32
  10. package/src/helm-charts/cnpg-db-psql-stack/pooler.yaml +2 -0
  11. package/src/helm-charts/cnpg-db-recovery/cluster.yaml.ovh +1 -1
  12. package/src/helm-charts/cnpg-db-tsdb-basic/cluster.yaml.ovh +50 -46
  13. package/src/helm-charts/cnpg-db-tsdb-basic/pooler.yaml +2 -0
  14. package/src/helm-charts/cnpg-db-tsdb-dense/cluster.yaml.ovh +55 -47
  15. package/src/helm-charts/cnpg-db-tsdb-dense/pooler.yaml +2 -0
  16. package/src/helm-charts/cnpg-operator/helmup.bootstrap +8 -0
  17. package/src/helm-charts/cnpg-operator/helmup.plugin +29 -4
  18. package/src/helm-charts/db-curator/values-local.yaml +9 -1
  19. package/src/helm-charts/elasticsearch8/elasticsearch-local.yaml +54 -51
  20. package/src/helm-charts/emailer/values-local.yaml +4 -1
  21. package/src/helm-charts/messenger/values-local.yaml +1 -5
  22. package/src/helm-charts/pgbouncer/values-local.yaml +8 -3
  23. package/src/helm-charts/prom-operator/helmup.bootstrap +8 -5
  24. package/src/helm-charts/prom-operator/helmup.plugin +1 -1
  25. package/src/helm-charts/prom-operator/prometheus-stack.yaml.ovh +51 -11
  26. package/src/helm-charts/prom-operator/rules/elasticsearch-rules.yaml +1 -1
  27. package/src/helm-charts/prom-operator/rules/kubestate-rules.yaml +1 -1
  28. package/src/helm-charts/push-notifier/values-local.yaml +8 -0
  29. package/src/helm-charts/redis/values-local.yaml +2 -1
  30. package/src/helm-charts/traefik/values-local.yaml +1 -1
  31. package/src/helm-charts/transponder-dh/values-local.yaml +1 -0
  32. package/src/helm-charts/transponder-tsdb/values-local.yaml +1 -0
  33. package/src/helm-charts/velero/helmup.plugin +2 -2
  34. package/src/helm-charts/velero/values-local.yaml +17 -15
  35. package/src/helmdn.sh +1 -1
  36. package/src/helmup.sh +3 -3
  37. package/src/init-my-chart/Chartwright.mjs +69 -0
  38. package/src/init-my-chart/init-my-chart-v1.mjs +124 -0
  39. package/src/init-my-chart/init-my-chart.mjs +80 -0
  40. package/src/init-my-chart/leaf-chart-templates/Chart.yaml.hbs +10 -0
  41. package/src/init-my-chart/leaf-chart-templates/templates/configmap.yaml +1 -0
  42. package/src/init-my-chart/leaf-chart-templates/templates/deployment.yaml +1 -0
  43. package/src/init-my-chart/leaf-chart-templates/templates/hpa.yaml +1 -0
  44. package/src/init-my-chart/leaf-chart-templates/templates/pdb.yaml +1 -0
  45. package/src/init-my-chart/leaf-chart-templates/templates/service.yaml +1 -0
  46. package/src/init-my-chart/leaf-chart-templates/templates/serviceaccount.yaml +1 -0
  47. package/src/init-my-chart/leaf-chart-templates/templates/servicemonitor.yaml +1 -0
  48. package/src/init-my-chart/leaf-chart-templates/values.schema.json +623 -0
  49. package/src/init-my-chart/leaf-chart-templates/values.yaml.hbs +135 -0
  50. package/src/init-my-chart/legacy-helm-template/Chart.yaml +5 -0
  51. package/src/init-my-chart/legacy-helm-template/templates/NOTES.txt +5 -0
  52. package/src/init-my-chart/legacy-helm-template/templates/_helpers.tpl +135 -0
  53. package/src/init-my-chart/legacy-helm-template/templates/configmap.yaml +10 -0
  54. package/src/init-my-chart/legacy-helm-template/templates/deployment.yaml +125 -0
  55. package/src/init-my-chart/legacy-helm-template/templates/hpa.yaml +26 -0
  56. package/src/init-my-chart/legacy-helm-template/templates/ingressroute.yaml +18 -0
  57. package/src/init-my-chart/legacy-helm-template/templates/pdb.yaml +22 -0
  58. package/src/init-my-chart/legacy-helm-template/templates/service.yaml +15 -0
  59. package/src/init-my-chart/legacy-helm-template/templates/serviceaccount.yaml +13 -0
  60. package/src/init-my-chart/legacy-helm-template/templates/servicemonitor.yaml +23 -0
  61. package/src/init-my-chart/legacy-helm-template/values.yaml +152 -0
  62. package/src/k8scale.sh +2 -0
  63. package/src/testOauthLogic.mjs +12 -0
  64. package/leverege-build-tools-2.21.13.tgz +0 -0
  65. package/lib/server/build-tools.js +0 -138
  66. package/lib/server/firebaseDeploy.js +0 -195
  67. package/lib/server/firebaseServe.js +0 -116
  68. package/lib/server/getfbcfg.js +0 -25
  69. package/lib/server/getjson.js +0 -70
  70. package/lib/server/overwhelm.js +0 -447
  71. package/lib/server/push-my-chart.js +0 -18
  72. package/lib/server/refresh-npm-token.js +0 -135
  73. package/lib/server/tag-release.js +0 -681
  74. package/lib/server/unleash.js +0 -50
  75. package/lib/web/build-tools.js +0 -138
  76. package/lib/web/firebaseDeploy.js +0 -195
  77. package/lib/web/firebaseServe.js +0 -116
  78. package/lib/web/getfbcfg.js +0 -25
  79. package/lib/web/getjson.js +0 -70
  80. package/lib/web/overwhelm.js +0 -447
  81. package/lib/web/push-my-chart.js +0 -18
  82. package/lib/web/refresh-npm-token.js +0 -135
  83. package/lib/web/tag-release.js +0 -681
  84. package/lib/web/unleash.js +0 -50
  85. package/src/helm-charts/prom-operator/rules/awesome-base/elasticsearch-rules.yaml +0 -219
  86. package/src/helm-charts/prom-operator/rules/awesome-base/google-cadvisor.yaml +0 -108
  87. package/src/helm-charts/prom-operator/rules/awesome-base/kubestate-exporter.yaml +0 -394
  88. package/src/helm-charts/prom-operator/rules/awesome-base/prometheus-rules.yaml +0 -318
  89. package/src/helm-charts/prom-operator/rules/awesome-base/redis-rules.yaml +0 -142
  90. package/src/helm-charts/prom-operator/rules/awesome-base/traefik-rules.yaml +0 -43
  91. package/src/init-my-chart.mjs +0 -18
@@ -0,0 +1,623 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Leverege Base Helm Chart Values",
4
+ "type": "object",
5
+ "additionalProperties": true,
6
+
7
+ "properties": {
8
+ "nameOverride": {
9
+ "type": "string",
10
+ "description": "Optional release name override."
11
+ },
12
+ "fullnameOverride": {
13
+ "type": "string",
14
+ "description": "Optional full name override."
15
+ },
16
+
17
+ "image": {
18
+ "type": "object",
19
+ "description": "Image configuration for the primary workload container.",
20
+ "additionalProperties": true,
21
+ "properties": {
22
+ "registry": { "type": "string" },
23
+ "repository": { "type": "string" },
24
+ "tag": { "type": "string" },
25
+ "pullPolicy": { "type": "string", "enum": ["Always", "IfNotPresent", "Never"] },
26
+ "pullSecrets": { "type": "array", "items": { "type": "string" } }
27
+ }
28
+ },
29
+
30
+ "config": {
31
+ "type": "object",
32
+ "description": "Application configuration passed via ConfigMap. All values are treated as strings.",
33
+ "additionalProperties": { "type": "string" },
34
+ "properties": {
35
+ "NODE_OPTIONS": { "type": "string" },
36
+ "LOG_CONFIG": { "type": "string" },
37
+ "HTTP_SERVER_PORT": { "type": "string" },
38
+ "METRICS_PORT": { "type": "string" },
39
+ "IMAGINE_API_URL": { "type": "string" }
40
+ }
41
+ },
42
+
43
+ "container": {
44
+ "type": "object",
45
+ "description": "Primary container configuration. Safe-walked in templates, so fully optional.",
46
+ "additionalProperties": true,
47
+ "properties": {
48
+ "image": {
49
+ "type": "string",
50
+ "description": "Full image reference to override the default <registry>/<chartName>:<tag>."
51
+ },
52
+ "command": {
53
+ "type": "array",
54
+ "items": { "type": "string" }
55
+ },
56
+ "args": {
57
+ "type": "array",
58
+ "items": { "type": "string" }
59
+ },
60
+ "env": {
61
+ "type": "array",
62
+ "items": { "$ref": "#/definitions/envVar" }
63
+ },
64
+ "envFromExtra": {
65
+ "type": "array",
66
+ "description": "Additional envFrom entries, merged after default-configs and <fullname>-configs.",
67
+ "items": { "$ref": "#/definitions/envFromSource" }
68
+ },
69
+ "extraPorts": {
70
+ "type": "array",
71
+ "description": "Additional container ports appended after base deploymentPorts helper.",
72
+ "items": {
73
+ "type": "object",
74
+ "additionalProperties": true,
75
+ "properties": {
76
+ "name": { "type": "string" },
77
+ "containerPort": { "type": "integer", "minimum": 1, "maximum": 65535 },
78
+ "protocol": {
79
+ "type": "string",
80
+ "enum": ["TCP", "UDP", "SCTP"],
81
+ "default": "TCP"
82
+ }
83
+ }
84
+ },
85
+ "default": []
86
+ },
87
+ "extraVolumeMounts": {
88
+ "type": "array",
89
+ "description": "Additional volume mounts for the primary container (paired with extraVolumes).",
90
+ "items": { "type": "object", "additionalProperties": true },
91
+ "default": []
92
+ }
93
+ }
94
+ },
95
+
96
+ "extraVolumes": {
97
+ "type": "array",
98
+ "description": "Additional pod volumes shared by main container and sidecars.",
99
+ "items": {
100
+ "type": "object",
101
+ "additionalProperties": true,
102
+ "required": ["name"],
103
+ "properties": {
104
+ "name": { "type": "string" }
105
+ }
106
+ },
107
+ "default": []
108
+ },
109
+
110
+ "sidecars": {
111
+ "type": "array",
112
+ "description": "Additional containers (e.g., sidecars) appended after the primary container.",
113
+ "items": {
114
+ "type": "object",
115
+ "additionalProperties": true,
116
+ "required": ["name", "image"],
117
+ "properties": {
118
+ "name": { "type": "string" },
119
+ "image": { "type": "string" },
120
+ "imagePullPolicy": {
121
+ "type": "string",
122
+ "enum": ["Always", "IfNotPresent", "Never"]
123
+ },
124
+ "env": {
125
+ "type": "array",
126
+ "items": { "$ref": "#/definitions/envVar" }
127
+ },
128
+ "envFrom": {
129
+ "type": "array",
130
+ "items": { "$ref": "#/definitions/envFromSource" }
131
+ },
132
+ "ports": {
133
+ "type": "array",
134
+ "items": {
135
+ "type": "object",
136
+ "additionalProperties": true,
137
+ "properties": {
138
+ "name": { "type": "string" },
139
+ "containerPort": {
140
+ "type": "integer",
141
+ "minimum": 1,
142
+ "maximum": 65535
143
+ },
144
+ "protocol": {
145
+ "type": "string",
146
+ "enum": ["TCP", "UDP", "SCTP"],
147
+ "default": "TCP"
148
+ }
149
+ }
150
+ }
151
+ },
152
+ "resources": {
153
+ "$ref": "#/definitions/resourceRequirements"
154
+ },
155
+ "volumeMounts": {
156
+ "type": "array",
157
+ "items": {
158
+ "type": "object",
159
+ "additionalProperties": true
160
+ }
161
+ }
162
+ }
163
+ },
164
+ "default": []
165
+ },
166
+
167
+ "modelInit": {
168
+ "type": "object",
169
+ "description": "Optional model init container stanza (legacy charts may omit).",
170
+ "additionalProperties": true,
171
+ "properties": {
172
+ "enabled": { "type": "boolean" },
173
+ "image": {
174
+ "type": "string",
175
+ "description": "Init container image in repo:tag form."
176
+ },
177
+ "command": {
178
+ "type": "array",
179
+ "items": { "type": "string" }
180
+ },
181
+ "args": {
182
+ "type": "array",
183
+ "items": { "type": "string" }
184
+ },
185
+ "env": {
186
+ "type": "array",
187
+ "items": { "$ref": "#/definitions/envVar" }
188
+ },
189
+ "resources": {
190
+ "type": "object",
191
+ "additionalProperties": true
192
+ }
193
+ }
194
+ },
195
+
196
+ "metrics": {
197
+ "type": "object",
198
+ "description": "Metrics port naming.",
199
+ "additionalProperties": true,
200
+ "properties": {
201
+ "portName": { "type": "string" }
202
+ }
203
+ },
204
+
205
+ "partOf": {
206
+ "type": ["string", "null"],
207
+ "description": "Optional app.kubernetes.io/part-of label."
208
+ },
209
+
210
+ "deploymentPorts": {
211
+ "type": "object",
212
+ "description": "Ports exposed by the Deployment/Pod. Overrides replace defaults when non-empty.",
213
+ "additionalProperties": false,
214
+ "properties": {
215
+ "override": {
216
+ "type": "array",
217
+ "items": { "$ref": "#/definitions/portObject" },
218
+ "default": []
219
+ },
220
+ "extra": {
221
+ "type": "array",
222
+ "items": { "$ref": "#/definitions/portObject" },
223
+ "default": []
224
+ }
225
+ }
226
+ },
227
+
228
+ "servicePorts": {
229
+ "type": "object",
230
+ "description": "Ports exposed by the Service. Overrides replace defaults when non-empty.",
231
+ "additionalProperties": false,
232
+ "properties": {
233
+ "override": {
234
+ "type": "array",
235
+ "items": { "$ref": "#/definitions/portObject" },
236
+ "default": []
237
+ },
238
+ "extra": {
239
+ "type": "array",
240
+ "items": { "$ref": "#/definitions/portObject" },
241
+ "default": []
242
+ }
243
+ }
244
+ },
245
+
246
+ "service": {
247
+ "type": "object",
248
+ "description": "Service configuration.",
249
+ "additionalProperties": true,
250
+ "properties": {
251
+ "type": {
252
+ "type": "string",
253
+ "enum": ["ClusterIP", "NodePort", "LoadBalancer", "ExternalName"]
254
+ },
255
+ "annotations": {
256
+ "type": "object",
257
+ "additionalProperties": { "type": "string" }
258
+ },
259
+ "labels": {
260
+ "type": "object",
261
+ "additionalProperties": { "type": "string" }
262
+ },
263
+ "preemptible": { "type": "boolean" }
264
+ }
265
+ },
266
+
267
+ "loadbalancer": {
268
+ "type": "object",
269
+ "description": "LoadBalancer-specific options, safe-walked.",
270
+ "additionalProperties": true,
271
+ "properties": {
272
+ "ip": {
273
+ "type": "string",
274
+ "description": "Static IP address for LoadBalancer. Use empty string to unset."
275
+ }
276
+ }
277
+ },
278
+
279
+ "serviceAccount": {
280
+ "type": "object",
281
+ "description": "ServiceAccount options, safe-walked.",
282
+ "additionalProperties": true,
283
+ "properties": {
284
+ "create": { "type": "boolean" },
285
+ "name": { "type": "string" },
286
+ "annotations": {
287
+ "type": "object",
288
+ "additionalProperties": { "type": "string" }
289
+ }
290
+ }
291
+ },
292
+
293
+ "securityContext": {
294
+ "type": "object",
295
+ "description": "Pod/container security context options.",
296
+ "additionalProperties": true,
297
+ "properties": {
298
+ "readOnlyRootFs": { "type": "boolean" }
299
+ }
300
+ },
301
+
302
+ "probes": {
303
+ "type": "object",
304
+ "description": "Liveness/readiness probe configuration. Templates guard on enabled.",
305
+ "additionalProperties": true,
306
+ "properties": {
307
+ "enabled": { "type": "boolean" },
308
+ "livenessProbe": { "type": "object", "additionalProperties": true },
309
+ "readinessProbe": { "type": "object", "additionalProperties": true }
310
+ }
311
+ },
312
+
313
+ "staticscaling": {
314
+ "type": "object",
315
+ "description": "Static replica scaling block. Used when autoscaling.enabled=false.",
316
+ "additionalProperties": true,
317
+ "properties": {
318
+ "replicas": { "type": "integer", "minimum": 0 }
319
+ }
320
+ },
321
+
322
+ "autoscaling": {
323
+ "type": "object",
324
+ "description": "HorizontalPodAutoscaler options. Should emit nothing when disabled.",
325
+ "additionalProperties": true,
326
+ "properties": {
327
+ "enabled": { "type": "boolean" },
328
+ "minReplicas": { "type": "integer", "minimum": 0 },
329
+ "maxReplicas": { "type": "integer", "minimum": 1 },
330
+ "averageCPU": {
331
+ "type": "integer",
332
+ "minimum": 1,
333
+ "maximum": 100,
334
+ "description": "Target average CPU utilization percentage."
335
+ }
336
+ }
337
+ },
338
+
339
+ "pdb": {
340
+ "type": "object",
341
+ "description": "PodDisruptionBudget options. Prefer enabled; create is deprecated.",
342
+ "additionalProperties": true,
343
+ "properties": {
344
+ "enabled": { "type": "boolean" },
345
+ "create": { "type": "boolean", "deprecated": true },
346
+ "minAvailable": {
347
+ "anyOf": [
348
+ { "type": "integer", "minimum": 0 },
349
+ { "type": "string" }
350
+ ]
351
+ },
352
+ "maxUnavailable": {
353
+ "anyOf": [
354
+ { "type": "integer", "minimum": 0 },
355
+ { "type": "string" }
356
+ ]
357
+ }
358
+ }
359
+ },
360
+
361
+ "serviceMonitor": {
362
+ "type": "object",
363
+ "description": "Prometheus ServiceMonitor options.",
364
+ "additionalProperties": true,
365
+ "properties": {
366
+ "enabled": { "type": "boolean" },
367
+ "interval": { "type": "string", "description": "Scrape interval (e.g., 60s)." },
368
+ "namespace": { "type": "string", "description": "Namespace Prometheus scrapes targets from." },
369
+ "labels": { "type": "object", "additionalProperties": { "type": "string" } },
370
+ "annotations": { "type": "object", "additionalProperties": { "type": "string" } },
371
+ "endpoints": {
372
+ "type": "array",
373
+ "description": "Full override for endpoints. Empty or missing port will be filled with metrics port helper.",
374
+ "items": { "$ref": "#/definitions/endpointObject" },
375
+ "default": []
376
+ }
377
+ }
378
+ },
379
+
380
+ "redis": {
381
+ "type": "object",
382
+ "description": "Optional redis block used by some legacy leaves.",
383
+ "additionalProperties": true,
384
+ "properties": {
385
+ "enabled": { "type": "boolean" }
386
+ }
387
+ },
388
+
389
+ "extraObjects": {
390
+ "type": "array",
391
+ "description": "Arbitrary Kubernetes objects emitted verbatim. Empty list must render nothing.",
392
+ "items": { "$ref": "#/definitions/k8sObject" },
393
+ "default": []
394
+ },
395
+
396
+ "global": {
397
+ "type": "object",
398
+ "description": "Global values used across charts (if present).",
399
+ "additionalProperties": true
400
+ },
401
+
402
+ "resources": {
403
+ "$ref": "#/definitions/resourceRequirements",
404
+ "description": "Top-level resources for the main workload container."
405
+ },
406
+
407
+ "tolerations": {
408
+ "type": "array",
409
+ "description": "Pod tolerations.",
410
+ "items": { "$ref": "#/definitions/toleration" },
411
+ "default": []
412
+ },
413
+
414
+ "affinity": {
415
+ "type": "object",
416
+ "description": "Pod affinity/anti-affinity.",
417
+ "additionalProperties": true,
418
+ "default": {}
419
+ },
420
+
421
+ "nodeSelector": {
422
+ "type": "object",
423
+ "description": "Pod nodeSelector map.",
424
+ "additionalProperties": { "type": "string" },
425
+ "default": {}
426
+ },
427
+
428
+ "ingressRoute": {
429
+ "type": "object",
430
+ "description": "Traefik IngressRoute options (if used).",
431
+ "additionalProperties": true,
432
+ "properties": {
433
+ "host": { "type": "string" }
434
+ }
435
+ },
436
+
437
+ "canary": {
438
+ "type": "object",
439
+ "description": "Canary rollout config.",
440
+ "additionalProperties": true,
441
+ "default": {}
442
+ },
443
+
444
+ "udploadbalancer": {
445
+ "type": "object",
446
+ "description": "UDP LoadBalancer options for legacy leaves.",
447
+ "additionalProperties": true,
448
+ "properties": {
449
+ "ip": {
450
+ "type": "string",
451
+ "description": "Static IP address for UDP LoadBalancer. Use empty string to unset."
452
+ }
453
+ }
454
+ }
455
+ },
456
+
457
+ "definitions": {
458
+ "imageRef": {
459
+ "type": "object",
460
+ "additionalProperties": true,
461
+ "properties": {
462
+ "repository": { "type": "string" },
463
+ "tag": { "type": "string" },
464
+ "pullPolicy": {
465
+ "type": "string",
466
+ "enum": ["Always", "IfNotPresent", "Never"]
467
+ }
468
+ }
469
+ },
470
+
471
+ "cpuQuantity": {
472
+ "type": "string",
473
+ "description": "Kubernetes CPU quantity (e.g., 500m, 0.5, 1, 2).",
474
+ "pattern": "^(\\d+m|\\d+(\\.\\d+)?)$"
475
+ },
476
+
477
+ "memoryQuantity": {
478
+ "type": "string",
479
+ "description": "Kubernetes memory quantity with units required (e.g., 256Mi, 1Gi, 500M).",
480
+ "pattern": "^\\d+(\\.\\d+)?(Ei|Pi|Ti|Gi|Mi|Ki|E|P|T|G|M|K)$"
481
+ },
482
+
483
+ "resourceRequirements": {
484
+ "type": "object",
485
+ "description": "Kubernetes resource requirements. cpu/memory validated when present.",
486
+ "additionalProperties": true,
487
+ "properties": {
488
+ "requests": {
489
+ "type": "object",
490
+ "additionalProperties": true,
491
+ "properties": {
492
+ "cpu": { "$ref": "#/definitions/cpuQuantity" },
493
+ "memory": { "$ref": "#/definitions/memoryQuantity" }
494
+ }
495
+ },
496
+ "limits": {
497
+ "type": "object",
498
+ "additionalProperties": true,
499
+ "properties": {
500
+ "cpu": { "$ref": "#/definitions/cpuQuantity" },
501
+ "memory": { "$ref": "#/definitions/memoryQuantity" }
502
+ }
503
+ }
504
+ }
505
+ },
506
+
507
+ "toleration": {
508
+ "type": "object",
509
+ "description": "Kubernetes toleration object.",
510
+ "additionalProperties": true,
511
+ "properties": {
512
+ "key": { "type": "string" },
513
+ "operator": {
514
+ "type": "string",
515
+ "enum": ["Exists", "Equal"]
516
+ },
517
+ "value": { "type": "string" },
518
+ "effect": {
519
+ "type": "string",
520
+ "enum": ["NoSchedule", "PreferNoSchedule", "NoExecute"]
521
+ },
522
+ "tolerationSeconds": { "type": "integer", "minimum": 0 }
523
+ }
524
+ },
525
+
526
+ "portObject": {
527
+ "type": "object",
528
+ "additionalProperties": true,
529
+ "required": ["name", "port"],
530
+ "properties": {
531
+ "name": {
532
+ "type": "string",
533
+ "description": "Port name. metrics port name helper defaults to 'metrics' if not overridden."
534
+ },
535
+ "port": { "type": "integer", "minimum": 1, "maximum": 65535 },
536
+ "targetPort": {
537
+ "anyOf": [
538
+ { "type": "integer", "minimum": 1, "maximum": 65535 },
539
+ { "type": "string" }
540
+ ]
541
+ },
542
+ "protocol": {
543
+ "type": "string",
544
+ "enum": ["TCP", "UDP", "SCTP"],
545
+ "default": "TCP"
546
+ }
547
+ }
548
+ },
549
+
550
+ "endpointObject": {
551
+ "type": "object",
552
+ "additionalProperties": true,
553
+ "properties": {
554
+ "port": {
555
+ "type": "string",
556
+ "description": "May be empty string; base will fill with metrics port name."
557
+ },
558
+ "path": { "type": "string", "default": "/metrics" },
559
+ "interval": { "type": "string" },
560
+ "scrapeTimeout": { "type": "string" },
561
+ "scheme": { "type": "string", "enum": ["http", "https"] },
562
+ "tlsConfig": { "type": "object", "additionalProperties": true },
563
+ "relabelings": {
564
+ "type": "array",
565
+ "items": { "type": "object", "additionalProperties": true }
566
+ },
567
+ "metricRelabelings": {
568
+ "type": "array",
569
+ "items": { "type": "object", "additionalProperties": true }
570
+ }
571
+ }
572
+ },
573
+
574
+ "envVar": {
575
+ "type": "object",
576
+ "required": ["name"],
577
+ "additionalProperties": true,
578
+ "properties": {
579
+ "name": { "type": "string" },
580
+ "value": { "type": "string" },
581
+ "valueFrom": { "type": "object", "additionalProperties": true }
582
+ }
583
+ },
584
+
585
+ "envFromSource": {
586
+ "type": "object",
587
+ "additionalProperties": true,
588
+ "properties": {
589
+ "configMapRef": { "type": "object", "additionalProperties": true },
590
+ "secretRef": { "type": "object", "additionalProperties": true }
591
+ }
592
+ },
593
+
594
+ "k8sObject": {
595
+ "type": "object",
596
+ "description": "Loose schema for arbitrary Kubernetes objects.",
597
+ "required": ["apiVersion", "kind", "metadata"],
598
+ "additionalProperties": true,
599
+ "properties": {
600
+ "apiVersion": { "type": "string" },
601
+ "kind": { "type": "string" },
602
+ "metadata": {
603
+ "type": "object",
604
+ "required": ["name"],
605
+ "additionalProperties": true,
606
+ "properties": {
607
+ "name": { "type": "string" },
608
+ "namespace": { "type": "string" },
609
+ "labels": {
610
+ "type": "object",
611
+ "additionalProperties": { "type": "string" }
612
+ },
613
+ "annotations": {
614
+ "type": "object",
615
+ "additionalProperties": { "type": "string" }
616
+ }
617
+ }
618
+ }
619
+ }
620
+ }
621
+ }
622
+ }
623
+