charts/koment/values.schema.json
1
{
2
"$schema": "https://json-schema.org/draft/2020-12/schema",
3
"type": "object",
4
"additionalProperties": false,
5
"required": [
6
"image",
7
"replicaCount",
8
"repositories",
9
"syncInterval",
10
"github",
11
"auth",
12
"serviceAccount",
13
"service",
14
"metrics",
15
"ingress",
16
"networkPolicy",
17
"podDisruptionBudget",
18
"resources",
19
"podSecurityContext",
20
"securityContext",
21
"tests"
22
],
23
"properties": {
24
"nameOverride": {
25
"type": "string"
26
},
27
"fullnameOverride": {
28
"type": "string"
29
},
30
"image": {
31
"type": "object",
32
"additionalProperties": false,
33
"required": [
34
"repository",
35
"tag",
36
"digest",
37
"pullPolicy"
38
],
39
"properties": {
40
"repository": {
41
"type": "string",
42
"minLength": 1
43
},
44
"tag": {
45
"type": "string"
46
},
47
"digest": {
48
"type": "string",
49
"pattern": "^$|^sha256:[0-9a-f]{64}$"
50
},
51
"pullPolicy": {
52
"enum": [
53
"Always",
54
"IfNotPresent",
55
"Never"
56
]
57
}
58
}
59
},
60
"replicaCount": {
61
"type": "integer",
62
"minimum": 1
63
},
64
"repositories": {
65
"type": "array",
66
"minItems": 1,
67
"contains": {
68
"type": "object",
69
"properties": {
70
"default": {
71
"const": true
72
}
73
},
74
"required": [
75
"default"
76
]
77
},
78
"items": {
79
"type": "object",
80
"additionalProperties": false,
81
"required": [
82
"id",
83
"provider",
84
"remote",
85
"defaultBranch"
86
],
87
"properties": {
88
"id": {
89
"type": "string",
90
"pattern": "^[a-z0-9][a-z0-9_-]*$"
91
},
92
"name": {
93
"type": "string"
94
},
95
"provider": {
96
"const": "github"
97
},
98
"remote": {
99
"type": "string",
100
"pattern": "^[^/]+/[^/]+$"
101
},
102
"defaultBranch": {
103
"type": "string",
104
"minLength": 1
105
},
106
"default": {
107
"type": "boolean"
108
}
109
}
110
}
111
},
112
"syncInterval": {
113
"type": "string",
114
"pattern": "^[1-9][0-9]*(s|m|h)$"
115
},
116
"github": {
117
"$ref": "#/$defs/githubSecret"
118
},
119
"auth": {
120
"type": "object",
121
"additionalProperties": false,
122
"required": [
123
"trustedProxies",
124
"humanWrites",
125
"existingSecret",
126
"credentialsKey"
127
],
128
"properties": {
129
"trustedProxies": {
130
"type": "array",
131
"items": {
132
"type": "string",
133
"minLength": 1
134
}
135
},
136
"humanWrites": {
137
"type": "boolean"
138
},
139
"existingSecret": {
140
"type": "string"
141
},
142
"credentialsKey": {
143
"type": "string",
144
"minLength": 1
145
}
146
}
147
},
148
"serviceAccount": {
149
"type": "object",
150
"additionalProperties": true,
151
"required": [
152
"create",
153
"name",
154
"annotations"
155
],
156
"properties": {
157
"create": {
158
"type": "boolean"
159
},
160
"name": {
161
"type": "string"
162
},
163
"annotations": {
164
"type": "object"
165
}
166
}
167
},
168
"service": {
169
"type": "object",
170
"additionalProperties": false,
171
"required": [
172
"type",
173
"port"
174
],
175
"properties": {
176
"type": {
177
"enum": [
178
"ClusterIP",
179
"NodePort",
180
"LoadBalancer"
181
]
182
},
183
"port": {
184
"type": "integer",
185
"minimum": 1,
186
"maximum": 65535
187
}
188
}
189
},
190
"metrics": {
191
"type": "object",
192
"additionalProperties": true,
193
"required": [
194
"enabled",
195
"port"
196
],
197
"properties": {
198
"enabled": {
199
"type": "boolean"
200
},
201
"port": {
202
"type": "integer",
203
"minimum": 1,
204
"maximum": 65535
205
}
206
}
207
},
208
"ingress": {
209
"type": "object",
210
"additionalProperties": true,
211
"required": [
212
"enabled"
213
],
214
"properties": {
215
"enabled": {
216
"type": "boolean"
217
}
218
}
219
},
220
"networkPolicy": {
221
"type": "object",
222
"additionalProperties": false,
223
"required": [
224
"enabled",
225
"ingress"
226
],
227
"properties": {
228
"enabled": {
229
"type": "boolean"
230
},
231
"ingress": {
232
"type": "array"
233
}
234
}
235
},
236
"podDisruptionBudget": {
237
"type": "object",
238
"additionalProperties": false,
239
"required": [
240
"enabled",
241
"minAvailable"
242
],
243
"properties": {
244
"enabled": {
245
"type": "boolean"
246
},
247
"minAvailable": {
248
"oneOf": [
249
{
250
"type": "integer",
251
"minimum": 0
252
},
253
{
254
"type": "string"
255
}
256
]
257
}
258
}
259
},
260
"resources": {
261
"type": "object"
262
},
263
"podSecurityContext": {
264
"type": "object"
265
},
266
"securityContext": {
267
"type": "object"
268
},
269
"nodeSelector": {
270
"type": "object"
271
},
272
"tolerations": {
273
"type": "array"
274
},
275
"affinity": {
276
"type": "object"
277
},
278
"topologySpreadConstraints": {
279
"type": "array"
280
},
281
"podAnnotations": {
282
"type": "object"
283
},
284
"tests": {
285
"type": "object",
286
"additionalProperties": false,
287
"required": [
288
"image"
289
],
290
"properties": {
291
"image": {
292
"type": "object",
293
"additionalProperties": false,
294
"required": [
295
"repository",
296
"tag",
297
"digest",
298
"pullPolicy",
299
"runAsUser",
300
"runAsGroup"
301
],
302
"properties": {
303
"repository": {
304
"type": "string",
305
"minLength": 1
306
},
307
"tag": {
308
"type": "string",
309
"minLength": 1
310
},
311
"digest": {
312
"type": "string",
313
"pattern": "^sha256:[0-9a-f]{64}$"
314
},
315
"pullPolicy": {
316
"enum": [
317
"Always",
318
"IfNotPresent",
319
"Never"
320
]
321
},
322
"runAsUser": {
323
"type": "integer",
324
"minimum": 1
325
},
326
"runAsGroup": {
327
"type": "integer",
328
"minimum": 1
329
}
330
}
331
}
332
}
333
}
334
},
335
"$defs": {
336
"githubSecret": {
337
"type": "object",
338
"additionalProperties": false,
339
"required": [
340
"existingSecret",
341
"tokenKey"
342
],
343
"properties": {
344
"existingSecret": {
345
"type": "string"
346
},
347
"tokenKey": {
348
"type": "string",
349
"minLength": 1
350
}
351
}
352
}
353
}
354
}