@sap/cds-dk 8.5.0 → 8.6.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 (57) hide show
  1. package/CHANGELOG.md +36 -4
  2. package/bin/cds.js +48 -28
  3. package/bin/deploy/index.js +9 -11
  4. package/bin/import.js +6 -2
  5. package/bin/repl.js +86 -14
  6. package/bin/watch.js +1 -1
  7. package/lib/bind/cfKeyProvider.js +4 -3
  8. package/lib/bind/index.js +1 -1
  9. package/lib/build/buildTaskEngine.js +4 -4
  10. package/lib/build/plugins/helm/files/subcharts/content-deployment/Chart.yaml +3 -1
  11. package/lib/build/plugins/helm/files/subcharts/content-deployment/templates/_helpers.tpl +3 -5
  12. package/lib/build/plugins/helm/files/subcharts/content-deployment/values.schema.json +1 -16
  13. package/lib/build/plugins/helm/files/subcharts/content-deployment/values.yaml +6 -7
  14. package/lib/build/plugins/helm/files/subcharts/web-application/Chart.yaml +3 -1
  15. package/lib/build/plugins/helm/files/subcharts/web-application/templates/_helpers.tpl +25 -5
  16. package/lib/build/plugins/helm/files/subcharts/web-application/templates/api-rule.yaml +13 -4
  17. package/lib/build/plugins/helm/files/subcharts/web-application/templates/service-binding.yaml +6 -1
  18. package/lib/build/plugins/helm/files/subcharts/web-application/values.schema.json +55 -48
  19. package/lib/build/plugins/helm/files/subcharts/web-application/values.yaml +19 -7
  20. package/lib/cds.js +10 -2
  21. package/lib/import/common.js +2 -2
  22. package/lib/init/constants.js +3 -1
  23. package/lib/init/index.js +10 -0
  24. package/lib/init/merge.js +1 -1
  25. package/lib/init/projectReader.js +1 -0
  26. package/lib/init/registries/mta.js +7 -1
  27. package/lib/init/template/ams/files/Chart.yaml.hbs +4 -0
  28. package/lib/init/template/ams/files/containerize.yaml.hbs +20 -0
  29. package/lib/init/template/ams/files/manifest.yml.hbs +24 -0
  30. package/lib/init/template/ams/files/mta.yaml.hbs +31 -0
  31. package/lib/init/template/ams/files/package.json.hbs +10 -0
  32. package/lib/init/template/ams/files/values.yaml.hbs +13 -0
  33. package/lib/init/template/ams/index.js +80 -0
  34. package/lib/init/template/approuter/files/mta.yaml.hbs +6 -4
  35. package/lib/init/template/approuter/files/package.json +1 -1
  36. package/lib/init/template/helm/files/values.schema.json +0 -2079
  37. package/lib/init/template/html5-repo/files/xs-app.json.hbs +1 -0
  38. package/lib/init/template/html5-repo/index.js +2 -0
  39. package/lib/init/template/http/index.js +10 -8
  40. package/lib/init/template/ias/files/Chart.yaml.hbs +4 -0
  41. package/lib/init/template/ias/files/manifest.yml.hbs +8 -0
  42. package/lib/init/template/ias/files/mta.yaml.hbs +61 -0
  43. package/lib/init/template/ias/files/package.json.hbs +22 -0
  44. package/lib/init/template/ias/files/services-manifest.yml.hbs +6 -0
  45. package/lib/init/template/ias/files/values.yaml.hbs +52 -0
  46. package/lib/init/template/ias/index.js +71 -0
  47. package/lib/init/template/mta/files/mta.yaml.hbs +15 -1
  48. package/lib/init/template/multitenancy/files/mta.yaml.hbs +38 -5
  49. package/lib/init/template/multitenancy/files/package.sidecar.json.hbs +5 -2
  50. package/lib/init/template/multitenancy/index.js +40 -31
  51. package/lib/init/template/nodejs/files/package.json.hbs +1 -1
  52. package/lib/init/template/typescript/files/package.json +1 -1
  53. package/lib/init/template/xsuaa/index.js +1 -1
  54. package/lib/util/cf.js +4 -4
  55. package/lib/util/command.js +1 -9
  56. package/npm-shrinkwrap.json +140 -96
  57. package/package.json +1 -1
@@ -62,68 +62,6 @@
62
62
  "$ref": "#/definitions/ImagePullPolicy"
63
63
  }
64
64
  }
65
- },
66
- "srv": {
67
- "$id": "#/properties/srv",
68
- "description": "CAP Application",
69
- "$ref": "#/definitions/WebApplication"
70
- },
71
- "sidecar": {
72
- "$id": "#/properties/sidecar",
73
- "description": "MTXS Sidecar",
74
- "$ref": "#/definitions/WebApplication"
75
- },
76
- "approuter": {
77
- "$id": "#/properties/approuter",
78
- "$ref": "#/definitions/WebApplication"
79
- },
80
- "hana-deployer": {
81
- "$id": "#/properties/hana-deployer",
82
- "$ref": "#/definitions/ContentDeployment"
83
- },
84
- "html5-apps-deployer": {
85
- "$id": "#/properties/html5-apps-deployer",
86
- "$ref": "#/definitions/ContentDeployment"
87
- },
88
- "event-mesh": {
89
- "$id": "#/properties/event-mesh",
90
- "description": "Service Instance",
91
- "$ref": "#/definitions/ServiceInstance"
92
- },
93
- "html5-apps-repo-host": {
94
- "$id": "#/properties/html5-apps-repo-host",
95
- "description": "Service Instance",
96
- "$ref": "#/definitions/ServiceInstance"
97
- },
98
- "html5-apps-repo-runtime": {
99
- "$id": "#/properties/html5-apps-repo-host",
100
- "description": "Service Instance",
101
- "$ref": "#/definitions/ServiceInstance"
102
- },
103
- "xsuaa": {
104
- "$id": "#/properties/xsuaa",
105
- "description": "Service Instance",
106
- "$ref": "#/definitions/ServiceInstance"
107
- },
108
- "destination": {
109
- "$id": "#/properties/destination",
110
- "description": "Service Instance",
111
- "$ref": "#/definitions/ServiceInstance"
112
- },
113
- "hana": {
114
- "$id": "#/properties/hana",
115
- "description": "Service Instance",
116
- "$ref": "#/definitions/ServiceInstance"
117
- },
118
- "saas-registry": {
119
- "$id": "#/properties/saas-registry",
120
- "description": "Service Instance",
121
- "$ref": "#/definitions/ServiceInstance"
122
- },
123
- "service-manager": {
124
- "$id": "#/properties/service-manager",
125
- "description": "Service Instance",
126
- "$ref": "#/definitions/ServiceInstance"
127
65
  }
128
66
  },
129
67
  "definitions": {
@@ -151,2023 +89,6 @@
151
89
  "IfNotPresent",
152
90
  "Never"
153
91
  ]
