@sap/cds-dk 7.2.0 → 7.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/activate.js +2 -2
- package/bin/add.js +1 -1
- package/bin/build.js +6 -3
- package/bin/compile/index.js +9 -5
- package/bin/env.js +0 -3
- package/bin/extend.js +29 -3
- package/bin/import.js +7 -3
- package/bin/init.js +31 -37
- package/bin/push.js +10 -6
- package/bin/repl.js +23 -43
- package/bin/watch.js +5 -9
- package/lib/bind/bindingResolver.js +2 -1
- package/lib/bind/index.js +1 -1
- package/lib/build/{buildTaskHandler.js → buildPlugin.js} +40 -27
- package/lib/build/buildTaskEngine.js +75 -74
- package/lib/build/buildTaskFactory.js +39 -32
- package/lib/build/buildTaskProvider.js +24 -19
- package/lib/build/buildTaskProviderFactory.js +125 -58
- package/lib/build/constants.js +6 -4
- package/lib/build/index.js +7 -3
- package/lib/build/plugins.js +35 -0
- package/lib/build/provider/{buildTaskHandlerEdmx.js → edmxBuildPlugin.js} +11 -7
- package/lib/build/provider/{buildTaskHandlerFeatureToggles.js → featureToggleBuildPlugin.js} +5 -5
- package/lib/build/provider/fiori/index.js +5 -6
- package/lib/build/provider/hana/index.js +54 -30
- package/lib/build/provider/{buildTaskHandlerInternal.js → internalBuildPlugin.js} +14 -10
- package/lib/build/provider/{buildTaskProviderInternal.js → internalBuildTaskProvider.js} +27 -28
- package/lib/build/provider/java/index.js +30 -24
- package/lib/build/provider/mtx/index.js +4 -4
- package/lib/build/provider/mtx/resourcesTarBuilder.js +8 -8
- package/lib/build/provider/mtx-extension/index.js +17 -9
- package/lib/build/provider/mtx-sidecar/index.js +17 -11
- package/lib/build/provider/nodejs/index.js +14 -13
- package/lib/build/util.js +5 -0
- package/lib/client/auth_manager.js +6 -12
- package/lib/client/base_command.js +1 -1
- package/lib/client/download_legacy.js +43 -0
- package/lib/client/params.js +6 -0
- package/lib/client/push.js +41 -1
- package/lib/client/settings_manager.js +28 -17
- package/lib/compile/openapi/csdl2openapi.js +1 -1
- package/lib/env/schema.js +36 -0
- package/lib/env/schemas/cds-rc.json +101 -0
- package/lib/import/common.js +23 -10
- package/lib/import/importapi.js +2 -2
- package/lib/import/message.js +3 -1
- package/lib/import/odata/v4parser.js +23 -7
- package/lib/index.js +11 -0
- package/lib/init/constants.js +5 -2
- package/lib/init/index.js +2 -3
- package/lib/init/template/_merging/registry-mta.js +33 -0
- package/lib/init/template/approuter/files/mta.yaml.hbs +1 -1
- package/lib/init/template/approuter/index.js +9 -9
- package/lib/init/template/connectivity/index.js +5 -4
- package/lib/init/template/destination/index.js +2 -5
- package/lib/init/template/helm/subcharts/content-deployment/Chart.yaml +4 -4
- package/lib/init/template/helm/subcharts/content-deployment/templates/_helpers.tpl +4 -2
- package/lib/init/template/helm/subcharts/content-deployment/templates/job.yaml +4 -3
- package/lib/init/template/helm/subcharts/content-deployment/values.schema.json +9 -83
- package/lib/init/template/helm/subcharts/content-deployment/values.yaml +54 -15
- package/lib/init/template/helm/subcharts/service-instance/Chart.yaml +4 -4
- package/lib/init/template/helm/subcharts/service-instance/templates/serviceinstance.yaml +1 -1
- package/lib/init/template/helm/subcharts/service-instance/values.schema.json +0 -17
- package/lib/init/template/helm/subcharts/service-instance/values.yaml +28 -0
- package/lib/init/template/helm/subcharts/web-application/Chart.yaml +5 -5
- package/lib/init/template/helm/subcharts/web-application/templates/_api.tpl +60 -0
- package/lib/init/template/helm/subcharts/web-application/templates/_helpers.tpl +34 -73
- package/lib/init/template/helm/subcharts/web-application/templates/api-rule.yaml +4 -4
- package/lib/init/template/helm/subcharts/web-application/templates/deployment.yaml +96 -17
- package/lib/init/template/helm/subcharts/web-application/templates/network-policy.yaml +19 -3
- package/lib/init/template/helm/subcharts/web-application/templates/pod-disruption-budget.yaml +3 -3
- package/lib/init/template/helm/subcharts/web-application/templates/rbac.yaml +26 -0
- package/lib/init/template/helm/subcharts/web-application/templates/secret.yaml +1 -1
- package/lib/init/template/helm/subcharts/web-application/templates/service-account.yaml +1 -1
- package/lib/init/template/helm/subcharts/web-application/templates/service-binding.yaml +1 -1
- package/lib/init/template/helm/subcharts/web-application/templates/service.yaml +21 -3
- package/lib/init/template/helm/subcharts/web-application/templates/virtual-service.yaml +36 -0
- package/lib/init/template/helm/subcharts/web-application/values.schema.json +535 -142
- package/lib/init/template/helm/subcharts/web-application/values.yaml +168 -44
- package/lib/init/template/html5-repo/index.js +27 -3
- package/lib/init/template/mta/index.js +9 -3
- package/lib/init/template/nodejs/files/.vscode/launch.json +0 -3
- package/lib/init/template/notifications/files/mta.yaml.hbs +17 -0
- package/lib/init/template/notifications/files/notificationtypes.json.hbs +16 -0
- package/lib/init/template/notifications/files/package.json.hbs +14 -0
- package/lib/init/template/notifications/index.js +52 -0
- package/lib/init/template/postgres/files/mta.yaml.hbs +27 -0
- package/lib/init/template/postgres/files/package.json.hbs +5 -0
- package/lib/init/template/postgres/index.js +52 -0
- package/lib/init/util/projectReader.js +0 -1
- package/lib/util/pruneAxiosErrors.js +25 -8
- package/lib/util/term.js +1 -2
- package/lib/watch/livereload-server.js +38 -2
- package/lib/watch/node-watch.js +3 -2
- package/npm-shrinkwrap.json +334 -335
- package/package.json +2 -2
- package/lib/init/template/helm/subcharts/content-deployment/templating.md +0 -37
- package/lib/init/template/helm/subcharts/content-deployment/values-lint.yaml +0 -5
- package/lib/init/template/helm/subcharts/content-deployment/values.md +0 -1011
- package/lib/init/template/helm/subcharts/service-instance/templating.md +0 -18
- package/lib/init/template/helm/subcharts/service-instance/values-lint.yaml +0 -2
- package/lib/init/template/helm/subcharts/service-instance/values.md +0 -186
- package/lib/init/template/helm/subcharts/web-application/templating.md +0 -51
- package/lib/init/template/helm/subcharts/web-application/values-lint.yaml +0 -8
- package/lib/init/template/helm/subcharts/web-application/values.md +0 -1363
|
@@ -10,27 +10,19 @@
|
|
|
10
10
|
"properties": {
|
|
11
11
|
"global": {
|
|
12
12
|
"$id": "#/properties/global",
|
|
13
|
-
"title": "Helm global values",
|
|
14
|
-
"description": "For more information, see https://helm.sh/docs/chart_template_guide/subcharts_and_globals/#global-chart-values",
|
|
15
13
|
"type": "object",
|
|
16
14
|
"x-ignore-untested": true,
|
|
17
15
|
"additionalProperties": true,
|
|
18
16
|
"properties": {
|
|
19
17
|
"imagePullSecret": {
|
|
20
18
|
"$id": "#/properties/global/imagePullSecret",
|
|
21
|
-
"title": "Image Pull Secret configuration",
|
|
22
|
-
"description": "For more information, see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/",
|
|
23
19
|
"additionalProperties": true,
|
|
24
20
|
"type": "object",
|
|
25
21
|
"properties": {
|
|
26
22
|
"name": {
|
|
27
|
-
"title": "Secret name",
|
|
28
|
-
"description": "Name of the Kubernetes Secret, used as an image pull secret (must be of type kubernetes.io/dockerconfigjson). Can't be used with the `dockerconfigjson` option.",
|
|
29
23
|
"$ref": "#/definitions/KubernetesName"
|
|
30
24
|
},
|
|
31
25
|
"dockerconfigjson": {
|
|
32
|
-
"title": "Secret content",
|
|
33
|
-
"description": "The content for the dynamically generated Kubernetes Secret, which will be used as an image pull secret. Can't be used with the `name` option.",
|
|
34
26
|
"type": "string"
|
|
35
27
|
}
|
|
36
28
|
},
|
|
@@ -53,8 +45,6 @@
|
|
|
53
45
|
},
|
|
54
46
|
"image": {
|
|
55
47
|
"$id": "#/properties/global/image",
|
|
56
|
-
"title": "Image configuration",
|
|
57
|
-
"description": "Either name or repository is required.",
|
|
58
48
|
"type": "object",
|
|
59
49
|
"required": [],
|
|
60
50
|
"additionalProperties": true,
|
|
@@ -68,35 +58,35 @@
|
|
|
68
58
|
"$ref": "#/definitions/ImageRegistry"
|
|
69
59
|
}
|
|
70
60
|
}
|
|
61
|
+
},
|
|
62
|
+
"imagePullPolicy": {
|
|
63
|
+
"$ref": "#/definitions/ImagePullPolicy"
|
|
71
64
|
}
|
|
72
65
|
}
|
|
73
66
|
},
|
|
74
67
|
"nameOverride": {
|
|
75
68
|
"$id": "#/properties/nameOverride",
|
|
76
|
-
"title": "Chart name override",
|
|
77
|
-
"description": "Will be used instead of the `.Chart.Name`, e.g. when generating the Deployment name.",
|
|
78
69
|
"type": "string",
|
|
79
70
|
"pattern": "[0-9a-z][0-9a-z-.]*"
|
|
80
71
|
},
|
|
81
72
|
"fullnameOverride": {
|
|
82
73
|
"$id": "#/properties/fullnameOverride",
|
|
83
|
-
"title": "Override for the `.fullname` helper function.",
|
|
84
|
-
"description": "Will be used as an override for the `.fullname` helper function (i.e. `.Release.Name-.Chart.Name`).",
|
|
85
74
|
"type": "string",
|
|
86
75
|
"pattern": "[0-9a-z][0-9a-z-.]*"
|
|
87
76
|
},
|
|
77
|
+
"runAsUser": {
|
|
78
|
+
"$id": "#/properties/runAsUser",
|
|
79
|
+
"type": "integer",
|
|
80
|
+
"minimum": 1
|
|
81
|
+
},
|
|
88
82
|
"replicaCount": {
|
|
89
83
|
"$id": "#/properties/replicaCount",
|
|
90
|
-
"title": "Replica count",
|
|
91
|
-
"description": "Number of desired pods within the Deployment.",
|
|
92
84
|
"type": "integer",
|
|
93
85
|
"minimum": 1,
|
|
94
86
|
"default": 1
|
|
95
87
|
},
|
|
96
88
|
"port": {
|
|
97
89
|
"$id": "#/properties/port",
|
|
98
|
-
"title": "Port",
|
|
99
|
-
"description": "Application's exposed port.",
|
|
100
90
|
"type": "integer",
|
|
101
91
|
"minimum": 1,
|
|
102
92
|
"maximum": 65535,
|
|
@@ -104,13 +94,13 @@
|
|
|
104
94
|
},
|
|
105
95
|
"serviceAccountName": {
|
|
106
96
|
"$id": "#/properties/serviceAccountName",
|
|
107
|
-
"title": "Service Account name",
|
|
108
|
-
"description": "Name of the Service Account assigned to pods.",
|
|
109
97
|
"type": "string"
|
|
110
98
|
},
|
|
99
|
+
"imagePullPolicy": {
|
|
100
|
+
"$ref": "#/definitions/ImagePullPolicy"
|
|
101
|
+
},
|
|
111
102
|
"image": {
|
|
112
103
|
"$id": "#/properties/image",
|
|
113
|
-
"title": "Image configuration",
|
|
114
104
|
"type": "object",
|
|
115
105
|
"required": [
|
|
116
106
|
"repository"
|
|
@@ -119,10 +109,8 @@
|
|
|
119
109
|
"properties": {
|
|
120
110
|
"repository": {
|
|
121
111
|
"$id": "#/properties/image/properties/repository",
|
|
122
|
-
"title": "Repository of the image",
|
|
123
|
-
"description": "Should also include the image name (i.e. everything before the `:` sign).",
|
|
124
112
|
"type": "string",
|
|
125
|
-
"pattern": "^[\\w-./:]*
|
|
113
|
+
"pattern": "^[\\w-./:]*(@sha256)?$"
|
|
126
114
|
},
|
|
127
115
|
"tag": {
|
|
128
116
|
"$id": "#/properties/image/properties/tag",
|
|
@@ -136,19 +124,15 @@
|
|
|
136
124
|
},
|
|
137
125
|
"imagePullSecret": {
|
|
138
126
|
"$id": "#/properties/imagePullSecret",
|
|
139
|
-
"title": "Image Pull Secret configuration",
|
|
140
|
-
"description": "For more information, see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/",
|
|
141
127
|
"additionalProperties": false,
|
|
142
128
|
"type": "object",
|
|
143
129
|
"properties": {
|
|
144
130
|
"name": {
|
|
145
131
|
"title": "Secret name",
|
|
146
|
-
"description": "Name of the Kubernetes Secret, used as an image pull secret (must be of type kubernetes.io/dockerconfigjson). Can't be used with the `dockerconfigjson` option.",
|
|
147
132
|
"$ref": "#/definitions/KubernetesName"
|
|
148
133
|
},
|
|
149
134
|
"dockerconfigjson": {
|
|
150
135
|
"title": "Secret content",
|
|
151
|
-
"description": "The content for the dynamically generated Kubernetes Secret, which will be used as an image pull secret. Can't be used with the `name` option.",
|
|
152
136
|
"type": "string"
|
|
153
137
|
}
|
|
154
138
|
},
|
|
@@ -171,13 +155,10 @@
|
|
|
171
155
|
},
|
|
172
156
|
"additionalVolumes": {
|
|
173
157
|
"$id": "#/properties/additionalVolumes",
|
|
174
|
-
"title": "Additional Pod volumes",
|
|
175
|
-
"description": "List of volumes, which should be mounted into Pods",
|
|
176
158
|
"type": "array",
|
|
177
159
|
"additionalItems": false,
|
|
178
160
|
"default": [],
|
|
179
161
|
"items": {
|
|
180
|
-
"title": "Additional volume configuration",
|
|
181
162
|
"type": "object",
|
|
182
163
|
"additionalProperties": true,
|
|
183
164
|
"required": [
|
|
@@ -186,12 +167,10 @@
|
|
|
186
167
|
],
|
|
187
168
|
"properties": {
|
|
188
169
|
"name": {
|
|
189
|
-
"title": "Name of the volume",
|
|
190
170
|
"type": "string",
|
|
191
171
|
"$ref": "#/definitions/KubernetesName"
|
|
192
172
|
},
|
|
193
173
|
"volumeMount": {
|
|
194
|
-
"title": "Volume mount configuration",
|
|
195
174
|
"type": "object",
|
|
196
175
|
"required": [
|
|
197
176
|
"mountPath"
|
|
@@ -199,25 +178,23 @@
|
|
|
199
178
|
"additionalProperties": false,
|
|
200
179
|
"properties": {
|
|
201
180
|
"mountPath": {
|
|
202
|
-
"description": "Path within a Pod, where the volume should be mounted.",
|
|
203
181
|
"type": "string",
|
|
204
182
|
"pattern": "^[^:]*$"
|
|
205
183
|
},
|
|
206
184
|
"mountPropagation": {
|
|
207
|
-
"description": "Mount propagation allows for sharing volumes mounted by a container to other containers in the same pod, or even to other pods on the same node.",
|
|
208
185
|
"type": "string",
|
|
209
|
-
"enum": [
|
|
186
|
+
"enum": [
|
|
187
|
+
"None",
|
|
188
|
+
"HostToContainer"
|
|
189
|
+
]
|
|
210
190
|
},
|
|
211
191
|
"readOnly": {
|
|
212
|
-
"description": "Whether mounted volume should be in read-only mode.",
|
|
213
192
|
"type": "boolean"
|
|
214
193
|
},
|
|
215
194
|
"subPath": {
|
|
216
|
-
"description": "Sub-path inside the referenced volume instead of its root.",
|
|
217
195
|
"type": "string"
|
|
218
196
|
},
|
|
219
197
|
"subPathExpr": {
|
|
220
|
-
"description": "Similar to the `subPath`, but can be constructed using the downward API environment variables. For more info, see https://kubernetes.io/docs/concepts/storage/volumes/#using-subpath-expanded-environment",
|
|
221
198
|
"type": "string"
|
|
222
199
|
}
|
|
223
200
|
}
|
|
@@ -227,7 +204,6 @@
|
|
|
227
204
|
},
|
|
228
205
|
"resources": {
|
|
229
206
|
"$id": "#/properties/resources",
|
|
230
|
-
"title": "Pod resources configuration",
|
|
231
207
|
"type": "object",
|
|
232
208
|
"additionalProperties": false,
|
|
233
209
|
"required": [
|
|
@@ -237,7 +213,6 @@
|
|
|
237
213
|
"properties": {
|
|
238
214
|
"requests": {
|
|
239
215
|
"type": "object",
|
|
240
|
-
"description": "Minimal required resources for the application to operate, that will be reserved for each replica.",
|
|
241
216
|
"additionalProperties": false,
|
|
242
217
|
"required": [
|
|
243
218
|
"cpu",
|
|
@@ -245,17 +220,17 @@
|
|
|
245
220
|
],
|
|
246
221
|
"properties": {
|
|
247
222
|
"cpu": {
|
|
248
|
-
"description": "CPU resource units, as described here https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu",
|
|
249
223
|
"$id": "#/properties/resources/properties/requests/properties/cpu",
|
|
250
|
-
"type": [
|
|
224
|
+
"type": [
|
|
225
|
+
"string",
|
|
226
|
+
"number"
|
|
227
|
+
]
|
|
251
228
|
},
|
|
252
229
|
"ephemeral-storage": {
|
|
253
|
-
"description": "Size of the local ephemeral storage, measured in bytes. For more info, see https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#local-ephemeral-storage",
|
|
254
230
|
"$id": "#/properties/resources/properties/requests/properties/ephemeral-storage",
|
|
255
231
|
"type": "string"
|
|
256
232
|
},
|
|
257
233
|
"memory": {
|
|
258
|
-
"description": "Amount of memory, mesaured in bytes. For more info, see https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-memory",
|
|
259
234
|
"$id": "#/properties/resources/properties/requests/properties/memory",
|
|
260
235
|
"type": "string"
|
|
261
236
|
}
|
|
@@ -263,24 +238,23 @@
|
|
|
263
238
|
},
|
|
264
239
|
"limits": {
|
|
265
240
|
"type": "object",
|
|
266
|
-
"description": "",
|
|
267
241
|
"additionalProperties": false,
|
|
268
242
|
"required": [
|
|
269
243
|
"memory"
|
|
270
244
|
],
|
|
271
245
|
"properties": {
|
|
272
246
|
"cpu": {
|
|
273
|
-
"description": "CPU resource units, as described here https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu",
|
|
274
247
|
"$id": "#/properties/resources/properties/limits/properties/cpu",
|
|
275
|
-
"type": [
|
|
248
|
+
"type": [
|
|
249
|
+
"string",
|
|
250
|
+
"number"
|
|
251
|
+
]
|
|
276
252
|
},
|
|
277
253
|
"ephemeral-storage": {
|
|
278
|
-
"description": "Size of the local ephemeral storage, measured in bytes. For more info, see https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#local-ephemeral-storage",
|
|
279
254
|
"$id": "#/properties/resources/properties/limits/properties/ephemeral-storage",
|
|
280
255
|
"type": "string"
|
|
281
256
|
},
|
|
282
257
|
"memory": {
|
|
283
|
-
"description": "Amount of memory, mesaured in bytes. For more info, see https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-memory",
|
|
284
258
|
"$id": "#/properties/resources/properties/limits/properties/memory",
|
|
285
259
|
"type": "string"
|
|
286
260
|
}
|
|
@@ -288,20 +262,31 @@
|
|
|
288
262
|
}
|
|
289
263
|
}
|
|
290
264
|
},
|
|
265
|
+
"istio": {
|
|
266
|
+
"$id": "#/properties/istio",
|
|
267
|
+
"additionalProperties": false,
|
|
268
|
+
"type": "object",
|
|
269
|
+
"required": [
|
|
270
|
+
"enabled"
|
|
271
|
+
],
|
|
272
|
+
"properties": {
|
|
273
|
+
"enabled": {
|
|
274
|
+
"$id": "#/properties/istio/properties/enabled",
|
|
275
|
+
"type": "boolean"
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
},
|
|
291
279
|
"availability": {
|
|
292
280
|
"$id": "#/properties/availability",
|
|
293
|
-
"title": "Availability related configuration",
|
|
294
281
|
"type": "object",
|
|
295
282
|
"additionalProperties": false,
|
|
296
283
|
"properties": {
|
|
297
284
|
"podDisruptionBudget": {
|
|
298
285
|
"$id": "#/properties/availability/properties/podDisruptionBudget",
|
|
299
|
-
"description": "The max disruption to the pods.",
|
|
300
286
|
"type": "object",
|
|
301
287
|
"additionalProperties": false,
|
|
302
288
|
"properties": {
|
|
303
289
|
"maxUnavailable": {
|
|
304
|
-
"description": "An eviction is allowed if this maximum of pods are unavailable.",
|
|
305
290
|
"type": "string",
|
|
306
291
|
"default": "10%"
|
|
307
292
|
}
|
|
@@ -309,50 +294,58 @@
|
|
|
309
294
|
},
|
|
310
295
|
"topologySpreadConstraints": {
|
|
311
296
|
"$id": "#/properties/availability/properties/topologySpreadConstraints",
|
|
312
|
-
"description": "How pods ought to spread across topology domains.",
|
|
313
297
|
"uniqueItems": true,
|
|
314
298
|
"items": {
|
|
315
299
|
"type": "object",
|
|
316
300
|
"additionalProperties": false,
|
|
317
|
-
"required": [
|
|
301
|
+
"required": [
|
|
302
|
+
"topologyKey",
|
|
303
|
+
"maxSkew",
|
|
304
|
+
"whenUnsatisfiable"
|
|
305
|
+
],
|
|
318
306
|
"properties": {
|
|
319
307
|
"topologyKey": {
|
|
320
|
-
"type": "string"
|
|
321
|
-
"description": "Nodes that have a label with this key and identical values are considered to be in the same topology."
|
|
308
|
+
"type": "string"
|
|
322
309
|
},
|
|
323
310
|
"maxSkew": {
|
|
324
311
|
"type": "integer",
|
|
325
|
-
"description": "Describes the degree to which pods may be unevenly distributed.",
|
|
326
312
|
"minimum": 1
|
|
327
313
|
},
|
|
328
314
|
"whenUnsatisfiable": {
|
|
329
315
|
"type": "string",
|
|
330
|
-
"
|
|
331
|
-
|
|
316
|
+
"enum": [
|
|
317
|
+
"ScheduleAnyway",
|
|
318
|
+
"DoNotSchedule"
|
|
319
|
+
]
|
|
332
320
|
}
|
|
333
321
|
}
|
|
334
322
|
},
|
|
335
323
|
"default": [
|
|
336
|
-
{
|
|
337
|
-
|
|
324
|
+
{
|
|
325
|
+
"maxSkew": 1,
|
|
326
|
+
"topologyKey": "topology.kubernetes.io/zone",
|
|
327
|
+
"whenUnsatisfiable": "ScheduleAnyway"
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"maxSkew": 1,
|
|
331
|
+
"topologyKey": "kubernetes.io/hostname",
|
|
332
|
+
"whenUnsatisfiable": "ScheduleAnyway"
|
|
333
|
+
}
|
|
338
334
|
]
|
|
339
335
|
}
|
|
340
336
|
}
|
|
341
337
|
},
|
|
342
338
|
"health": {
|
|
343
339
|
"$id": "#/properties/health",
|
|
344
|
-
"title": "Health-check configuration",
|
|
345
340
|
"type": "object",
|
|
346
341
|
"additionalProperties": false,
|
|
347
342
|
"properties": {
|
|
348
343
|
"liveness": {
|
|
349
344
|
"$id": "#/properties/health/properties/liveness",
|
|
350
|
-
"description": "Liveness-probe configuration.",
|
|
351
345
|
"type": "object",
|
|
352
346
|
"additionalProperties": false,
|
|
353
347
|
"properties": {
|
|
354
348
|
"path": {
|
|
355
|
-
"description": "HTTP path used by Kubernetes, to perform liveness-probe calls.",
|
|
356
349
|
"type": "string",
|
|
357
350
|
"default": "/healthz"
|
|
358
351
|
}
|
|
@@ -360,12 +353,10 @@
|
|
|
360
353
|
},
|
|
361
354
|
"readiness": {
|
|
362
355
|
"$id": "#/properties/health/properties/readiness",
|
|
363
|
-
"description": "Readiness-probe configuration.",
|
|
364
356
|
"type": "object",
|
|
365
357
|
"additionalProperties": false,
|
|
366
358
|
"properties": {
|
|
367
359
|
"path": {
|
|
368
|
-
"description": "HTTP path used by Kubernetes, to perform readiness-probe calls.",
|
|
369
360
|
"type": "string",
|
|
370
361
|
"default": "/healthz"
|
|
371
362
|
}
|
|
@@ -375,26 +366,22 @@
|
|
|
375
366
|
},
|
|
376
367
|
"startupTimeoutSeconds": {
|
|
377
368
|
"$id": "#/properties/startupTimeoutSeconds",
|
|
378
|
-
"description": "Initial timeout in seconds, during which the app must start giving the response to the liveness-probe.",
|
|
379
369
|
"type": "integer",
|
|
380
370
|
"minimum": 1,
|
|
381
371
|
"default": 30
|
|
382
372
|
},
|
|
383
373
|
"readOnlyRootFilesystem": {
|
|
384
374
|
"$id": "#/properties/readOnlyRootFilesystem",
|
|
385
|
-
"description": "Use read only filesystem for the Deployment.",
|
|
386
375
|
"type": "boolean"
|
|
387
376
|
},
|
|
388
377
|
"terminationGracePeriodSeconds": {
|
|
389
378
|
"$id": "#/properties/terminationGracePeriodSeconds",
|
|
390
|
-
"description": "Time in seconds after which the pod will be forcefully stopped after receiving SIGTERM.",
|
|
391
379
|
"type": "integer",
|
|
392
380
|
"minimum": 0,
|
|
393
381
|
"default": 30
|
|
394
382
|
},
|
|
395
383
|
"env": {
|
|
396
384
|
"$id": "#/properties/env",
|
|
397
|
-
"description": "Key-value map of environment variables, which should be added to the Pod spec.",
|
|
398
385
|
"anyOf": [
|
|
399
386
|
{
|
|
400
387
|
"type": "object",
|
|
@@ -403,68 +390,58 @@
|
|
|
403
390
|
"$comment": "regex above copied from https://github.com/kubernetes/kubernetes/blob/ea0764452222146c47ec826977f49d7001b0ea8c/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go#L402",
|
|
404
391
|
"anyOf": [
|
|
405
392
|
{
|
|
406
|
-
"
|
|
407
|
-
|
|
393
|
+
"type": [
|
|
394
|
+
"integer",
|
|
395
|
+
"string"
|
|
396
|
+
]
|
|
408
397
|
},
|
|
409
398
|
{
|
|
410
|
-
"description": "`valueFrom` configuration for the environment variable https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/",
|
|
411
399
|
"type": "object",
|
|
412
400
|
"additionalProperties": false,
|
|
413
401
|
"maxProperties": 1,
|
|
414
402
|
"properties": {
|
|
415
403
|
"configMapKeyRef": {
|
|
416
|
-
"description": "Selects a key of a ConfigMap.",
|
|
417
404
|
"type": "object",
|
|
418
405
|
"additionalProperties": false,
|
|
419
406
|
"properties": {
|
|
420
407
|
"name": {
|
|
421
|
-
"description": "Name of a ConfigMap.",
|
|
422
408
|
"type": "string"
|
|
423
409
|
},
|
|
424
410
|
"key": {
|
|
425
|
-
"description": "Key in that ConfigMap, which value will be used.",
|
|
426
411
|
"type": "string"
|
|
427
412
|
}
|
|
428
413
|
}
|
|
429
414
|
},
|
|
430
415
|
"secretKeyRef": {
|
|
431
|
-
"description": "Selects a key of a Secret.",
|
|
432
416
|
"type": "object",
|
|
433
417
|
"additionalProperties": false,
|
|
434
418
|
"properties": {
|
|
435
419
|
"name": {
|
|
436
|
-
"description": "Name of a Secret.",
|
|
437
420
|
"type": "string"
|
|
438
421
|
},
|
|
439
422
|
"key": {
|
|
440
|
-
"description": "Key in that Secret, which value will be used.",
|
|
441
423
|
"type": "string"
|
|
442
424
|
}
|
|
443
425
|
}
|
|
444
426
|
},
|
|
445
427
|
"resourceFieldRef": {
|
|
446
|
-
"description": "Selects a resource of the container.",
|
|
447
428
|
"type": "object",
|
|
448
429
|
"additionalProperties": false,
|
|
449
430
|
"properties": {
|
|
450
431
|
"containerName": {
|
|
451
|
-
"description": "Name of a Container.",
|
|
452
432
|
"$ref": "#/definitions/KubernetesName"
|
|
453
433
|
},
|
|
454
434
|
"resource": {
|
|
455
|
-
"description": "Only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.",
|
|
456
435
|
"type": "string"
|
|
457
436
|
}
|
|
458
437
|
}
|
|
459
438
|
},
|
|
460
439
|
"fieldRef": {
|
|
461
|
-
"description": "Selects a field of the pod.",
|
|
462
440
|
"type": "object",
|
|
463
441
|
"additionalProperties": false,
|
|
464
442
|
"properties": {
|
|
465
443
|
"fieldPath": {
|
|
466
|
-
"type": "string"
|
|
467
|
-
"description": "Supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs."
|
|
444
|
+
"type": "string"
|
|
468
445
|
}
|
|
469
446
|
}
|
|
470
447
|
}
|
|
@@ -492,61 +469,53 @@
|
|
|
492
469
|
"pattern": "^[-._a-zA-Z][-._a-zA-Z0-9]*$"
|
|
493
470
|
},
|
|
494
471
|
"value": {
|
|
495
|
-
"type": [
|
|
472
|
+
"type": [
|
|
473
|
+
"string",
|
|
474
|
+
"integer"
|
|
475
|
+
]
|
|
496
476
|
},
|
|
497
477
|
"configMapKeyRef": {
|
|
498
|
-
"description": "Selects a key of a ConfigMap.",
|
|
499
478
|
"type": "object",
|
|
500
479
|
"additionalProperties": false,
|
|
501
480
|
"properties": {
|
|
502
481
|
"name": {
|
|
503
|
-
"description": "Name of a ConfigMap.",
|
|
504
482
|
"type": "string"
|
|
505
483
|
},
|
|
506
484
|
"key": {
|
|
507
|
-
"description": "Key in that ConfigMap, which value will be used.",
|
|
508
485
|
"type": "string"
|
|
509
486
|
}
|
|
510
487
|
}
|
|
511
488
|
},
|
|
512
489
|
"secretKeyRef": {
|
|
513
|
-
"description": "Selects a key of a Secret.",
|
|
514
490
|
"type": "object",
|
|
515
491
|
"additionalProperties": false,
|
|
516
492
|
"properties": {
|
|
517
493
|
"name": {
|
|
518
|
-
"description": "Name of a Secret.",
|
|
519
494
|
"type": "string"
|
|
520
495
|
},
|
|
521
496
|
"key": {
|
|
522
|
-
"description": "Key in that Secret, which value will be used.",
|
|
523
497
|
"type": "string"
|
|
524
498
|
}
|
|
525
499
|
}
|
|
526
500
|
},
|
|
527
501
|
"resourceFieldRef": {
|
|
528
|
-
"description": "Selects a resource of the container.",
|
|
529
502
|
"type": "object",
|
|
530
503
|
"additionalProperties": false,
|
|
531
504
|
"properties": {
|
|
532
505
|
"containerName": {
|
|
533
|
-
"description": "Name of a Container.",
|
|
534
506
|
"$ref": "#/definitions/KubernetesName"
|
|
535
507
|
},
|
|
536
508
|
"resource": {
|
|
537
|
-
"description": "Only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.",
|
|
538
509
|
"type": "string"
|
|
539
510
|
}
|
|
540
511
|
}
|
|
541
512
|
},
|
|
542
513
|
"fieldRef": {
|
|
543
|
-
"description": "Selects a field of the pod.",
|
|
544
514
|
"type": "object",
|
|
545
515
|
"additionalProperties": false,
|
|
546
516
|
"properties": {
|
|
547
517
|
"fieldPath": {
|
|
548
|
-
"type": "string"
|
|
549
|
-
"description": "Supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs."
|
|
518
|
+
"type": "string"
|
|
550
519
|
}
|
|
551
520
|
}
|
|
552
521
|
}
|
|
@@ -558,7 +527,6 @@
|
|
|
558
527
|
},
|
|
559
528
|
"envFrom": {
|
|
560
529
|
"$id": "#/properties/envFrom",
|
|
561
|
-
"description": "List of sources to populate environment variables in the pod.",
|
|
562
530
|
"type": "array",
|
|
563
531
|
"default": [],
|
|
564
532
|
"items": {
|
|
@@ -568,37 +536,41 @@
|
|
|
568
536
|
"additionalProperties": false,
|
|
569
537
|
"properties": {
|
|
570
538
|
"configMapRef": {
|
|
571
|
-
"description": "The contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.",
|
|
572
539
|
"properties": {
|
|
573
540
|
"name": {
|
|
574
|
-
"description": "Name of a ConfigMap.",
|
|
575
541
|
"type": "string"
|
|
576
542
|
}
|
|
577
543
|
},
|
|
578
|
-
"required": [
|
|
544
|
+
"required": [
|
|
545
|
+
"name"
|
|
546
|
+
],
|
|
579
547
|
"additionalProperties": false,
|
|
580
548
|
"type": "object"
|
|
581
549
|
}
|
|
582
550
|
},
|
|
583
|
-
"required": [
|
|
551
|
+
"required": [
|
|
552
|
+
"configMapRef"
|
|
553
|
+
]
|
|
584
554
|
},
|
|
585
555
|
{
|
|
586
556
|
"additionalProperties": false,
|
|
587
557
|
"properties": {
|
|
588
558
|
"secretRef": {
|
|
589
|
-
"description": "The contents of the target Secret's Data field will represent the key-value pairs as environment variables.",
|
|
590
559
|
"properties": {
|
|
591
560
|
"name": {
|
|
592
|
-
"description": "Name of a Secret.",
|
|
593
561
|
"type": "string"
|
|
594
562
|
}
|
|
595
563
|
},
|
|
596
|
-
"required": [
|
|
564
|
+
"required": [
|
|
565
|
+
"name"
|
|
566
|
+
],
|
|
597
567
|
"additionalProperties": false,
|
|
598
568
|
"type": "object"
|
|
599
569
|
}
|
|
600
570
|
},
|
|
601
|
-
"required": [
|
|
571
|
+
"required": [
|
|
572
|
+
"secretRef"
|
|
573
|
+
]
|
|
602
574
|
}
|
|
603
575
|
]
|
|
604
576
|
}
|
|
@@ -611,45 +583,44 @@
|
|
|
611
583
|
"properties": {
|
|
612
584
|
"host": {
|
|
613
585
|
"$id": "#/properties/expose/properties/host",
|
|
614
|
-
"description": "Specifies the service's dns name for inbound external traffic. If it doesn't contain a dot, the default cluster domain will be appended.",
|
|
615
586
|
"type": "string"
|
|
616
587
|
},
|
|
617
588
|
"enabled": {
|
|
618
589
|
"$id": "#/properties/expose/properties/enabled",
|
|
619
|
-
"description": "Expose the application to the internet.",
|
|
620
590
|
"type": "boolean",
|
|
621
591
|
"default": true
|
|
622
592
|
},
|
|
623
593
|
"gateway": {
|
|
624
594
|
"$id": "#/properties/expose/properties/gateway",
|
|
625
|
-
"description": "Use this istio gateway for incoming traffic.",
|
|
626
595
|
"type": "string",
|
|
627
596
|
"default": "kyma-gateway.kyma-system.svc.cluster.local"
|
|
628
597
|
},
|
|
598
|
+
"tenantGateway": {
|
|
599
|
+
"$id": "#/properties/expose/properties/gateway",
|
|
600
|
+
"type": "string"
|
|
601
|
+
},
|
|
629
602
|
"rules": {
|
|
630
603
|
"$id": "#/properties/expose/properties/rules",
|
|
631
|
-
"description": "Rules represents collection of Rule to apply.",
|
|
632
604
|
"type": "array",
|
|
633
605
|
"items": {
|
|
634
|
-
"description": "A rule to apply.",
|
|
635
606
|
"type": "object"
|
|
636
607
|
},
|
|
637
608
|
"default": [
|
|
638
609
|
{
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
610
|
+
"accessStrategies": [
|
|
611
|
+
{
|
|
612
|
+
"handler": "allow"
|
|
613
|
+
}
|
|
614
|
+
],
|
|
615
|
+
"methods": [
|
|
616
|
+
"GET",
|
|
617
|
+
"POST",
|
|
618
|
+
"PUT",
|
|
619
|
+
"PATCH",
|
|
620
|
+
"DELETE",
|
|
621
|
+
"HEAD"
|
|
622
|
+
],
|
|
623
|
+
"path": "/.*"
|
|
653
624
|
}
|
|
654
625
|
]
|
|
655
626
|
}
|
|
@@ -700,6 +671,56 @@
|
|
|
700
671
|
}
|
|
701
672
|
}
|
|
702
673
|
},
|
|
674
|
+
"rbac": {
|
|
675
|
+
"$id": "#/properties/rbac",
|
|
676
|
+
"title": "Role-based access control configuration https://kubernetes.io/docs/reference/access-authn-authz/rbac/",
|
|
677
|
+
"type": "object",
|
|
678
|
+
"additionalProperties": false,
|
|
679
|
+
"maxProperties": 1,
|
|
680
|
+
"properties": {
|
|
681
|
+
"role": {
|
|
682
|
+
"type": "string",
|
|
683
|
+
"title": "Existing Role to use. The Role must be in the same namespace."
|
|
684
|
+
},
|
|
685
|
+
"clusterRole": {
|
|
686
|
+
"type": "string",
|
|
687
|
+
"title": "Existing ClusterRole to use."
|
|
688
|
+
},
|
|
689
|
+
"rules": {
|
|
690
|
+
"type": "array",
|
|
691
|
+
"title": "List of RBAC rules assigned to the new Role.",
|
|
692
|
+
"items": {
|
|
693
|
+
"type": "object",
|
|
694
|
+
"additionalProperties": false,
|
|
695
|
+
"required": [
|
|
696
|
+
"apiGroups",
|
|
697
|
+
"resources",
|
|
698
|
+
"verbs"
|
|
699
|
+
],
|
|
700
|
+
"properties": {
|
|
701
|
+
"apiGroups": {
|
|
702
|
+
"type": "array",
|
|
703
|
+
"items": {
|
|
704
|
+
"type": "string"
|
|
705
|
+
}
|
|
706
|
+
},
|
|
707
|
+
"resources": {
|
|
708
|
+
"type": "array",
|
|
709
|
+
"items": {
|
|
710
|
+
"type": "string"
|
|
711
|
+
}
|
|
712
|
+
},
|
|
713
|
+
"verbs": {
|
|
714
|
+
"type": "array",
|
|
715
|
+
"items": {
|
|
716
|
+
"type": "string"
|
|
717
|
+
}
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
},
|
|
703
724
|
"bindings": {
|
|
704
725
|
"$id": "#/properties/bindings",
|
|
705
726
|
"title": "Service Binding configuration",
|
|
@@ -716,7 +737,6 @@
|
|
|
716
737
|
],
|
|
717
738
|
"properties": {
|
|
718
739
|
"fromSecret": {
|
|
719
|
-
"description": "Name of a Kubernetes Secret, with the binding content, compliant to the SAP Kubernetes Service Binding spec https://github.tools.sap/Kubernetes-Service-Bindings/doc/",
|
|
720
740
|
"type": "string"
|
|
721
741
|
}
|
|
722
742
|
}
|
|
@@ -726,31 +746,24 @@
|
|
|
726
746
|
"additionalProperties": false,
|
|
727
747
|
"properties": {
|
|
728
748
|
"serviceInstanceName": {
|
|
729
|
-
"description": "Name of a BTP Operator Service Instance, created by the `service-instance` Helm chart. Can't be used with the `serviceInstanceFullname` option.",
|
|
730
749
|
"type": "string"
|
|
731
750
|
},
|
|
732
751
|
"serviceInstanceFullname": {
|
|
733
|
-
"description": "Full name of a BTP Operator Service Instance. Can't be used with the `serviceInstanceName` option.",
|
|
734
752
|
"type": "string"
|
|
735
753
|
},
|
|
736
754
|
"externalName": {
|
|
737
|
-
"description": "The name for the service binding in SAP BTP",
|
|
738
755
|
"type": "string"
|
|
739
756
|
},
|
|
740
757
|
"secretName": {
|
|
741
|
-
"description": "The name of the secret where the credentials are stored.",
|
|
742
758
|
"type": "string"
|
|
743
759
|
},
|
|
744
760
|
"parameters": {
|
|
745
|
-
"description": "Some services support the provisioning of additional configuration parameters during the bind request. For the list of supported parameters, check the documentation of the particular service offering.",
|
|
746
761
|
"type": "object"
|
|
747
762
|
},
|
|
748
763
|
"parametersFrom": {
|
|
749
|
-
"description": "List of sources to populate parameters.",
|
|
750
764
|
"type": "array",
|
|
751
765
|
"items": {
|
|
752
766
|
"type": "object",
|
|
753
|
-
"description": "Kubernetes Secret as a parameters source.",
|
|
754
767
|
"additionalProperties": false,
|
|
755
768
|
"properties": {
|
|
756
769
|
"secretKeyRef": {
|
|
@@ -762,11 +775,9 @@
|
|
|
762
775
|
],
|
|
763
776
|
"properties": {
|
|
764
777
|
"name": {
|
|
765
|
-
"description": "Name of a Secret.",
|
|
766
778
|
"type": "string"
|
|
767
779
|
},
|
|
768
780
|
"key": {
|
|
769
|
-
"description": "Key in that Secret, which contains a string that represents the json to include in the set of parameters to be sent to the broker.",
|
|
770
781
|
"type": "string"
|
|
771
782
|
}
|
|
772
783
|
}
|
|
@@ -775,7 +786,6 @@
|
|
|
775
786
|
}
|
|
776
787
|
},
|
|
777
788
|
"credentialsRotationPolicy": {
|
|
778
|
-
"description": "Holds automatic credentials rotation configuration. For more details, see https://github.com/SAP/sap-btp-service-operator#spec-1",
|
|
779
789
|
"type": "object"
|
|
780
790
|
}
|
|
781
791
|
},
|
|
@@ -799,6 +809,385 @@
|
|
|
799
809
|
]
|
|
800
810
|
}
|
|
801
811
|
}
|
|
812
|
+
},
|
|
813
|
+
"annotations": {
|
|
814
|
+
"$id": "#/properties/annotations",
|
|
815
|
+
"title": "Additional annotations",
|
|
816
|
+
"type": "object",
|
|
817
|
+
"additionalProperties": false,
|
|
818
|
+
"properties": {
|
|
819
|
+
"deployment": {
|
|
820
|
+
"type": "object",
|
|
821
|
+
"title": "Annotations to add to the Deployment",
|
|
822
|
+
"patternProperties": {
|
|
823
|
+
".*": {
|
|
824
|
+
"type": "string"
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
}
|
|
829
|
+
},
|
|
830
|
+
"sidecars": {
|
|
831
|
+
"$id": "#/properties/bindings",
|
|
832
|
+
"title": "Sidecar configuration",
|
|
833
|
+
"type": "object",
|
|
834
|
+
"additionalProperties": false,
|
|
835
|
+
"patternProperties": {
|
|
836
|
+
"^[-._a-zA-Z][-._a-zA-Z0-9]*$": {
|
|
837
|
+
"additionalProperties": false,
|
|
838
|
+
"properties": {
|
|
839
|
+
"image": {
|
|
840
|
+
"$id": "#/properties/image",
|
|
841
|
+
"title": "Image configuration",
|
|
842
|
+
"type": "object",
|
|
843
|
+
"required": [
|
|
844
|
+
"repository"
|
|
845
|
+
],
|
|
846
|
+
"additionalProperties": false,
|
|
847
|
+
"properties": {
|
|
848
|
+
"repository": {
|
|
849
|
+
"$id": "#/properties/image/properties/repository",
|
|
850
|
+
"title": "Repository of the image",
|
|
851
|
+
"type": "string",
|
|
852
|
+
"pattern": "^[\\w-./:]*[@sha256]*$"
|
|
853
|
+
},
|
|
854
|
+
"tag": {
|
|
855
|
+
"$id": "#/properties/image/properties/tag",
|
|
856
|
+
"$ref": "#/definitions/ImageTag"
|
|
857
|
+
},
|
|
858
|
+
"registry": {
|
|
859
|
+
"$id": "#/properties/image/properties/registry",
|
|
860
|
+
"$ref": "#/definitions/ImageRegistry"
|
|
861
|
+
}
|
|
862
|
+
}
|
|
863
|
+
},
|
|
864
|
+
"imagePullPolicy": {
|
|
865
|
+
"$ref": "#/definitions/ImagePullPolicy"
|
|
866
|
+
},
|
|
867
|
+
"envFrom": {
|
|
868
|
+
"$id": "#/properties/envFrom",
|
|
869
|
+
"type": "array",
|
|
870
|
+
"default": [],
|
|
871
|
+
"items": {
|
|
872
|
+
"type": "object",
|
|
873
|
+
"oneOf": [
|
|
874
|
+
{
|
|
875
|
+
"additionalProperties": false,
|
|
876
|
+
"properties": {
|
|
877
|
+
"configMapRef": {
|
|
878
|
+
"properties": {
|
|
879
|
+
"name": {
|
|
880
|
+
"type": "string"
|
|
881
|
+
}
|
|
882
|
+
},
|
|
883
|
+
"required": [
|
|
884
|
+
"name"
|
|
885
|
+
],
|
|
886
|
+
"additionalProperties": false,
|
|
887
|
+
"type": "object"
|
|
888
|
+
}
|
|
889
|
+
},
|
|
890
|
+
"required": [
|
|
891
|
+
"configMapRef"
|
|
892
|
+
]
|
|
893
|
+
},
|
|
894
|
+
{
|
|
895
|
+
"additionalProperties": false,
|
|
896
|
+
"properties": {
|
|
897
|
+
"secretRef": {
|
|
898
|
+
"properties": {
|
|
899
|
+
"name": {
|
|
900
|
+
"type": "string"
|
|
901
|
+
}
|
|
902
|
+
},
|
|
903
|
+
"required": [
|
|
904
|
+
"name"
|
|
905
|
+
],
|
|
906
|
+
"additionalProperties": false,
|
|
907
|
+
"type": "object"
|
|
908
|
+
}
|
|
909
|
+
},
|
|
910
|
+
"required": [
|
|
911
|
+
"secretRef"
|
|
912
|
+
]
|
|
913
|
+
}
|
|
914
|
+
]
|
|
915
|
+
}
|
|
916
|
+
},
|
|
917
|
+
"env": {
|
|
918
|
+
"$id": "#/properties/env",
|
|
919
|
+
"anyOf": [
|
|
920
|
+
{
|
|
921
|
+
"type": "object",
|
|
922
|
+
"patternProperties": {
|
|
923
|
+
"^[-._a-zA-Z][-._a-zA-Z0-9]*$": {
|
|
924
|
+
"$comment": "regex above copied from https://github.com/kubernetes/kubernetes/blob/ea0764452222146c47ec826977f49d7001b0ea8c/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go#L402",
|
|
925
|
+
"anyOf": [
|
|
926
|
+
{
|
|
927
|
+
"type": [
|
|
928
|
+
"integer",
|
|
929
|
+
"string"
|
|
930
|
+
]
|
|
931
|
+
},
|
|
932
|
+
{
|
|
933
|
+
"type": "object",
|
|
934
|
+
"additionalProperties": false,
|
|
935
|
+
"maxProperties": 1,
|
|
936
|
+
"properties": {
|
|
937
|
+
"configMapKeyRef": {
|
|
938
|
+
"type": "object",
|
|
939
|
+
"additionalProperties": false,
|
|
940
|
+
"properties": {
|
|
941
|
+
"name": {
|
|
942
|
+
"type": "string"
|
|
943
|
+
},
|
|
944
|
+
"key": {
|
|
945
|
+
"type": "string"
|
|
946
|
+
}
|
|
947
|
+
}
|
|
948
|
+
},
|
|
949
|
+
"secretKeyRef": {
|
|
950
|
+
"type": "object",
|
|
951
|
+
"additionalProperties": false,
|
|
952
|
+
"properties": {
|
|
953
|
+
"name": {
|
|
954
|
+
"type": "string"
|
|
955
|
+
},
|
|
956
|
+
"key": {
|
|
957
|
+
"type": "string"
|
|
958
|
+
}
|
|
959
|
+
}
|
|
960
|
+
},
|
|
961
|
+
"resourceFieldRef": {
|
|
962
|
+
"type": "object",
|
|
963
|
+
"additionalProperties": false,
|
|
964
|
+
"properties": {
|
|
965
|
+
"containerName": {
|
|
966
|
+
"$ref": "#/definitions/KubernetesName"
|
|
967
|
+
},
|
|
968
|
+
"resource": {
|
|
969
|
+
"type": "string"
|
|
970
|
+
}
|
|
971
|
+
}
|
|
972
|
+
},
|
|
973
|
+
"fieldRef": {
|
|
974
|
+
"type": "object",
|
|
975
|
+
"additionalProperties": false,
|
|
976
|
+
"properties": {
|
|
977
|
+
"fieldPath": {
|
|
978
|
+
"type": "string"
|
|
979
|
+
}
|
|
980
|
+
}
|
|
981
|
+
}
|
|
982
|
+
}
|
|
983
|
+
}
|
|
984
|
+
]
|
|
985
|
+
}
|
|
986
|
+
},
|
|
987
|
+
"additionalProperties": false,
|
|
988
|
+
"default": {}
|
|
989
|
+
},
|
|
990
|
+
{
|
|
991
|
+
"type": "array",
|
|
992
|
+
"uniqueItems": true,
|
|
993
|
+
"items": {
|
|
994
|
+
"type": "object",
|
|
995
|
+
"additionalProperties": false,
|
|
996
|
+
"maxProperties": 2,
|
|
997
|
+
"required": [
|
|
998
|
+
"name"
|
|
999
|
+
],
|
|
1000
|
+
"properties": {
|
|
1001
|
+
"name": {
|
|
1002
|
+
"type": "string",
|
|
1003
|
+
"pattern": "^[-._a-zA-Z][-._a-zA-Z0-9]*$"
|
|
1004
|
+
},
|
|
1005
|
+
"value": {
|
|
1006
|
+
"type": [
|
|
1007
|
+
"string",
|
|
1008
|
+
"integer"
|
|
1009
|
+
]
|
|
1010
|
+
},
|
|
1011
|
+
"configMapKeyRef": {
|
|
1012
|
+
"type": "object",
|
|
1013
|
+
"additionalProperties": false,
|
|
1014
|
+
"properties": {
|
|
1015
|
+
"name": {
|
|
1016
|
+
"type": "string"
|
|
1017
|
+
},
|
|
1018
|
+
"key": {
|
|
1019
|
+
"type": "string"
|
|
1020
|
+
}
|
|
1021
|
+
}
|
|
1022
|
+
},
|
|
1023
|
+
"secretKeyRef": {
|
|
1024
|
+
"type": "object",
|
|
1025
|
+
"additionalProperties": false,
|
|
1026
|
+
"properties": {
|
|
1027
|
+
"name": {
|
|
1028
|
+
"type": "string"
|
|
1029
|
+
},
|
|
1030
|
+
"key": {
|
|
1031
|
+
"type": "string"
|
|
1032
|
+
}
|
|
1033
|
+
}
|
|
1034
|
+
},
|
|
1035
|
+
"resourceFieldRef": {
|
|
1036
|
+
"type": "object",
|
|
1037
|
+
"additionalProperties": false,
|
|
1038
|
+
"properties": {
|
|
1039
|
+
"containerName": {
|
|
1040
|
+
"$ref": "#/definitions/KubernetesName"
|
|
1041
|
+
},
|
|
1042
|
+
"resource": {
|
|
1043
|
+
"type": "string"
|
|
1044
|
+
}
|
|
1045
|
+
}
|
|
1046
|
+
},
|
|
1047
|
+
"fieldRef": {
|
|
1048
|
+
"type": "object",
|
|
1049
|
+
"additionalProperties": false,
|
|
1050
|
+
"properties": {
|
|
1051
|
+
"fieldPath": {
|
|
1052
|
+
"type": "string"
|
|
1053
|
+
}
|
|
1054
|
+
}
|
|
1055
|
+
}
|
|
1056
|
+
}
|
|
1057
|
+
}
|
|
1058
|
+
}
|
|
1059
|
+
],
|
|
1060
|
+
"default": {}
|
|
1061
|
+
},
|
|
1062
|
+
"resources": {
|
|
1063
|
+
"$id": "#/properties/resources",
|
|
1064
|
+
"title": "Pod resources configuration",
|
|
1065
|
+
"type": "object",
|
|
1066
|
+
"additionalProperties": false,
|
|
1067
|
+
"required": [
|
|
1068
|
+
"requests",
|
|
1069
|
+
"limits"
|
|
1070
|
+
],
|
|
1071
|
+
"properties": {
|
|
1072
|
+
"requests": {
|
|
1073
|
+
"type": "object",
|
|
1074
|
+
"additionalProperties": false,
|
|
1075
|
+
"required": [
|
|
1076
|
+
"cpu",
|
|
1077
|
+
"memory"
|
|
1078
|
+
],
|
|
1079
|
+
"properties": {
|
|
1080
|
+
"cpu": {
|
|
1081
|
+
"$id": "#/properties/resources/properties/requests/properties/cpu",
|
|
1082
|
+
"type": [
|
|
1083
|
+
"string",
|
|
1084
|
+
"number"
|
|
1085
|
+
]
|
|
1086
|
+
},
|
|
1087
|
+
"ephemeral-storage": {
|
|
1088
|
+
"$id": "#/properties/resources/properties/requests/properties/ephemeral-storage",
|
|
1089
|
+
"type": "string"
|
|
1090
|
+
},
|
|
1091
|
+
"memory": {
|
|
1092
|
+
"$id": "#/properties/resources/properties/requests/properties/memory",
|
|
1093
|
+
"type": "string"
|
|
1094
|
+
}
|
|
1095
|
+
}
|
|
1096
|
+
},
|
|
1097
|
+
"limits": {
|
|
1098
|
+
"type": "object",
|
|
1099
|
+
"additionalProperties": false,
|
|
1100
|
+
"required": [
|
|
1101
|
+
"memory"
|
|
1102
|
+
],
|
|
1103
|
+
"properties": {
|
|
1104
|
+
"cpu": {
|
|
1105
|
+
"$id": "#/properties/resources/properties/limits/properties/cpu",
|
|
1106
|
+
"type": [
|
|
1107
|
+
"string",
|
|
1108
|
+
"number"
|
|
1109
|
+
]
|
|
1110
|
+
},
|
|
1111
|
+
"ephemeral-storage": {
|
|
1112
|
+
"$id": "#/properties/resources/properties/limits/properties/ephemeral-storage",
|
|
1113
|
+
"type": "string"
|
|
1114
|
+
},
|
|
1115
|
+
"memory": {
|
|
1116
|
+
"$id": "#/properties/resources/properties/limits/properties/memory",
|
|
1117
|
+
"type": "string"
|
|
1118
|
+
}
|
|
1119
|
+
}
|
|
1120
|
+
}
|
|
1121
|
+
}
|
|
1122
|
+
},
|
|
1123
|
+
"runAsUser": {
|
|
1124
|
+
"title": "User to be used for running the container.",
|
|
1125
|
+
"type": "integer",
|
|
1126
|
+
"minimum": 1
|
|
1127
|
+
}
|
|
1128
|
+
}
|
|
1129
|
+
}
|
|
1130
|
+
}
|
|
1131
|
+
},
|
|
1132
|
+
"prometheus": {
|
|
1133
|
+
"$id": "#/properties/prometheus",
|
|
1134
|
+
"title": "Enable Prometheus scraping",
|
|
1135
|
+
"type": "object",
|
|
1136
|
+
"additionalProperties": false,
|
|
1137
|
+
"properties": {
|
|
1138
|
+
"enabled": {
|
|
1139
|
+
"type": "boolean",
|
|
1140
|
+
"title": "Add necessary annotations for Prometheus Service Discovery.",
|
|
1141
|
+
"default": false
|
|
1142
|
+
},
|
|
1143
|
+
"path": {
|
|
1144
|
+
"type": "string",
|
|
1145
|
+
"title": "URI path used for scraping. Defaults to /metrics.",
|
|
1146
|
+
"default": "/metrics"
|
|
1147
|
+
},
|
|
1148
|
+
"port": {
|
|
1149
|
+
"title": "Port used for scraping. Defaults to the application port.",
|
|
1150
|
+
"type":"integer"
|
|
1151
|
+
}
|
|
1152
|
+
}
|
|
1153
|
+
},
|
|
1154
|
+
"otlp": {
|
|
1155
|
+
"$id": "#/properties/otlp",
|
|
1156
|
+
"title": "Enable Open Telemetry integration",
|
|
1157
|
+
"type": "object",
|
|
1158
|
+
"additionalProperties": false,
|
|
1159
|
+
"properties": {
|
|
1160
|
+
"traces": {
|
|
1161
|
+
"type": "object",
|
|
1162
|
+
"additionalProperties": false,
|
|
1163
|
+
"properties": {
|
|
1164
|
+
"enabled": {
|
|
1165
|
+
"type": "boolean",
|
|
1166
|
+
"title": "Add env variables",
|
|
1167
|
+
"default": false
|
|
1168
|
+
},
|
|
1169
|
+
"endpoint": {
|
|
1170
|
+
"type": "string",
|
|
1171
|
+
"default": "http://telemetry-otlp-traces.kyma-system.svc.cluster.local:4317"
|
|
1172
|
+
}
|
|
1173
|
+
}
|
|
1174
|
+
},
|
|
1175
|
+
"metrics": {
|
|
1176
|
+
"type": "object",
|
|
1177
|
+
"additionalProperties": false,
|
|
1178
|
+
"properties": {
|
|
1179
|
+
"enabled": {
|
|
1180
|
+
"type": "boolean",
|
|
1181
|
+
"title": "Add env variables",
|
|
1182
|
+
"default": false
|
|
1183
|
+
},
|
|
1184
|
+
"endpoint": {
|
|
1185
|
+
"type": "string",
|
|
1186
|
+
"default": "http://telemetry-otlp-metrics.kyma-system.svc.cluster.local:4317"
|
|
1187
|
+
}
|
|
1188
|
+
}
|
|
1189
|
+
}
|
|
1190
|
+
}
|
|
802
1191
|
}
|
|
803
1192
|
},
|
|
804
1193
|
"definitions": {
|
|
@@ -810,14 +1199,18 @@
|
|
|
810
1199
|
"ImageRegistry": {
|
|
811
1200
|
"type": "string",
|
|
812
1201
|
"title": "Image registry",
|
|
813
|
-
"
|
|
814
|
-
"pattern": "^[\\w-./]+$"
|
|
1202
|
+
"pattern": "^[\\w-./:]+$"
|
|
815
1203
|
},
|
|
816
1204
|
"ImageTag": {
|
|
817
1205
|
"title": "Image tag",
|
|
818
|
-
"description": "Image tag without the name (everything after the `:` sign, potentially including the `@sha256` section at the end).",
|
|
819
1206
|
"type": "string",
|
|
820
1207
|
"$comment": "Copied from https://github.com/containers/image/blob/18d58d29fdc4fc32fb8a8a6d186b829b217f1bf5/docker/reference/regexp.go#L68-L70",
|
|
821
|
-
"pattern": "^((?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:(?:\\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))+)?(?::[0-9]+)?/)?[a-z0-9]+(?:(?:(?:[._]|__|[-]*)[a-z0-9]+)+)?(?:(?:/[a-z0-9]+(?:(?:(?:[._]|__|[-]*)[a-z0-9]+)+)?)+)?)(?::([\\w][\\w.-]{0,127}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]{32,}))?$"
|
|
1208
|
+
"pattern": "^((?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:(?:\\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))+)?(?::[0-9]+)?/)?[a-z0-9]+(?:(?:(?:[._]|__|[-]*)[a-z0-9]+)+)?(?:(?:/[a-z0-9]+(?:(?:(?:[._]|__|[-]*)[a-z0-9]+)+)?)+)?)(?::([\\w][\\w.-]{0,127}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]{32,}))?$"
|
|
1209
|
+
},
|
|
1210
|
+
"ImagePullPolicy": {
|
|
1211
|
+
"title": "ImagePullPolicy",
|
|
1212
|
+
"type": "string",
|
|
1213
|
+
"enum": ["Always", "IfNotPresent", "Never"]
|
|
1214
|
+
}
|
|
822
1215
|
}
|
|
823
1216
|
}
|