@leverege/build-tools 2.97.1 → 2.98.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.
- package/.vscode/launch.json +30 -0
- package/package.json +5 -4
- package/src/Utils.mjs +3 -1
- package/src/helm-charts/prom-operator/helmup.plugin +1 -1
- package/src/init-my-chart/{leaf-chart-templates/Chart.yaml.hbs → Chart.yaml.hbs} +4 -4
- package/src/init-my-chart/Chartwright.mjs +132 -49
- package/src/init-my-chart/init-my-chart.mjs +25 -30
- package/src/init-my-chart/leaf-chart-templates/values.schema.json +213 -254
- package/src/init-my-chart/{leaf-chart-templates/values.yaml.hbs → values.yaml.hbs} +7 -32
- package/src/init-my-chart/init-my-chart-v1.mjs +0 -124
|
@@ -1,35 +1,50 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"title": "Leverege Base Helm Chart Values",
|
|
4
|
+
"description": "Leverege base Helm chart values schema. Ordering is for readability only; JSON Schema does not require ordering.",
|
|
4
5
|
"type": "object",
|
|
5
6
|
"additionalProperties": true,
|
|
6
7
|
|
|
7
8
|
"properties": {
|
|
8
9
|
"nameOverride": {
|
|
9
10
|
"type": "string",
|
|
10
|
-
"description": "Optional release name override."
|
|
11
|
+
"description": "Identity: Optional release name override."
|
|
11
12
|
},
|
|
13
|
+
|
|
12
14
|
"fullnameOverride": {
|
|
13
15
|
"type": "string",
|
|
14
|
-
"description": "Optional full name override."
|
|
16
|
+
"description": "Identity: Optional full name override."
|
|
17
|
+
},
|
|
18
|
+
|
|
19
|
+
"partOf": {
|
|
20
|
+
"type": ["string", "null"],
|
|
21
|
+
"description": "Identity: Optional app.kubernetes.io/part-of label."
|
|
15
22
|
},
|
|
16
23
|
|
|
17
24
|
"image": {
|
|
18
25
|
"type": "object",
|
|
19
|
-
"description": "Image configuration for the primary workload container.",
|
|
26
|
+
"description": "Runtime: Image configuration for the primary workload container.",
|
|
20
27
|
"additionalProperties": true,
|
|
21
28
|
"properties": {
|
|
22
|
-
"registry": { "type": "string" },
|
|
23
|
-
"repository": { "type": "string" },
|
|
24
|
-
"tag": { "type": "string" },
|
|
25
|
-
"pullPolicy": {
|
|
26
|
-
|
|
29
|
+
"registry": { "type": "string", "description": "Runtime: Image registry (e.g., Artifact Registry host/path)." },
|
|
30
|
+
"repository": { "type": "string", "description": "Runtime: Image repository/name (optional depending on chart usage)." },
|
|
31
|
+
"tag": { "type": "string", "description": "Runtime: Image tag. Typically defaults to Chart.AppVersion in templates." },
|
|
32
|
+
"pullPolicy": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"enum": ["Always", "IfNotPresent", "Never"],
|
|
35
|
+
"description": "Runtime: Kubernetes imagePullPolicy."
|
|
36
|
+
},
|
|
37
|
+
"pullSecrets": {
|
|
38
|
+
"type": "array",
|
|
39
|
+
"description": "Runtime: Optional imagePullSecrets list.",
|
|
40
|
+
"items": { "type": "string" }
|
|
41
|
+
}
|
|
27
42
|
}
|
|
28
43
|
},
|
|
29
44
|
|
|
30
45
|
"config": {
|
|
31
46
|
"type": "object",
|
|
32
|
-
"description": "Application configuration
|
|
47
|
+
"description": "Runtime: Application configuration rendered into a ConfigMap. All values are treated as strings; additional keys are allowed.",
|
|
33
48
|
"additionalProperties": { "type": "string" },
|
|
34
49
|
"properties": {
|
|
35
50
|
"NODE_OPTIONS": { "type": "string" },
|
|
@@ -42,51 +57,42 @@
|
|
|
42
57
|
|
|
43
58
|
"container": {
|
|
44
59
|
"type": "object",
|
|
45
|
-
"description": "Primary container
|
|
60
|
+
"description": "Pod: Primary container knobs. Safe-walked in templates (optional block).",
|
|
46
61
|
"additionalProperties": true,
|
|
47
62
|
"properties": {
|
|
48
63
|
"image": {
|
|
49
64
|
"type": "string",
|
|
50
|
-
"description": "Full image reference to override the default <registry>/<chartName>:<tag>."
|
|
65
|
+
"description": "Pod: Full image reference to override the default <registry>/<chartName>:<tag>."
|
|
51
66
|
},
|
|
52
67
|
"command": {
|
|
53
68
|
"type": "array",
|
|
69
|
+
"description": "Pod: Override container entrypoint (command).",
|
|
54
70
|
"items": { "type": "string" }
|
|
55
71
|
},
|
|
56
72
|
"args": {
|
|
57
73
|
"type": "array",
|
|
74
|
+
"description": "Pod: Override container args.",
|
|
58
75
|
"items": { "type": "string" }
|
|
59
76
|
},
|
|
60
77
|
"env": {
|
|
61
78
|
"type": "array",
|
|
79
|
+
"description": "Pod: Extra env vars for the main container.",
|
|
62
80
|
"items": { "$ref": "#/definitions/envVar" }
|
|
63
81
|
},
|
|
64
82
|
"envFromExtra": {
|
|
65
83
|
"type": "array",
|
|
66
|
-
"description": "Additional envFrom entries
|
|
84
|
+
"description": "Pod: Additional envFrom entries appended after default-configs and <fullname>-configs.",
|
|
67
85
|
"items": { "$ref": "#/definitions/envFromSource" }
|
|
68
86
|
},
|
|
69
87
|
"extraPorts": {
|
|
70
88
|
"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
|
-
},
|
|
89
|
+
"description": "Pod: Additional container ports appended after the base deploymentPorts helper. Uses containerPort objects (NOT service ports).",
|
|
90
|
+
"items": { "$ref": "#/definitions/containerPortObject" },
|
|
85
91
|
"default": []
|
|
86
92
|
},
|
|
87
93
|
"extraVolumeMounts": {
|
|
88
94
|
"type": "array",
|
|
89
|
-
"description": "Additional volume mounts for the primary container (paired with extraVolumes).",
|
|
95
|
+
"description": "Pod: Additional volume mounts for the primary container (paired with extraVolumes).",
|
|
90
96
|
"items": { "type": "object", "additionalProperties": true },
|
|
91
97
|
"default": []
|
|
92
98
|
}
|
|
@@ -95,13 +101,13 @@
|
|
|
95
101
|
|
|
96
102
|
"extraVolumes": {
|
|
97
103
|
"type": "array",
|
|
98
|
-
"description": "
|
|
104
|
+
"description": "Pod: Extra pod volumes shared by main container and sidecars. Objects are passed through to spec.volumes.",
|
|
99
105
|
"items": {
|
|
100
106
|
"type": "object",
|
|
101
107
|
"additionalProperties": true,
|
|
102
108
|
"required": ["name"],
|
|
103
109
|
"properties": {
|
|
104
|
-
"name": { "type": "string" }
|
|
110
|
+
"name": { "type": "string", "description": "Pod: Volume name." }
|
|
105
111
|
}
|
|
106
112
|
},
|
|
107
113
|
"default": []
|
|
@@ -109,7 +115,7 @@
|
|
|
109
115
|
|
|
110
116
|
"sidecars": {
|
|
111
117
|
"type": "array",
|
|
112
|
-
"description": "Additional containers
|
|
118
|
+
"description": "Pod: Additional containers appended after the primary container.",
|
|
113
119
|
"items": {
|
|
114
120
|
"type": "object",
|
|
115
121
|
"additionalProperties": true,
|
|
@@ -131,33 +137,15 @@
|
|
|
131
137
|
},
|
|
132
138
|
"ports": {
|
|
133
139
|
"type": "array",
|
|
134
|
-
"
|
|
135
|
-
|
|
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
|
-
}
|
|
140
|
+
"description": "Pod: Sidecar container ports (containerPort objects).",
|
|
141
|
+
"items": { "$ref": "#/definitions/containerPortObject" }
|
|
151
142
|
},
|
|
152
143
|
"resources": {
|
|
153
144
|
"$ref": "#/definitions/resourceRequirements"
|
|
154
145
|
},
|
|
155
146
|
"volumeMounts": {
|
|
156
147
|
"type": "array",
|
|
157
|
-
"items": {
|
|
158
|
-
"type": "object",
|
|
159
|
-
"additionalProperties": true
|
|
160
|
-
}
|
|
148
|
+
"items": { "type": "object", "additionalProperties": true }
|
|
161
149
|
}
|
|
162
150
|
}
|
|
163
151
|
},
|
|
@@ -166,60 +154,71 @@
|
|
|
166
154
|
|
|
167
155
|
"modelInit": {
|
|
168
156
|
"type": "object",
|
|
169
|
-
"description": "Optional model init container stanza (
|
|
157
|
+
"description": "Pod: Optional model init container stanza. enabled is required so templates can treat bools as authoritative (no implicit defaulting).",
|
|
170
158
|
"additionalProperties": true,
|
|
159
|
+
"required": ["enabled"],
|
|
171
160
|
"properties": {
|
|
172
161
|
"enabled": { "type": "boolean" },
|
|
173
162
|
"image": {
|
|
174
163
|
"type": "string",
|
|
175
164
|
"description": "Init container image in repo:tag form."
|
|
176
165
|
},
|
|
177
|
-
"command": {
|
|
178
|
-
|
|
179
|
-
|
|
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
|
-
}
|
|
166
|
+
"command": { "type": "array", "items": { "type": "string" } },
|
|
167
|
+
"args": { "type": "array", "items": { "type": "string" } },
|
|
168
|
+
"env": { "type": "array", "items": { "$ref": "#/definitions/envVar" } },
|
|
169
|
+
"resources": { "type": "object", "additionalProperties": true }
|
|
193
170
|
}
|
|
194
171
|
},
|
|
195
172
|
|
|
196
|
-
"
|
|
173
|
+
"securityContext": {
|
|
197
174
|
"type": "object",
|
|
198
|
-
"description": "
|
|
175
|
+
"description": "Pod: Security context options. readOnlyRootFs required so authoritative values.yaml works for booleans.",
|
|
199
176
|
"additionalProperties": true,
|
|
177
|
+
"required": ["readOnlyRootFs"],
|
|
200
178
|
"properties": {
|
|
201
|
-
"
|
|
179
|
+
"readOnlyRootFs": { "type": "boolean" }
|
|
202
180
|
}
|
|
203
181
|
},
|
|
204
182
|
|
|
205
|
-
"
|
|
206
|
-
"type":
|
|
207
|
-
"description": "
|
|
183
|
+
"probes": {
|
|
184
|
+
"type": "object",
|
|
185
|
+
"description": "Pod: Liveness/readiness probe configuration. enabled required so authoritative values.yaml works for booleans.",
|
|
186
|
+
"additionalProperties": true,
|
|
187
|
+
"required": ["enabled"],
|
|
188
|
+
"properties": {
|
|
189
|
+
"enabled": { "type": "boolean" },
|
|
190
|
+
"livenessProbe": { "type": "object", "additionalProperties": true },
|
|
191
|
+
"readinessProbe": { "type": "object", "additionalProperties": true }
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
|
|
195
|
+
"resources": {
|
|
196
|
+
"$ref": "#/definitions/resourceRequirements",
|
|
197
|
+
"description": "Runtime: Resource requests/limits for the main container."
|
|
198
|
+
},
|
|
199
|
+
|
|
200
|
+
"metrics": {
|
|
201
|
+
"type": "object",
|
|
202
|
+
"description": "Networking: Metrics naming (used by helpers).",
|
|
203
|
+
"additionalProperties": true,
|
|
204
|
+
"properties": {
|
|
205
|
+
"portName": { "type": "string" }
|
|
206
|
+
}
|
|
208
207
|
},
|
|
209
208
|
|
|
210
209
|
"deploymentPorts": {
|
|
211
210
|
"type": "object",
|
|
212
|
-
"description": "
|
|
211
|
+
"description": "Networking: Deployment/Pod container ports. IMPORTANT: uses containerPort objects (name + containerPort), not Service port objects.\n- override: if non-empty, replaces base defaults.\n- extra: appended to base defaults when override is empty.",
|
|
213
212
|
"additionalProperties": false,
|
|
214
213
|
"properties": {
|
|
215
214
|
"override": {
|
|
216
215
|
"type": "array",
|
|
217
|
-
"items": { "$ref": "#/definitions/
|
|
216
|
+
"items": { "$ref": "#/definitions/containerPortObject" },
|
|
218
217
|
"default": []
|
|
219
218
|
},
|
|
220
219
|
"extra": {
|
|
221
220
|
"type": "array",
|
|
222
|
-
"items": { "$ref": "#/definitions/
|
|
221
|
+
"items": { "$ref": "#/definitions/containerPortObject" },
|
|
223
222
|
"default": []
|
|
224
223
|
}
|
|
225
224
|
}
|
|
@@ -227,7 +226,7 @@
|
|
|
227
226
|
|
|
228
227
|
"servicePorts": {
|
|
229
228
|
"type": "object",
|
|
230
|
-
"description": "
|
|
229
|
+
"description": "Networking: Service ports. IMPORTANT: uses Service port objects (name + port + optional targetPort).",
|
|
231
230
|
"additionalProperties": false,
|
|
232
231
|
"properties": {
|
|
233
232
|
"override": {
|
|
@@ -245,8 +244,9 @@
|
|
|
245
244
|
|
|
246
245
|
"service": {
|
|
247
246
|
"type": "object",
|
|
248
|
-
"description": "Service configuration.",
|
|
247
|
+
"description": "Networking: Service configuration. preemptible required so it never implicitly defaults to true.",
|
|
249
248
|
"additionalProperties": true,
|
|
249
|
+
"required": ["preemptible"],
|
|
250
250
|
"properties": {
|
|
251
251
|
"type": {
|
|
252
252
|
"type": "string",
|
|
@@ -264,65 +264,77 @@
|
|
|
264
264
|
}
|
|
265
265
|
},
|
|
266
266
|
|
|
267
|
-
"
|
|
267
|
+
"serviceAccount": {
|
|
268
268
|
"type": "object",
|
|
269
|
-
"description": "
|
|
269
|
+
"description": "RBAC: ServiceAccount options (safe-walked).",
|
|
270
270
|
"additionalProperties": true,
|
|
271
271
|
"properties": {
|
|
272
|
-
"
|
|
273
|
-
|
|
274
|
-
|
|
272
|
+
"create": { "type": "boolean" },
|
|
273
|
+
"name": { "type": "string" },
|
|
274
|
+
"annotations": {
|
|
275
|
+
"type": "object",
|
|
276
|
+
"additionalProperties": { "type": "string" }
|
|
275
277
|
}
|
|
276
278
|
}
|
|
277
279
|
},
|
|
278
280
|
|
|
279
|
-
"
|
|
281
|
+
"loadbalancer": {
|
|
280
282
|
"type": "object",
|
|
281
|
-
"description": "
|
|
283
|
+
"description": "Networking: LoadBalancer-specific options, safe-walked.",
|
|
282
284
|
"additionalProperties": true,
|
|
283
285
|
"properties": {
|
|
284
|
-
"
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
"type": "object",
|
|
288
|
-
"additionalProperties": { "type": "string" }
|
|
286
|
+
"ip": {
|
|
287
|
+
"type": "string",
|
|
288
|
+
"description": "Static IP address for LoadBalancer. Use empty string to unset."
|
|
289
289
|
}
|
|
290
290
|
}
|
|
291
291
|
},
|
|
292
292
|
|
|
293
|
-
"
|
|
293
|
+
"udploadbalancer": {
|
|
294
294
|
"type": "object",
|
|
295
|
-
"description": "
|
|
295
|
+
"description": "Networking: UDP LoadBalancer options for legacy leaves.",
|
|
296
296
|
"additionalProperties": true,
|
|
297
297
|
"properties": {
|
|
298
|
-
"
|
|
298
|
+
"ip": {
|
|
299
|
+
"type": "string",
|
|
300
|
+
"description": "Static IP address for UDP LoadBalancer. Use empty string to unset."
|
|
301
|
+
}
|
|
299
302
|
}
|
|
300
303
|
},
|
|
301
304
|
|
|
302
|
-
"
|
|
305
|
+
"ingressRoute": {
|
|
303
306
|
"type": "object",
|
|
304
|
-
"description": "
|
|
307
|
+
"description": "Networking: Traefik IngressRoute options (if used).",
|
|
305
308
|
"additionalProperties": true,
|
|
306
309
|
"properties": {
|
|
307
|
-
"
|
|
308
|
-
"livenessProbe": { "type": "object", "additionalProperties": true },
|
|
309
|
-
"readinessProbe": { "type": "object", "additionalProperties": true }
|
|
310
|
+
"host": { "type": "string" }
|
|
310
311
|
}
|
|
311
312
|
},
|
|
312
313
|
|
|
313
|
-
"
|
|
314
|
+
"serviceMonitor": {
|
|
314
315
|
"type": "object",
|
|
315
|
-
"description": "
|
|
316
|
+
"description": "Observability: Prometheus ServiceMonitor options.",
|
|
316
317
|
"additionalProperties": true,
|
|
317
318
|
"properties": {
|
|
318
|
-
"
|
|
319
|
+
"enabled": { "type": "boolean" },
|
|
320
|
+
"interval": { "type": "string", "description": "Scrape interval (e.g., 60s)." },
|
|
321
|
+
"namespace": { "type": "string", "description": "Namespace Prometheus scrapes targets from." },
|
|
322
|
+
"labels": { "type": "object", "additionalProperties": { "type": "string" } },
|
|
323
|
+
"annotations": { "type": "object", "additionalProperties": { "type": "string" } },
|
|
324
|
+
"endpoints": {
|
|
325
|
+
"type": "array",
|
|
326
|
+
"description": "Full override for endpoints. Empty or missing port will be filled with metrics port name helper.",
|
|
327
|
+
"items": { "$ref": "#/definitions/endpointObject" },
|
|
328
|
+
"default": []
|
|
329
|
+
}
|
|
319
330
|
}
|
|
320
331
|
},
|
|
321
332
|
|
|
322
333
|
"autoscaling": {
|
|
323
334
|
"type": "object",
|
|
324
|
-
"description": "HorizontalPodAutoscaler options.
|
|
335
|
+
"description": "Scaling: HorizontalPodAutoscaler options. enabled required so bool is authoritative.",
|
|
325
336
|
"additionalProperties": true,
|
|
337
|
+
"required": ["enabled"],
|
|
326
338
|
"properties": {
|
|
327
339
|
"enabled": { "type": "boolean" },
|
|
328
340
|
"minReplicas": { "type": "integer", "minimum": 0 },
|
|
@@ -336,135 +348,152 @@
|
|
|
336
348
|
}
|
|
337
349
|
},
|
|
338
350
|
|
|
351
|
+
"staticscaling": {
|
|
352
|
+
"type": "object",
|
|
353
|
+
"description": "Scaling: Static replica scaling block (used when autoscaling.enabled=false).",
|
|
354
|
+
"additionalProperties": true,
|
|
355
|
+
"properties": {
|
|
356
|
+
"replicas": { "type": "integer", "minimum": 0 }
|
|
357
|
+
}
|
|
358
|
+
},
|
|
359
|
+
|
|
339
360
|
"pdb": {
|
|
340
361
|
"type": "object",
|
|
341
|
-
"description": "PodDisruptionBudget options. Prefer enabled; create is deprecated.",
|
|
362
|
+
"description": "Availability: PodDisruptionBudget options. Prefer enabled; create is deprecated.",
|
|
342
363
|
"additionalProperties": true,
|
|
343
364
|
"properties": {
|
|
344
365
|
"enabled": { "type": "boolean" },
|
|
345
366
|
"create": { "type": "boolean", "deprecated": true },
|
|
346
367
|
"minAvailable": {
|
|
347
|
-
"anyOf": [
|
|
348
|
-
{ "type": "integer", "minimum": 0 },
|
|
349
|
-
{ "type": "string" }
|
|
350
|
-
]
|
|
368
|
+
"anyOf": [{ "type": "integer", "minimum": 0 }, { "type": "string" }]
|
|
351
369
|
},
|
|
352
370
|
"maxUnavailable": {
|
|
353
|
-
"anyOf": [
|
|
354
|
-
{ "type": "integer", "minimum": 0 },
|
|
355
|
-
{ "type": "string" }
|
|
356
|
-
]
|
|
371
|
+
"anyOf": [{ "type": "integer", "minimum": 0 }, { "type": "string" }]
|
|
357
372
|
}
|
|
358
373
|
}
|
|
359
374
|
},
|
|
360
375
|
|
|
361
|
-
"
|
|
376
|
+
"affinity": {
|
|
362
377
|
"type": "object",
|
|
363
|
-
"description": "
|
|
378
|
+
"description": "Scheduling: Pod affinity/anti-affinity.",
|
|
364
379
|
"additionalProperties": true,
|
|
365
|
-
"
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
380
|
+
"default": {}
|
|
381
|
+
},
|
|
382
|
+
|
|
383
|
+
"nodeSelector": {
|
|
384
|
+
"type": "object",
|
|
385
|
+
"description": "Scheduling: Pod nodeSelector map.",
|
|
386
|
+
"additionalProperties": { "type": "string" },
|
|
387
|
+
"default": {}
|
|
388
|
+
},
|
|
389
|
+
|
|
390
|
+
"tolerations": {
|
|
391
|
+
"type": "array",
|
|
392
|
+
"description": "Scheduling: Pod tolerations.",
|
|
393
|
+
"items": { "$ref": "#/definitions/toleration" },
|
|
394
|
+
"default": []
|
|
378
395
|
},
|
|
379
396
|
|
|
380
397
|
"redis": {
|
|
381
398
|
"type": "object",
|
|
382
|
-
"description": "Optional
|
|
399
|
+
"description": "Optional: Redis integration toggle. enabled required so bool is authoritative.",
|
|
383
400
|
"additionalProperties": true,
|
|
401
|
+
"required": ["enabled"],
|
|
384
402
|
"properties": {
|
|
385
403
|
"enabled": { "type": "boolean" }
|
|
386
404
|
}
|
|
387
405
|
},
|
|
388
406
|
|
|
407
|
+
"canary": {
|
|
408
|
+
"type": "object",
|
|
409
|
+
"description": "Optional: Canary rollout config.",
|
|
410
|
+
"additionalProperties": true,
|
|
411
|
+
"default": {}
|
|
412
|
+
},
|
|
413
|
+
|
|
389
414
|
"extraObjects": {
|
|
390
415
|
"type": "array",
|
|
391
|
-
"description": "Arbitrary Kubernetes objects emitted verbatim. Empty list must render nothing.",
|
|
416
|
+
"description": "Escape hatch: Arbitrary Kubernetes objects emitted verbatim. Empty list must render nothing.",
|
|
392
417
|
"items": { "$ref": "#/definitions/k8sObject" },
|
|
393
418
|
"default": []
|
|
394
419
|
},
|
|
395
420
|
|
|
396
421
|
"global": {
|
|
397
422
|
"type": "object",
|
|
398
|
-
"description": "Global values
|
|
423
|
+
"description": "Global values passed through from umbrella charts (if present).",
|
|
399
424
|
"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
|
-
},
|
|
425
|
+
}
|
|
426
|
+
},
|
|
413
427
|
|
|
414
|
-
|
|
428
|
+
"definitions": {
|
|
429
|
+
"containerPortObject": {
|
|
415
430
|
"type": "object",
|
|
416
|
-
"description": "
|
|
431
|
+
"description": "Kubernetes container port object (Deployment/Pod). Use this for deploymentPorts.* and container.extraPorts.",
|
|
417
432
|
"additionalProperties": true,
|
|
418
|
-
"
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
"additionalProperties": { "type": "string" },
|
|
425
|
-
"default": {}
|
|
433
|
+
"required": ["name", "containerPort"],
|
|
434
|
+
"properties": {
|
|
435
|
+
"name": { "type": "string" },
|
|
436
|
+
"containerPort": { "type": "integer", "minimum": 1, "maximum": 65535 },
|
|
437
|
+
"protocol": { "type": "string", "enum": ["TCP", "UDP", "SCTP"], "default": "TCP" }
|
|
438
|
+
}
|
|
426
439
|
},
|
|
427
440
|
|
|
428
|
-
"
|
|
441
|
+
"portObject": {
|
|
429
442
|
"type": "object",
|
|
430
|
-
"description": "
|
|
443
|
+
"description": "Kubernetes Service port object. Use this for servicePorts.* (port/targetPort).",
|
|
431
444
|
"additionalProperties": true,
|
|
445
|
+
"required": ["name", "port"],
|
|
432
446
|
"properties": {
|
|
433
|
-
"
|
|
447
|
+
"name": {
|
|
448
|
+
"type": "string",
|
|
449
|
+
"description": "Port name. metrics port name helper defaults to 'metrics' if not overridden."
|
|
450
|
+
},
|
|
451
|
+
"port": { "type": "integer", "minimum": 1, "maximum": 65535 },
|
|
452
|
+
"targetPort": {
|
|
453
|
+
"anyOf": [{ "type": "integer", "minimum": 1, "maximum": 65535 }, { "type": "string" }]
|
|
454
|
+
},
|
|
455
|
+
"protocol": { "type": "string", "enum": ["TCP", "UDP", "SCTP"], "default": "TCP" }
|
|
434
456
|
}
|
|
435
457
|
},
|
|
436
458
|
|
|
437
|
-
"
|
|
459
|
+
"envVar": {
|
|
438
460
|
"type": "object",
|
|
439
|
-
"description": "
|
|
461
|
+
"description": "Kubernetes env var entry.",
|
|
462
|
+
"required": ["name"],
|
|
440
463
|
"additionalProperties": true,
|
|
441
|
-
"
|
|
464
|
+
"properties": {
|
|
465
|
+
"name": { "type": "string" },
|
|
466
|
+
"value": { "type": "string" },
|
|
467
|
+
"valueFrom": { "type": "object", "additionalProperties": true }
|
|
468
|
+
}
|
|
442
469
|
},
|
|
443
470
|
|
|
444
|
-
"
|
|
471
|
+
"envFromSource": {
|
|
445
472
|
"type": "object",
|
|
446
|
-
"description": "
|
|
473
|
+
"description": "Kubernetes envFrom entry (ConfigMapRef / SecretRef).",
|
|
447
474
|
"additionalProperties": true,
|
|
448
475
|
"properties": {
|
|
449
|
-
"
|
|
450
|
-
|
|
451
|
-
"description": "Static IP address for UDP LoadBalancer. Use empty string to unset."
|
|
452
|
-
}
|
|
476
|
+
"configMapRef": { "type": "object", "additionalProperties": true },
|
|
477
|
+
"secretRef": { "type": "object", "additionalProperties": true }
|
|
453
478
|
}
|
|
454
|
-
}
|
|
455
|
-
},
|
|
479
|
+
},
|
|
456
480
|
|
|
457
|
-
|
|
458
|
-
"imageRef": {
|
|
481
|
+
"endpointObject": {
|
|
459
482
|
"type": "object",
|
|
483
|
+
"description": "Prometheus ServiceMonitor endpoint object.",
|
|
460
484
|
"additionalProperties": true,
|
|
461
485
|
"properties": {
|
|
462
|
-
"
|
|
463
|
-
"tag": { "type": "string" },
|
|
464
|
-
"pullPolicy": {
|
|
486
|
+
"port": {
|
|
465
487
|
"type": "string",
|
|
466
|
-
"
|
|
467
|
-
}
|
|
488
|
+
"description": "May be empty string; base will fill with metrics port name helper."
|
|
489
|
+
},
|
|
490
|
+
"path": { "type": "string", "default": "/metrics" },
|
|
491
|
+
"interval": { "type": "string" },
|
|
492
|
+
"scrapeTimeout": { "type": "string" },
|
|
493
|
+
"scheme": { "type": "string", "enum": ["http", "https"] },
|
|
494
|
+
"tlsConfig": { "type": "object", "additionalProperties": true },
|
|
495
|
+
"relabelings": { "type": "array", "items": { "type": "object", "additionalProperties": true } },
|
|
496
|
+
"metricRelabelings": { "type": "array", "items": { "type": "object", "additionalProperties": true } }
|
|
468
497
|
}
|
|
469
498
|
},
|
|
470
499
|
|
|
@@ -510,90 +539,27 @@
|
|
|
510
539
|
"additionalProperties": true,
|
|
511
540
|
"properties": {
|
|
512
541
|
"key": { "type": "string" },
|
|
513
|
-
"operator": {
|
|
514
|
-
"type": "string",
|
|
515
|
-
"enum": ["Exists", "Equal"]
|
|
516
|
-
},
|
|
542
|
+
"operator": { "type": "string", "enum": ["Exists", "Equal"] },
|
|
517
543
|
"value": { "type": "string" },
|
|
518
|
-
"effect": {
|
|
519
|
-
"type": "string",
|
|
520
|
-
"enum": ["NoSchedule", "PreferNoSchedule", "NoExecute"]
|
|
521
|
-
},
|
|
544
|
+
"effect": { "type": "string", "enum": ["NoSchedule", "PreferNoSchedule", "NoExecute"] },
|
|
522
545
|
"tolerationSeconds": { "type": "integer", "minimum": 0 }
|
|
523
546
|
}
|
|
524
547
|
},
|
|
525
548
|
|
|
526
|
-
"
|
|
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": {
|
|
549
|
+
"imageRef": {
|
|
586
550
|
"type": "object",
|
|
551
|
+
"description": "Reusable image reference (not currently used by top-level image block).",
|
|
587
552
|
"additionalProperties": true,
|
|
588
553
|
"properties": {
|
|
589
|
-
"
|
|
590
|
-
"
|
|
554
|
+
"repository": { "type": "string" },
|
|
555
|
+
"tag": { "type": "string" },
|
|
556
|
+
"pullPolicy": { "type": "string", "enum": ["Always", "IfNotPresent", "Never"] }
|
|
591
557
|
}
|
|
592
558
|
},
|
|
593
559
|
|
|
594
560
|
"k8sObject": {
|
|
595
561
|
"type": "object",
|
|
596
|
-
"description": "Loose schema for arbitrary Kubernetes objects.",
|
|
562
|
+
"description": "Loose schema for arbitrary Kubernetes objects (escape hatch).",
|
|
597
563
|
"required": ["apiVersion", "kind", "metadata"],
|
|
598
564
|
"additionalProperties": true,
|
|
599
565
|
"properties": {
|
|
@@ -606,18 +572,11 @@
|
|
|
606
572
|
"properties": {
|
|
607
573
|
"name": { "type": "string" },
|
|
608
574
|
"namespace": { "type": "string" },
|
|
609
|
-
"labels": {
|
|
610
|
-
|
|
611
|
-
"additionalProperties": { "type": "string" }
|
|
612
|
-
},
|
|
613
|
-
"annotations": {
|
|
614
|
-
"type": "object",
|
|
615
|
-
"additionalProperties": { "type": "string" }
|
|
616
|
-
}
|
|
575
|
+
"labels": { "type": "object", "additionalProperties": { "type": "string" } },
|
|
576
|
+
"annotations": { "type": "object", "additionalProperties": { "type": "string" } }
|
|
617
577
|
}
|
|
618
578
|
}
|
|
619
579
|
}
|
|
620
580
|
}
|
|
621
581
|
}
|
|
622
582
|
}
|
|
623
|
-
|