154
- },
155
- "ContentDeployment": {
156
- "type": "object",
157
- "required": [
158
- "image",
159
- "bindings"
160
- ],
161
- "additionalProperties": false,
162
- "properties": {
163
- "global": {
164
- "$id": "#/properties/global",
165
- "type": "object",
166
- "x-ignore-untested": true,
167
- "additionalProperties": true,
168
- "properties": {
169
- "imagePullSecret": {
170
- "$id": "#/properties/global/imagePullSecret",
171
- "additionalProperties": true,
172
- "type": "object",
173
- "properties": {
174
- "name": {
175
- "$ref": "#/definitions/KubernetesName"
176
- },
177
- "dockerconfigjson": {
178
- "type": "string"
179
- }
180
- },
181
- "dependencies": {
182
- "name": {
183
- "not": {
184
- "required": [
185
- "dockerconfigjson"
186
- ]
187
- }
188
- },
189
- "dockerconfigjson": {
190
- "not": {
191
- "required": [
192
- "name"
193
- ]
194
- }
195
- }
196
- }
197
- },
198
- "image": {
199
- "$id": "#/properties/global/image",
200
- "title": "Image configuration",
201
- "type": "object",
202
- "required": [],
203
- "additionalProperties": true,
204
- "properties": {
205
- "tag": {
206
- "$id": "#/properties/image/global/properties/tag",
207
- "$ref": "#/definitions/ImageTag"
208
- },
209
- "registry": {
210
- "$id": "#/properties/image/global/properties/registry",
211
- "$ref": "#/definitions/ImageRegistry"
212
- }
213
- }
214
- },
215
- "imagePullPolicy": {
216
- "$ref": "#/definitions/ImagePullPolicy"
217
- }
218
- }
219
- },
220
- "nameOverride": {
221
- "$id": "#/properties/nameOverride",
222
- "type": "string",
223
- "pattern": "[0-9a-z][0-9a-z-.]*"
224
- },
225
- "fullnameOverride": {
226
- "$id": "#/properties/fullnameOverride",
227
- "type": "string",
228
- "pattern": "[0-9a-z][0-9a-z-.]*"
229
- },
230
- "serviceAccountName": {
231
- "$id": "#/properties/serviceAccountName",
232
- "type": "string"
233
- },
234
- "runAsUser": {
235
- "$id": "#/properties/runAsUser",
236
- "type": "integer",
237
- "minimum": 1
238
- },
239
- "image": {
240
- "$id": "#/properties/image",
241
- "title": "Image configuration",
242
- "type": "object",
243
- "required": [
244
- "repository"
245
- ],
246
- "additionalProperties": false,
247
- "properties": {
248
- "repository": {
249
- "$id": "#/properties/image/properties/repository",
250
- "type": "string",
251
- "pattern": "^[\\w-./:]*(@sha256)?$"
252
- },
253
- "tag": {
254
- "$id": "#/properties/image/properties/tag",
255
- "$ref": "#/definitions/ImageTag"
256
- },
257
- "registry": {
258
- "$id": "#/properties/image/properties/registry",
259
- "$ref": "#/definitions/ImageRegistry"
260
- }
261
- }
262
- },
263
- "imagePullSecret": {
264
- "$id": "#/properties/imagePullSecret",
265
- "additionalProperties": false,
266
- "type": "object",
267
- "properties": {
268
- "name": {
269
- "$ref": "#/definitions/KubernetesName"
270
- },
271
- "dockerconfigjson": {
272
- "type": "string"
273
- }
274
- },
275
- "dependencies": {
276
- "name": {
277
- "not": {
278
- "required": [
279
- "dockerconfigjson"
280
- ]
281
- }
282
- },
283
- "dockerconfigjson": {
284
- "not": {
285
- "required": [
286
- "name"
287
- ]
288
- }
289
- }
290
- }
291
- },
292
- "imagePullPolicy": {
293
- "$ref": "#/definitions/ImagePullPolicy"
294
- },
295
- "resources": {
296
- "$id": "#/properties/resources",
297
- "type": "object",
298
- "additionalProperties": false,
299
- "properties": {
300
- "requests": {
301
- "type": "object",
302
- "additionalProperties": false,
303
- "properties": {
304
- "cpu": {
305
- "$id": "#/properties/resources/properties/requests/properties/cpu",
306
- "type": [
307
- "number",
308
- "string"
309
- ]
310
- },
311
- "ephemeral-storage": {
312
- "$id": "#/properties/resources/properties/requests/properties/ephemeral-storage",
313
- "type": "string"
314
- },
315
- "memory": {
316
- "$id": "#/properties/resources/properties/requests/properties/memory",
317
- "type": "string"
318
- }
319
- }
320
- },
321
- "limits": {
322
- "type": "object",
323
- "additionalProperties": false,
324
- "properties": {
325
- "cpu": {
326
- "$id": "#/properties/resources/properties/limits/properties/cpu",
327
- "type": [
328
- "number",
329
- "string"
330
- ]
331
- },
332
- "ephemeral-storage": {
333
- "$id": "#/properties/resources/properties/limits/properties/ephemeral-storage",
334
- "type": "string"
335
- },
336
- "memory": {
337
- "$id": "#/properties/resources/properties/limits/properties/memory",
338
- "type": "string"
339
- }
340
- }
341
- }
342
- }
343
- },
344
- "env": {
345
- "$id": "#/properties/env",
346
- "anyOf": [
347
- {
348
- "type": "object",
349
- "patternProperties": {
350
- "^[-._a-zA-Z][-._a-zA-Z0-9]*$": {
351
- "$comment": "regex above copied from https://github.com/kubernetes/kubernetes/blob/ea0764452222146c47ec826977f49d7001b0ea8c/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go#L402",
352
- "anyOf": [
353
- {
354
- "type": [
355
- "integer",
356
- "string"
357
- ]
358
- },
359
- {
360
- "type": "object",
361
- "additionalProperties": false,
362
- "maxProperties": 1,
363
- "properties": {
364
- "configMapKeyRef": {
365
- "type": "object",
366
- "additionalProperties": false,
367
- "properties": {
368
- "name": {
369
- "type": "string"
370
- },
371
- "key": {
372
- "type": "string"
373
- }
374
- }
375
- },
376
- "secretKeyRef": {
377
- "type": "object",
378
- "additionalProperties": false,
379
- "properties": {
380
- "name": {
381
- "type": "string"
382
- },
383
- "key": {
384
- "type": "string"
385
- }
386
- }
387
- },
388
- "resourceFieldRef": {
389
- "type": "object",
390
- "additionalProperties": false,
391
- "properties": {
392
- "containerName": {
393
- "type": "string"
394
- },
395
- "resource": {
396
- "type": "string"
397
- }
398
- }
399
- },
400
- "fieldRef": {
401
- "type": "object",
402
- "additionalProperties": false,
403
- "properties": {
404
- "fieldPath": {
405
- "type": "string"
406
- }
407
- }
408
- }
409
- }
410
- }
411
- ]
412
- }
413
- },
414
- "additionalProperties": false,
415
- "default": {}
416
- },
417
- {
418
- "type": "array",
419
- "uniqueItems": true,
420
- "items": {
421
- "type": "object",
422
- "additionalProperties": false,
423
- "maxProperties": 2,
424
- "required": [
425
- "name"
426
- ],
427
- "properties": {
428
- "name": {
429
- "type": "string",
430
- "pattern": "^[-._a-zA-Z][-._a-zA-Z0-9]*$"
431
- },
432
- "value": {
433
- "type": [
434
- "string",
435
- "integer"
436
- ]
437
- },
438
- "configMapKeyRef": {
439
- "type": "object",
440
- "additionalProperties": false,
441
- "properties": {
442
- "name": {
443
- "type": "string"
444
- },
445
- "key": {
446
- "type": "string"
447
- }
448
- }
449
- },
450
- "secretKeyRef": {
451
- "type": "object",
452
- "additionalProperties": false,
453
- "properties": {
454
- "name": {
455
- "type": "string"
456
- },
457
- "key": {
458
- "type": "string"
459
- }
460
- }
461
- },
462
- "resourceFieldRef": {
463
- "type": "object",
464
- "additionalProperties": false,
465
- "properties": {
466
- "containerName": {
467
- "type": "string"
468
- },
469
- "resource": {
470
- "type": "string"
471
- }
472
- }
473
- },
474
- "fieldRef": {
475
- "type": "object",
476
- "additionalProperties": false,
477
- "properties": {
478
- "fieldPath": {
479
- "type": "string"
480
- }
481
- }
482
- }
483
- }
484
- }
485
- }
486
- ],
487
- "default": {}
488
- },
489
- "envSecretNames": {
490
- "$id": "#/properties/envSecretNames",
491
- "type": "array",
492
- "uniqueItems": true,
493
- "items": {
494
- "type": "string",
495
- "$ref": "#/definitions/KubernetesName"
496
- }
497
- },
498
- "envFrom": {
499
- "$id": "#/properties/envFrom",
500
- "type": "array",
501
- "default": [],
502
- "items": {
503
- "type": "object",
504
- "oneOf": [
505
- {
506
- "additionalProperties": false,
507
- "properties": {
508
- "configMapRef": {
509
- "properties": {
510
- "name": {
511
- "type": "string"
512
- }
513
- },
514
- "required": [
515
- "name"
516
- ],
517
- "additionalProperties": false,
518
- "type": "object"
519
- }
520
- },
521
- "required": [
522
- "configMapRef"
523
- ]
524
- },
525
- {
526
- "additionalProperties": false,
527
- "properties": {
528
- "secretRef": {
529
- "properties": {
530
- "name": {
531
- "type": "string"
532
- }
533
- },
534
- "required": [
535
- "name"
536
- ],
537
- "additionalProperties": false,
538
- "type": "object"
539
- }
540
- },
541
- "required": [
542
- "secretRef"
543
- ]
544
- }
545
- ]
546
- }
547
- },
548
- "ttlDaysAfterFinished": {
549
- "$id": "#/properties/ttlDaysAfterFinished",
550
- "title": "Time to keep the Job after it has finished.",
551
- "type": "integer",
552
- "minimum": 0,
553
- "default": 14
554
- },
555
- "bindings": {
556
- "$id": "#/properties/bindings",
557
- "title": "Service Binding configuration",
558
- "type": "object",
559
- "additionalProperties": false,
560
- "minProperties": 1,
561
- "patternProperties": {
562
- "^[-._a-zA-Z][-._a-zA-Z0-9]*$": {
563
- "oneOf": [
564
- {
565
- "type": "object",
566
- "additionalProperties": false,
567
- "required": [
568
- "fromSecret"
569
- ],
570
- "properties": {
571
- "fromSecret": {
572
- "type": "string"
573
- }
574
- }
575
- },
576
- {
577
- "type": "object",
578
- "additionalProperties": false,
579
- "properties": {
580
- "serviceInstanceName": {
581
- "type": "string"
582
- },
583
- "serviceInstanceFullname": {
584
- "type": "string"
585
- },
586
- "externalName": {
587
- "type": "string"
588
- },
589
- "secretName": {
590
- "type": "string"
591
- },
592
- "parameters": {
593
- "type": "object"
594
- },
595
- "parametersFrom": {
596
- "type": "array",
597
- "items": {
598
- "anyOf": [
599
- {
600
- "type": "object",
601
- "additionalProperties": false,
602
- "properties": {
603
- "secretKeyRef": {
604
- "type": "object",
605
- "additionalProperties": false,
606
- "required": [
607
- "name",
608
- "key"
609
- ],
610
- "properties": {
611
- "name": {
612
- "type": "string"
613
- },
614
- "key": {
615
- "type": "string"
616
- }
617
- }
618
- }
619
- }
620
- },
621
- {
622
- "type": "object",
623
- "additionalProperties": false,
624
- "properties": {
625
- "configMapKeyRef": {
626
- "type": "object",
627
- "additionalProperties": false,
628
- "required": [
629
- "name",
630
- "key"
631
- ],
632
- "properties": {
633
- "name": {
634
- "type": "string"
635
- },
636
- "key": {
637
- "type": "string"
638
- }
639
- }
640
- }
641
- }
642
- }
643
- ]
644
- }
645
- },
646
- "credentialsRotationPolicy": {
647
- "type": "object"
648
- }
649
- },
650
- "dependencies": {
651
- "serviceInstanceName": {
652
- "not": {
653
- "required": [
654
- "serviceInstanceFullname"
655
- ]
656
- }
657
- },
658
- "serviceInstanceFullname": {
659
- "not": {
660
- "required": [
661
- "serviceInstanceName"
662
- ]
663
- }
664
- }
665
- }
666
- }
667
- ]
668
- }
669
- }
670
- },
671
- "annotations": {
672
- "$id": "#/properties/annotations",
673
- "title": "Additional annotations",
674
- "type": "object",
675
- "additionalProperties": false,
676
- "properties": {
677
- "job": {
678
- "type": "object",
679
- "title": "Annotations to add to the Job",
680
- "patternProperties": {
681
- ".*": {
682
- "type": "string"
683
- }
684
- }
685
- }
686
- }
687
- }
688
- }
689
- },
690
- "ServiceInstance": {
691
- "type": "object",
692
- "required": [
693
- "serviceOfferingName",
694
- "servicePlanName"
695
- ],
696
- "additionalProperties": false,
697
- "properties": {
698
- "global": {
699
- "$id": "#/properties/global",
700
- "type": "object",
701
- "x-ignore-untested": true
702
- },
703
- "nameOverride": {
704
- "$id": "#/properties/nameOverride",
705
- "type": "string",
706
- "pattern": "[0-9a-z][0-9a-z-.]*"
707
- },
708
- "fullnameOverride": {
709
- "$id": "#/properties/fullnameOverride",
710
- "type": "string",
711
- "pattern": "[0-9a-z][0-9a-z-.]*"
712
- },
713
- "serviceOfferingName": {
714
- "$id": "#/properties/serviceOfferingName",
715
- "type": "string",
716
- "pattern": "[0-9a-z][0-9a-z-.]*"
717
- },
718
- "servicePlanName": {
719
- "$id": "#/properties/servicePlanName",
720
- "type": "string",
721
- "pattern": "[0-9a-z][0-9a-z-.]*"
722
- },
723
- "btpAccessCredentialsSecret": {
724
- "$id": "#/properties/btpAccessCredentialsSecret",
725
- "type": "string"
726
- },
727
- "externalName": {
728
- "$id": "#/properties/externalName",
729
- "type": "string",
730
- "pattern": "[0-9a-z][0-9a-z-.]*"
731
- },
732
- "customTags": {
733
- "$id": "#/properties/customTags",
734
- "type": "array",
735
- "uniqueItems": true,
736
- "items": {
737
- "type": "string"
738
- }
739
- },
740
- "parameters": {
741
- "$id": "#/properties/parameters",
742
- "type": "object"
743
- },
744
- "jsonParameters": {
745
- "$id": "#/properties/jsonParameters",
746
- "type": "string"
747
- },
748
- "parametersFrom": {
749
- "$id": "#/properties/parametersFrom",
750
- "type": "array",
751
- "uniqueItems": true,
752
- "items": {
753
- "type": "object",
754
- "additionalProperties": false,
755
- "properties": {
756
- "secretKeyRef": {
757
- "type": "object",
758
- "additionalProperties": false,
759
- "required": [
760
- "name",
761
- "key"
762
- ],
763
- "properties": {
764
- "name": {
765
- "type": "string"
766
- },
767
- "key": {
768
- "type": "string"
769
- }
770
- }
771
- }
772
- }
773
- }
774
- },
775
- "annotations": {
776
- "$id": "#/properties/annotations",
777
- "title": "Additional annotations",
778
- "type": "object",
779
- "additionalProperties": false,
780
- "properties": {
781
- "serviceInstance": {
782
- "type": "object",
783
- "patternProperties": {
784
- ".*": {
785
- "type": "string"
786
- }
787
- }
788
- },
789
- "serviceBinding": {
790
- "type": "object",
791
- "patternProperties": {
792
- ".*": {
793
- "type": "string"
794
- }
795
- }
796
- }
797
- }
798
- },
799
- "bindings": {
800
- "$id": "#/properties/bindings",
801
- "title": "Service Binding configuration",
802
- "type": "object",
803
- "additionalProperties": false,
804
- "patternProperties": {
805
- "^[-._a-zA-Z][-._a-zA-Z0-9]*$": {
806
- "type": "object",
807
- "additionalProperties": false,
808
- "properties": {
809
- "externalName": {
810
- "type": "string"
811
- },
812
- "secretName": {
813
- "type": "string"
814
- },
815
- "parameters": {
816
- "type": "object"
817
- },
818
- "parametersFrom": {
819
- "type": "array",
820
- "items": {
821
- "type": "object",
822
- "additionalProperties": false,
823
- "properties": {
824
- "secretKeyRef": {
825
- "type": "object",
826
- "additionalProperties": false,
827
- "required": [
828
- "name",
829
- "key"
830
- ],
831
- "properties": {
832
- "name": {
833
- "type": "string"
834
- },
835
- "key": {
836
- "type": "string"
837
- }
838
- }
839
- }
840
- }
841
- }
842
- },
843
- "credentialsRotationPolicy": {
844
- "type": "object"
845
- }
846
- }
847
- }
848
- }
849
- }
850
- }
851
- },
852
- "WebApplication": {
853
- "type": "object",
854
- "required": [
855
- "image",
856
- "resources"
857
- ],
858
- "additionalProperties": false,
859
- "properties": {
860
- "global": {
861
- "$id": "#/properties/global",
862
- "type": "object",
863
- "x-ignore-untested": true,
864
- "additionalProperties": true,
865
- "properties": {
866
- "imagePullSecret": {
867
- "$id": "#/properties/global/imagePullSecret",
868
- "additionalProperties": true,
869
- "type": "object",
870
- "properties": {
871
- "name": {
872
- "$ref": "#/definitions/KubernetesName"
873
- },
874
- "dockerconfigjson": {
875
- "type": "string"
876
- }
877
- },
878
- "dependencies": {
879
- "name": {
880
- "not": {
881
- "required": [
882
- "dockerconfigjson"
883
- ]
884
- }
885
- },
886
- "dockerconfigjson": {
887
- "not": {
888
- "required": [
889
- "name"
890
- ]
891
- }
892
- }
893
- }
894
- },
895
- "image": {
896
- "$id": "#/properties/global/image",
897
- "type": "object",
898
- "required": [],
899
- "additionalProperties": true,
900
- "properties": {
901
- "tag": {
902
- "$id": "#/properties/image/global/properties/tag",
903
- "$ref": "#/definitions/ImageTag"
904
- },
905
- "registry": {
906
- "$id": "#/properties/image/global/properties/registry",
907
- "$ref": "#/definitions/ImageRegistry"
908
- }
909
- }
910
- },
911
- "imagePullPolicy": {
912
- "$ref": "#/definitions/ImagePullPolicy"
913
- }
914
- }
915
- },
916
- "nameOverride": {
917
- "$id": "#/properties/nameOverride",
918
- "type": "string",
919
- "pattern": "[0-9a-z][0-9a-z-.]*"
920
- },
921
- "fullnameOverride": {
922
- "$id": "#/properties/fullnameOverride",
923
- "type": "string",
924
- "pattern": "[0-9a-z][0-9a-z-.]*"
925
- },
926
- "runAsUser": {
927
- "$id": "#/properties/runAsUser",
928
- "type": "integer",
929
- "minimum": 1
930
- },
931
- "replicaCount": {
932
- "$id": "#/properties/replicaCount",
933
- "type": "integer",
934
- "minimum": 1,
935
- "default": 1
936
- },
937
- "port": {
938
- "$id": "#/properties/port",
939
- "type": "integer",
940
- "minimum": 1,
941
- "maximum": 65535,
942
- "default": 8080
943
- },
944
- "serviceAccountName": {
945
- "$id": "#/properties/serviceAccountName",
946
- "type": "string"
947
- },
948
- "imagePullPolicy": {
949
- "$ref": "#/definitions/ImagePullPolicy"
950
- },
951
- "image": {
952
- "$id": "#/properties/image",
953
- "type": "object",
954
- "required": [
955
- "repository"
956
- ],
957
- "additionalProperties": false,
958
- "properties": {
959
- "repository": {
960
- "$id": "#/properties/image/properties/repository",
961
- "type": "string",
962
- "pattern": "^[\\w-./:]*(@sha256)?$"
963
- },
964
- "tag": {
965
- "$id": "#/properties/image/properties/tag",
966
- "$ref": "#/definitions/ImageTag"
967
- },
968
- "registry": {
969
- "$id": "#/properties/image/properties/registry",
970
- "$ref": "#/definitions/ImageRegistry"
971
- }
972
- }
973
- },
974
- "imagePullSecret": {
975
- "$id": "#/properties/imagePullSecret",
976
- "additionalProperties": false,
977
- "type": "object",
978
- "properties": {
979
- "name": {
980
- "title": "Secret name",
981
- "$ref": "#/definitions/KubernetesName"
982
- },
983
- "dockerconfigjson": {
984
- "title": "Secret content",
985
- "type": "string"
986
- }
987
- },
988
- "dependencies": {
989
- "name": {
990
- "not": {
991
- "required": [
992
- "dockerconfigjson"
993
- ]
994
- }
995
- },
996
- "dockerconfigjson": {
997
- "not": {
998
- "required": [
999
- "name"
1000
- ]
1001
- }
1002
- }
1003
- }
1004
- },
1005
- "additionalVolumes": {
1006
- "$id": "#/properties/additionalVolumes",
1007
- "type": "array",
1008
- "additionalItems": false,
1009
- "default": [],
1010
- "items": {
1011
- "type": "object",
1012
- "additionalProperties": true,
1013
- "required": [
1014
- "name",
1015
- "volumeMount"
1016
- ],
1017
- "properties": {
1018
- "name": {
1019
- "type": "string",
1020
- "$ref": "#/definitions/KubernetesName"
1021
- },
1022
- "volumeMount": {
1023
- "type": "object",
1024
- "required": [
1025
- "mountPath"
1026
- ],
1027
- "additionalProperties": false,
1028
- "properties": {
1029
- "mountPath": {
1030
- "type": "string",
1031
- "pattern": "^[^:]*$"
1032
- },
1033
- "mountPropagation": {
1034
- "type": "string",
1035
- "enum": [
1036
- "None",
1037
- "HostToContainer"
1038
- ]
1039
- },
1040
- "readOnly": {
1041
- "type": "boolean"
1042
- },
1043
- "subPath": {
1044
- "type": "string"
1045
- },
1046
- "subPathExpr": {
1047
- "type": "string"
1048
- }
1049
- }
1050
- }
1051
- }
1052
- }
1053
- },
1054
- "resources": {
1055
- "$id": "#/properties/resources",
1056
- "type": "object",
1057
- "additionalProperties": false,
1058
- "required": [
1059
- "requests",
1060
- "limits"
1061
- ],
1062
- "properties": {
1063
- "requests": {
1064
- "type": "object",
1065
- "additionalProperties": false,
1066
- "required": [
1067
- "cpu",
1068
- "memory"
1069
- ],
1070
- "properties": {
1071
- "cpu": {
1072
- "$id": "#/properties/resources/properties/requests/properties/cpu",
1073
- "type": [
1074
- "string",
1075
- "number"
1076
- ]
1077
- },
1078
- "ephemeral-storage": {
1079
- "$id": "#/properties/resources/properties/requests/properties/ephemeral-storage",
1080
- "type": "string"
1081
- },
1082
- "memory": {
1083
- "$id": "#/properties/resources/properties/requests/properties/memory",
1084
- "type": "string"
1085
- }
1086
- }
1087
- },
1088
- "limits": {
1089
- "type": "object",
1090
- "additionalProperties": false,
1091
- "required": [
1092
- "memory"
1093
- ],
1094
- "properties": {
1095
- "cpu": {
1096
- "$id": "#/properties/resources/properties/limits/properties/cpu",
1097
- "type": [
1098
- "string",
1099
- "number"
1100
- ]
1101
- },
1102
- "ephemeral-storage": {
1103
- "$id": "#/properties/resources/properties/limits/properties/ephemeral-storage",
1104
- "type": "string"
1105
- },
1106
- "memory": {
1107
- "$id": "#/properties/resources/properties/limits/properties/memory",
1108
- "type": "string"
1109
- }
1110
- }
1111
- }
1112
- }
1113
- },
1114
- "istio": {
1115
- "$id": "#/properties/istio",
1116
- "additionalProperties": false,
1117
- "type": "object",
1118
- "required": [
1119
- "enabled"
1120
- ],
1121
- "properties": {
1122
- "enabled": {
1123
- "$id": "#/properties/istio/properties/enabled",
1124
- "type": "boolean"
1125
- }
1126
- }
1127
- },
1128
- "availability": {
1129
- "$id": "#/properties/availability",
1130
- "type": "object",
1131
- "additionalProperties": false,
1132
- "properties": {
1133
- "podDisruptionBudget": {
1134
- "$id": "#/properties/availability/properties/podDisruptionBudget",
1135
- "type": "object",
1136
- "additionalProperties": false,
1137
- "properties": {
1138
- "maxUnavailable": {
1139
- "type": "string",
1140
- "default": "10%"
1141
- },
1142
- "unhealthyPodEvictionPolicy": {
1143
- "type": "string",
1144
- "default": "AlwaysAllow",
1145
- "enum": ["AlwaysAllow", "IfHealthyBudget"]
1146
- }
1147
- }
1148
- },
1149
- "topologySpreadConstraints": {
1150
- "$id": "#/properties/availability/properties/topologySpreadConstraints",
1151
- "uniqueItems": true,
1152
- "items": {
1153
- "type": "object",
1154
- "additionalProperties": false,
1155
- "required": [
1156
- "topologyKey",
1157
- "maxSkew",
1158
- "whenUnsatisfiable"
1159
- ],
1160
- "properties": {
1161
- "topologyKey": {
1162
- "type": "string"
1163
- },
1164
- "maxSkew": {
1165
- "type": "integer",
1166
- "minimum": 1
1167
- },
1168
- "whenUnsatisfiable": {
1169
- "type": "string",
1170
- "enum": [
1171
- "ScheduleAnyway",
1172
- "DoNotSchedule"
1173
- ]
1174
- },
1175
- "matchLabelKeys": {
1176
- "type": "array",
1177
- "items": {
1178
- "type": "string"
1179
- }
1180
- }
1181
- }
1182
- },
1183
- "default": [
1184
- {
1185
- "maxSkew": 1,
1186
- "topologyKey": "topology.kubernetes.io/zone",
1187
- "whenUnsatisfiable": "ScheduleAnyway"
1188
- },
1189
- {
1190
- "maxSkew": 1,
1191
- "topologyKey": "kubernetes.io/hostname",
1192
- "whenUnsatisfiable": "ScheduleAnyway"
1193
- }
1194
- ]
1195
- }
1196
- }
1197
- },
1198
- "health": {
1199
- "$id": "#/properties/health",
1200
- "type": "object",
1201
- "additionalProperties": false,
1202
- "properties": {
1203
- "liveness": {
1204
- "$id": "#/properties/health/properties/liveness",
1205
- "type": "object",
1206
- "additionalProperties": false,
1207
- "properties": {
1208
- "path": {
1209
- "type": "string",
1210
- "default": "/healthz"
1211
- },
1212
- "periodSeconds": {
1213
- "type": "integer",
1214
- "minimum": 1
1215
- },
1216
- "failureThreshold": {
1217
- "type": "integer",
1218
- "minimum": 1
1219
- }
1220
- }
1221
- },
1222
- "readiness": {
1223
- "$id": "#/properties/health/properties/readiness",
1224
- "type": "object",
1225
- "additionalProperties": false,
1226
- "properties": {
1227
- "path": {
1228
- "type": "string",
1229
- "default": "/healthz"
1230
- },
1231
- "periodSeconds": {
1232
- "type": "integer",
1233
- "minimum": 1
1234
- },
1235
- "failureThreshold": {
1236
- "type": "integer",
1237
- "minimum": 1
1238
- }
1239
- }
1240
- }
1241
- }
1242
- },
1243
- "startupTimeoutSeconds": {
1244
- "$id": "#/properties/startupTimeoutSeconds",
1245
- "type": "integer",
1246
- "minimum": 1,
1247
- "default": 30
1248
- },
1249
- "readOnlyRootFilesystem": {
1250
- "$id": "#/properties/readOnlyRootFilesystem",
1251
- "type": "boolean"
1252
- },
1253
- "terminationGracePeriodSeconds": {
1254
- "$id": "#/properties/terminationGracePeriodSeconds",
1255
- "type": "integer",
1256
- "minimum": 0,
1257
- "default": 30
1258
- },
1259
- "env": {
1260
- "$id": "#/properties/env",
1261
- "anyOf": [
1262
- {
1263
- "type": "object",
1264
- "patternProperties": {
1265
- "^[-._a-zA-Z][-._a-zA-Z0-9]*$": {
1266
- "$comment": "regex above copied from https://github.com/kubernetes/kubernetes/blob/ea0764452222146c47ec826977f49d7001b0ea8c/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go#L402",
1267
- "anyOf": [
1268
- {
1269
- "type": [
1270
- "integer",
1271
- "string"
1272
- ]
1273
- },
1274
- {
1275
- "type": "object",
1276
- "additionalProperties": false,
1277
- "maxProperties": 1,
1278
- "properties": {
1279
- "configMapKeyRef": {
1280
- "type": "object",
1281
- "additionalProperties": false,
1282
- "properties": {
1283
- "name": {
1284
- "type": "string"
1285
- },
1286
- "key": {
1287
- "type": "string"
1288
- }
1289
- }
1290
- },
1291
- "secretKeyRef": {
1292
- "type": "object",
1293
- "additionalProperties": false,
1294
- "properties": {
1295
- "name": {
1296
- "type": "string"
1297
- },
1298
- "key": {
1299
- "type": "string"
1300
- }
1301
- }
1302
- },
1303
- "resourceFieldRef": {
1304
- "type": "object",
1305
- "additionalProperties": false,
1306
- "properties": {
1307
- "containerName": {
1308
- "$ref": "#/definitions/KubernetesName"
1309
- },
1310
- "resource": {
1311
- "type": "string"
1312
- }
1313
- }
1314
- },
1315
- "fieldRef": {
1316
- "type": "object",
1317
- "additionalProperties": false,
1318
- "properties": {
1319
- "fieldPath": {
1320
- "type": "string"
1321
- }
1322
- }
1323
- }
1324
- }
1325
- }
1326
- ]
1327
- }
1328
- },
1329
- "additionalProperties": false,
1330
- "default": {}
1331
- },
1332
- {
1333
- "type": "array",
1334
- "uniqueItems": true,
1335
- "items": {
1336
- "type": "object",
1337
- "additionalProperties": false,
1338
- "maxProperties": 2,
1339
- "required": [
1340
- "name"
1341
- ],
1342
- "properties": {
1343
- "name": {
1344
- "type": "string",
1345
- "pattern": "^[-._a-zA-Z][-._a-zA-Z0-9]*$"
1346
- },
1347
- "value": {
1348
- "type": [
1349
- "string",
1350
- "integer"
1351
- ]
1352
- },
1353
- "configMapKeyRef": {
1354
- "type": "object",
1355
- "additionalProperties": false,
1356
- "properties": {
1357
- "name": {
1358
- "type": "string"
1359
- },
1360
- "key": {
1361
- "type": "string"
1362
- }
1363
- }
1364
- },
1365
- "secretKeyRef": {
1366
- "type": "object",
1367
- "additionalProperties": false,
1368
- "properties": {
1369
- "name": {
1370
- "type": "string"
1371
- },
1372
- "key": {
1373
- "type": "string"
1374
- }
1375
- }
1376
- },
1377
- "resourceFieldRef": {
1378
- "type": "object",
1379
- "additionalProperties": false,
1380
- "properties": {
1381
- "containerName": {
1382
- "$ref": "#/definitions/KubernetesName"
1383
- },
1384
- "resource": {
1385
- "type": "string"
1386
- }
1387
- }
1388
- },
1389
- "fieldRef": {
1390
- "type": "object",
1391
- "additionalProperties": false,
1392
- "properties": {
1393
- "fieldPath": {
1394
- "type": "string"
1395
- }
1396
- }
1397
- }
1398
- }
1399
- }
1400
- }
1401
- ],
1402
- "default": {}
1403
- },
1404
- "envFrom": {
1405
- "$id": "#/properties/envFrom",
1406
- "type": "array",
1407
- "default": [],
1408
- "items": {
1409
- "type": "object",
1410
- "oneOf": [
1411
- {
1412
- "additionalProperties": false,
1413
- "properties": {
1414
- "configMapRef": {
1415
- "properties": {
1416
- "name": {
1417
- "type": "string"
1418
- }
1419
- },
1420
- "required": [
1421
- "name"
1422
- ],
1423
- "additionalProperties": false,
1424
- "type": "object"
1425
- },
1426
- "prefix": {
1427
- "type": "string"
1428
- }
1429
- },
1430
- "required": [
1431
- "configMapRef"
1432
- ]
1433
- },
1434
- {
1435
- "additionalProperties": false,
1436
- "properties": {
1437
- "secretRef": {
1438
- "properties": {
1439
- "name": {
1440
- "type": "string"
1441
- }
1442
- },
1443
- "required": [
1444
- "name"
1445
- ],
1446
- "additionalProperties": false,
1447
- "type": "object"
1448
- },
1449
- "prefix": {
1450
- "type": "string"
1451
- }
1452
- },
1453
- "required": [
1454
- "secretRef"
1455
- ]
1456
- }
1457
- ]
1458
- }
1459
- },
1460
- "expose": {
1461
- "$id": "#/properties/expose",
1462
- "title": "",
1463
- "type": "object",
1464
- "additionalProperties": false,
1465
- "properties": {
1466
- "host": {
1467
- "$id": "#/properties/expose/properties/host",
1468
- "type": "string"
1469
- },
1470
- "enabled": {
1471
- "$id": "#/properties/expose/properties/enabled",
1472
- "type": "boolean",
1473
- "default": true
1474
- },
1475
- "gateway": {
1476
- "$id": "#/properties/expose/properties/gateway",
1477
- "type": "string",
1478
- "default": "kyma-system/kyma-gateway"
1479
- },
1480
- "tenantGateway": {
1481
- "$id": "#/properties/expose/properties/gateway",
1482
- "type": "string"
1483
- },
1484
- "corsPolicy": {
1485
- "$id": "#/properties/expose/properties/corsPolicy",
1486
- "type": "object",
1487
- "additionalProperties": false,
1488
- "properties": {
1489
- "allowHeaders": {
1490
- "type": "array",
1491
- "items": {
1492
- "type": "string"
1493
- }
1494
- },
1495
- "allowMethods": {
1496
- "type": "array",
1497
- "items": {
1498
- "type": "string"
1499
- }
1500
- },
1501
- "allowOrigins": {
1502
- "type": "array",
1503
- "items": {
1504
- "type": "object",
1505
- "propertyNames": {
1506
- "enum": [
1507
- "regex",
1508
- "exact",
1509
- "prefix"
1510
- ]
1511
- },
1512
- "patternProperties": {
1513
- "": {
1514
- "type": "string"
1515
- }
1516
- }
1517
- }
1518
- },
1519
- "allowCredentials": {
1520
- "type": "boolean"
1521
- },
1522
- "exposeHeaders": {
1523
- "type": "array",
1524
- "items": {
1525
- "type": "string"
1526
- }
1527
- },
1528
- "maxAge": {
1529
- "type": "string"
1530
- }
1531
- }
1532
- },
1533
- "rules": {
1534
- "$id": "#/properties/expose/properties/rules",
1535
- "type": "array",
1536
- "items": {
1537
- "type": "object"
1538
- },
1539
- "default": [
1540
- {
1541
- "accessStrategies": [
1542
- {
1543
- "handler": "allow"
1544
- }
1545
- ],
1546
- "methods": [
1547
- "GET",
1548
- "POST",
1549
- "PUT",
1550
- "PATCH",
1551
- "DELETE",
1552
- "HEAD"
1553
- ],
1554
- "path": "/.*"
1555
- }
1556
- ]
1557
- }
1558
- }
1559
- },
1560
- "networkSecurity": {
1561
- "$id": "#/properties/bindings",
1562
- "title": "Network Security configuration",
1563
- "type": "object",
1564
- "additionalProperties": false,
1565
- "properties": {
1566
- "enabled": {
1567
- "type": "boolean",
1568
- "default": true
1569
- },
1570
- "allowNamespaceInternal": {
1571
- "type": "boolean"
1572
- },
1573
- "additionalPorts": {
1574
- "type": "array",
1575
- "default": [],
1576
- "items": {
1577
- "type": "integer"
1578
- }
1579
- },
1580
- "ingress": {
1581
- "type": "array",
1582
- "default": [],
1583
- "items": {
1584
- "type": "object",
1585
- "minProperties": 1,
1586
- "additionalProperties": false,
1587
- "properties": {
1588
- "namespace": {
1589
- "type": "string"
1590
- },
1591
- "podLabelsSelector": {
1592
- "type": "object",
1593
- "minProperties": 1,
1594
- "patternProperties": {
1595
- "^.*$": {
1596
- "type": "string"
1597
- }
1598
- }
1599
- }
1600
- }
1601
- }
1602
- }
1603
- }
1604
- },
1605
- "rbac": {
1606
- "$id": "#/properties/rbac",
1607
- "title": "Role-based access control configuration https://kubernetes.io/docs/reference/access-authn-authz/rbac/",
1608
- "type": "object",
1609
- "additionalProperties": false,
1610
- "maxProperties": 1,
1611
- "properties": {
1612
- "role": {
1613
- "type": "string",
1614
- "title": "Existing Role to use. The Role must be in the same namespace."
1615
- },
1616
- "clusterRole": {
1617
- "type": "string",
1618
- "title": "Existing ClusterRole to use."
1619
- },
1620
- "rules": {
1621
- "type": "array",
1622
- "title": "List of RBAC rules assigned to the new Role.",
1623
- "items": {
1624
- "type": "object",
1625
- "additionalProperties": false,
1626
- "required": [
1627
- "apiGroups",
1628
- "resources",
1629
- "verbs"
1630
- ],
1631
- "properties": {
1632
- "apiGroups": {
1633
- "type": "array",
1634
- "items": {
1635
- "type": "string"
1636
- }
1637
- },
1638
- "resources": {
1639
- "type": "array",
1640
- "items": {
1641
- "type": "string"
1642
- }
1643
- },
1644
- "verbs": {
1645
- "type": "array",
1646
- "items": {
1647
- "type": "string"
1648
- }
1649
- }
1650
- }
1651
- }
1652
- }
1653
- }
1654
- },
1655
- "bindings": {
1656
- "$id": "#/properties/bindings",
1657
- "title": "Service Binding configuration",
1658
- "type": "object",
1659
- "additionalProperties": false,
1660
- "patternProperties": {
1661
- "^[-._a-zA-Z][-._a-zA-Z0-9]*$": {
1662
- "anyOf": [
1663
- {
1664
- "type": "object",
1665
- "additionalProperties": false,
1666
- "required": [
1667
- "fromSecret"
1668
- ],
1669
- "properties": {
1670
- "fromSecret": {
1671
- "type": "string"
1672
- }
1673
- }
1674
- },
1675
- {
1676
- "type": "object",
1677
- "additionalProperties": false,
1678
- "properties": {
1679
- "serviceInstanceName": {
1680
- "type": "string"
1681
- },
1682
- "serviceInstanceFullname": {
1683
- "type": "string"
1684
- },
1685
- "externalName": {
1686
- "type": "string"
1687
- },
1688
- "secretName": {
1689
- "type": "string"
1690
- },
1691
- "parameters": {
1692
- "type": "object"
1693
- },
1694
- "parametersFrom": {
1695
- "type": "array",
1696
- "items": {
1697
- "type": "object",
1698
- "additionalProperties": false,
1699
- "properties": {
1700
- "secretKeyRef": {
1701
- "type": "object",
1702
- "additionalProperties": false,
1703
- "required": [
1704
- "name",
1705
- "key"
1706
- ],
1707
- "properties": {
1708
- "name": {
1709
- "type": "string"
1710
- },
1711
- "key": {
1712
- "type": "string"
1713
- }
1714
- }
1715
- }
1716
- }
1717
- }
1718
- },
1719
- "credentialsRotationPolicy": {
1720
- "type": "object"
1721
- }
1722
- },
1723
- "dependencies": {
1724
- "serviceInstanceName": {
1725
- "not": {
1726
- "required": [
1727
- "serviceInstanceFullname"
1728
- ]
1729
- }
1730
- },
1731
- "serviceInstanceFullname": {
1732
- "not": {
1733
- "required": [
1734
- "serviceInstanceName"
1735
- ]
1736
- }
1737
- }
1738
- }
1739
- }
1740
- ]
1741
- }
1742
- }
1743
- },
1744
- "annotations": {
1745
- "$id": "#/properties/annotations",
1746
- "title": "Additional annotations",
1747
- "type": "object",
1748
- "additionalProperties": false,
1749
- "properties": {
1750
- "deployment": {
1751
- "type": "object",
1752
- "title": "Annotations to add to the Deployment",
1753
- "patternProperties": {
1754
- ".*": {
1755
- "type": "string"
1756
- }
1757
- }
1758
- },
1759
- "service": {
1760
- "type": "object",
1761
- "title": "Annotations to add to the Service",
1762
- "patternProperties": {
1763
- ".*": {
1764
- "type": "string"
1765
- }
1766
- }
1767
- }
1768
- }
1769
- },
1770
- "sidecars": {
1771
- "$id": "#/properties/bindings",
1772
- "title": "Sidecar configuration",
1773
- "type": "object",
1774
- "additionalProperties": false,
1775
- "patternProperties": {
1776
- "^[-._a-zA-Z][-._a-zA-Z0-9]*$": {
1777
- "additionalProperties": false,
1778
- "properties": {
1779
- "image": {
1780
- "$id": "#/properties/image",
1781
- "title": "Image configuration",
1782
- "type": "object",
1783
- "required": [
1784
- "repository"
1785
- ],
1786
- "additionalProperties": false,
1787
- "properties": {
1788
- "repository": {
1789
- "$id": "#/properties/image/properties/repository",
1790
- "title": "Repository of the image",
1791
- "type": "string",
1792
- "pattern": "^[\\w-./:]*[@sha256]*$"
1793
- },
1794
- "tag": {
1795
- "$id": "#/properties/image/properties/tag",
1796
- "$ref": "#/definitions/ImageTag"
1797
- },
1798
- "registry": {
1799
- "$id": "#/properties/image/properties/registry",
1800
- "$ref": "#/definitions/ImageRegistry"
1801
- }
1802
- }
1803
- },
1804
- "imagePullPolicy": {
1805
- "$ref": "#/definitions/ImagePullPolicy"
1806
- },
1807
- "envFrom": {
1808
- "$id": "#/properties/envFrom",
1809
- "type": "array",
1810
- "default": [],
1811
- "items": {
1812
- "type": "object",
1813
- "oneOf": [
1814
- {
1815
- "additionalProperties": false,
1816
- "properties": {
1817
- "configMapRef": {
1818
- "properties": {
1819
- "name": {
1820
- "type": "string"
1821
- }
1822
- },
1823
- "required": [
1824
- "name"
1825
- ],
1826
- "additionalProperties": false,
1827
- "type": "object"
1828
- },
1829
- "prefix": {
1830
- "type": "string"
1831
- }
1832
- },
1833
- "required": [
1834
- "configMapRef"
1835
- ]
1836
- },
1837
- {
1838
- "additionalProperties": false,
1839
- "properties": {
1840
- "secretRef": {
1841
- "properties": {
1842
- "name": {
1843
- "type": "string"
1844
- }
1845
- },
1846
- "required": [
1847
- "name"
1848
- ],
1849
- "additionalProperties": false,
1850
- "type": "object"
1851
- },
1852
- "prefix": {
1853
- "type": "string"
1854
- }
1855
- },
1856
- "required": [
1857
- "secretRef"
1858
- ]
1859
- }
1860
- ]
1861
- }
1862
- },
1863
- "env": {
1864
- "$id": "#/properties/env",
1865
- "anyOf": [
1866
- {
1867
- "type": "object",
1868
- "patternProperties": {
1869
- "^[-._a-zA-Z][-._a-zA-Z0-9]*$": {
1870
- "$comment": "regex above copied from https://github.com/kubernetes/kubernetes/blob/ea0764452222146c47ec826977f49d7001b0ea8c/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go#L402",
1871
- "anyOf": [
1872
- {
1873
- "type": [
1874
- "integer",
1875
- "string"
1876
- ]
1877
- },
1878
- {
1879
- "type": "object",
1880
- "additionalProperties": false,
1881
- "maxProperties": 1,
1882
- "properties": {
1883
- "configMapKeyRef": {
1884
- "type": "object",
1885
- "additionalProperties": false,
1886
- "properties": {
1887
- "name": {
1888
- "type": "string"
1889
- },
1890
- "key": {
1891
- "type": "string"
1892
- }
1893
- }
1894
- },
1895
- "secretKeyRef": {
1896
- "type": "object",
1897
- "additionalProperties": false,
1898
- "properties": {
1899
- "name": {
1900
- "type": "string"
1901
- },
1902
- "key": {
1903
- "type": "string"
1904
- }
1905
- }
1906
- },
1907
- "resourceFieldRef": {
1908
- "type": "object",
1909
- "additionalProperties": false,
1910
- "properties": {
1911
- "containerName": {
1912
- "$ref": "#/definitions/KubernetesName"
1913
- },
1914
- "resource": {
1915
- "type": "string"
1916
- }
1917
- }
1918
- },
1919
- "fieldRef": {
1920
- "type": "object",
1921
- "additionalProperties": false,
1922
- "properties": {
1923
- "fieldPath": {
1924
- "type": "string"
1925
- }
1926
- }
1927
- }
1928
- }
1929
- }
1930
- ]
1931
- }
1932
- },
1933
- "additionalProperties": false,
1934
- "default": {}
1935
- },
1936
- {
1937
- "type": "array",
1938
- "uniqueItems": true,
1939
- "items": {
1940
- "type": "object",
1941
- "additionalProperties": false,
1942
- "maxProperties": 2,
1943
- "required": [
1944
- "name"
1945
- ],
1946
- "properties": {
1947
- "name": {
1948
- "type": "string",
1949
- "pattern": "^[-._a-zA-Z][-._a-zA-Z0-9]*$"
1950
- },
1951
- "value": {
1952
- "type": [
1953
- "string",
1954
- "integer"
1955
- ]
1956
- },
1957
- "configMapKeyRef": {
1958
- "type": "object",
1959
- "additionalProperties": false,
1960
- "properties": {
1961
- "name": {
1962
- "type": "string"
1963
- },
1964
- "key": {
1965
- "type": "string"
1966
- }
1967
- }
1968
- },
1969
- "secretKeyRef": {
1970
- "type": "object",
1971
- "additionalProperties": false,
1972
- "properties": {
1973
- "name": {
1974
- "type": "string"
1975
- },
1976
- "key": {
1977
- "type": "string"
1978
- }
1979
- }
1980
- },
1981
- "resourceFieldRef": {
1982
- "type": "object",
1983
- "additionalProperties": false,
1984
- "properties": {
1985
- "containerName": {
1986
- "$ref": "#/definitions/KubernetesName"
1987
- },
1988
- "resource": {
1989
- "type": "string"
1990
- }
1991
- }
1992
- },
1993
- "fieldRef": {
1994
- "type": "object",
1995
- "additionalProperties": false,
1996
- "properties": {
1997
- "fieldPath": {
1998
- "type": "string"
1999
- }
2000
- }
2001
- }
2002
- }
2003
- }
2004
- }
2005
- ],
2006
- "default": {}
2007
- },
2008
- "resources": {
2009
- "$id": "#/properties/resources",
2010
- "title": "Pod resources configuration",
2011
- "type": "object",
2012
- "additionalProperties": false,
2013
- "required": [
2014
- "requests",
2015
- "limits"
2016
- ],
2017
- "properties": {
2018
- "requests": {
2019
- "type": "object",
2020
- "additionalProperties": false,
2021
- "required": [
2022
- "cpu",
2023
- "memory"
2024
- ],
2025
- "properties": {
2026
- "cpu": {
2027
- "$id": "#/properties/resources/properties/requests/properties/cpu",
2028
- "type": [
2029
- "string",
2030
- "number"
2031
- ]
2032
- },
2033
- "ephemeral-storage": {
2034
- "$id": "#/properties/resources/properties/requests/properties/ephemeral-storage",
2035
- "type": "string"
2036
- },
2037
- "memory": {
2038
- "$id": "#/properties/resources/properties/requests/properties/memory",
2039
- "type": "string"
2040
- }
2041
- }
2042
- },
2043
- "limits": {
2044
- "type": "object",
2045
- "additionalProperties": false,
2046
- "required": [
2047
- "memory"
2048
- ],
2049
- "properties": {
2050
- "cpu": {
2051
- "$id": "#/properties/resources/properties/limits/properties/cpu",
2052
- "type": [
2053
- "string",
2054
- "number"
2055
- ]
2056
- },
2057
- "ephemeral-storage": {
2058
- "$id": "#/properties/resources/properties/limits/properties/ephemeral-storage",
2059
- "type": "string"
2060
- },
2061
- "memory": {
2062
- "$id": "#/properties/resources/properties/limits/properties/memory",
2063
- "type": "string"
2064
- }
2065
- }
2066
- }
2067
- }
2068
- },
2069
- "runAsUser": {
2070
- "title": "User to be used for running the container.",
2071
- "type": "integer",
2072
- "minimum": 1
2073
- }
2074
- }
2075
- }
2076
- }
2077
- },
2078
- "prometheus": {
2079
- "$id": "#/properties/prometheus",
2080
- "title": "Enable Prometheus scraping",
2081
- "type": "object",
2082
- "additionalProperties": false,
2083
- "properties": {
2084
- "enabled": {
2085
- "type": "boolean",
2086
- "title": "Add necessary annotations for Prometheus Service Discovery.",
2087
- "default": false
2088
- },
2089
- "path": {
2090
- "type": "string",
2091
- "title": "URI path used for scraping. Defaults to /metrics.",
2092
- "default": "/metrics"
2093
- },
2094
- "port": {
2095
- "title": "Port used for scraping. Defaults to the application port.",
2096
- "type": "integer"
2097
- }
2098
- }
2099
- },
2100
- "otlp": {
2101
- "$id": "#/properties/otlp",
2102
- "title": "Enable Open Telemetry integration",
2103
- "type": "object",
2104
- "additionalProperties": false,
2105
- "properties": {
2106
- "traces": {
2107
- "type": "object",
2108
- "additionalProperties": false,
2109
- "properties": {
2110
- "enabled": {
2111
- "type": "boolean",
2112
- "title": "Add env variables",
2113
- "default": false
2114
- },
2115
- "endpoint": {
2116
- "type": "string",
2117
- "default": "http://telemetry-otlp-traces.kyma-system.svc.cluster.local:4317"
2118
- }
2119
- }
2120
- },
2121
- "metrics": {
2122
- "type": "object",
2123
- "additionalProperties": false,
2124
- "properties": {
2125
- "enabled": {
2126
- "type": "boolean",
2127
- "title": "Add env variables",
2128
- "default": false
2129
- },
2130
- "endpoint": {
2131
- "type": "string",
2132
- "default": "http://telemetry-otlp-metrics.kyma-system.svc.cluster.local:4317"
2133
- }
2134
- }
2135
- }
2136
- }
2137
- },
2138
- "hpa": {
2139
- "$id": "#/properties/hpa",
2140
- "title": "Enable autoscaling",
2141
- "type": "object",
2142
- "additionalProperties": false,
2143
- "properties": {
2144
- "enabled": {
2145
- "type": "boolean",
2146
- "title": "Add Horizontal App Autoscaler resource.",
2147
- "default": false
2148
- },
2149
- "minReplicas": {
2150
- "type": "number",
2151
- "title": "Lower limit for the number of replicas to which the autoscaler can scale up.",
2152
- "default": 1
2153
- },
2154
- "maxReplicas": {
2155
- "type": "number",
2156
- "title": "Upper limit for the number of replicas to which the autoscaler can scale up.",
2157
- "default": 3
2158
- },
2159
- "behavior": {
2160
- "type": "object"
2161
- },
2162
- "metrics": {
2163
- "type": "array",
2164
- "items": {
2165
- "type": "object"
2166
- }
2167
- }
2168
- }
2169
- }
2170
- }
2171
92
  }
2172
93
  }
2173
94
  }