@leverege/build-tools 2.96.8 → 2.97.0

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 (90) 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/testOauthLogic.mjs +12 -0
  63. package/leverege-build-tools-2.21.13.tgz +0 -0
  64. package/lib/server/build-tools.js +0 -138
  65. package/lib/server/firebaseDeploy.js +0 -195
  66. package/lib/server/firebaseServe.js +0 -116
  67. package/lib/server/getfbcfg.js +0 -25
  68. package/lib/server/getjson.js +0 -70
  69. package/lib/server/overwhelm.js +0 -447
  70. package/lib/server/push-my-chart.js +0 -18
  71. package/lib/server/refresh-npm-token.js +0 -135
  72. package/lib/server/tag-release.js +0 -681
  73. package/lib/server/unleash.js +0 -50
  74. package/lib/web/build-tools.js +0 -138
  75. package/lib/web/firebaseDeploy.js +0 -195
  76. package/lib/web/firebaseServe.js +0 -116
  77. package/lib/web/getfbcfg.js +0 -25
  78. package/lib/web/getjson.js +0 -70
  79. package/lib/web/overwhelm.js +0 -447
  80. package/lib/web/push-my-chart.js +0 -18
  81. package/lib/web/refresh-npm-token.js +0 -135
  82. package/lib/web/tag-release.js +0 -681
  83. package/lib/web/unleash.js +0 -50
  84. package/src/helm-charts/prom-operator/rules/awesome-base/elasticsearch-rules.yaml +0 -219
  85. package/src/helm-charts/prom-operator/rules/awesome-base/google-cadvisor.yaml +0 -108
  86. package/src/helm-charts/prom-operator/rules/awesome-base/kubestate-exporter.yaml +0 -394
  87. package/src/helm-charts/prom-operator/rules/awesome-base/prometheus-rules.yaml +0 -318
  88. package/src/helm-charts/prom-operator/rules/awesome-base/redis-rules.yaml +0 -142
  89. package/src/helm-charts/prom-operator/rules/awesome-base/traefik-rules.yaml +0 -43
  90. 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
+