Skip to content

Commit 5d7d4c9

Browse files
committed
generate values.schema.json for proxy/gateway
1 parent 4407d0d commit 5d7d4c9

2 files changed

Lines changed: 810 additions & 0 deletions

File tree

Lines changed: 398 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,398 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"additionalProperties": false,
4+
"properties": {
5+
"additionalEnvFromConfigMap": {
6+
"default": "",
7+
"description": "defguard-gateway pod additional ENV from configmap",
8+
"title": "additionalEnvFromConfigMap",
9+
"type": "string"
10+
},
11+
"affinity": {
12+
"additionalProperties": false,
13+
"description": "defguard-gateway pod affinity configuration",
14+
"required": [],
15+
"title": "affinity",
16+
"type": "object"
17+
},
18+
"existingTokenSecret": {
19+
"default": "",
20+
"description": "Secret to get the token from",
21+
"title": "existingTokenSecret",
22+
"type": "string"
23+
},
24+
"existingTokenSecretKey": {
25+
"default": "",
26+
"description": "Key to extract the token from in existingTokenSecret",
27+
"title": "existingTokenSecretKey",
28+
"type": "string"
29+
},
30+
"fullnameOverride": {
31+
"default": "",
32+
"description": "defguard-gateway full name override",
33+
"title": "fullnameOverride",
34+
"type": "string"
35+
},
36+
"global": {
37+
"description": "Global values are values that can be accessed from any chart or subchart by exactly the same name.",
38+
"required": [],
39+
"title": "global",
40+
"type": "object"
41+
},
42+
"grpcUrl": {
43+
"default": "",
44+
"description": "Defguard GRPC URL, e.g.: defguard-grpc.mycompany.com",
45+
"title": "grpcUrl",
46+
"type": "string"
47+
},
48+
"healthCheck": {
49+
"additionalProperties": false,
50+
"description": "defguard-gateway health check configuration",
51+
"properties": {
52+
"enabled": {
53+
"default": false,
54+
"title": "enabled",
55+
"type": "boolean"
56+
},
57+
"livenessProbe": {
58+
"additionalProperties": false,
59+
"properties": {
60+
"failureThreshold": {
61+
"default": 3,
62+
"title": "failureThreshold",
63+
"type": "integer"
64+
},
65+
"initialDelaySeconds": {
66+
"default": 30,
67+
"title": "initialDelaySeconds",
68+
"type": "integer"
69+
},
70+
"periodSeconds": {
71+
"default": 10,
72+
"title": "periodSeconds",
73+
"type": "integer"
74+
},
75+
"timeoutSeconds": {
76+
"default": 5,
77+
"title": "timeoutSeconds",
78+
"type": "integer"
79+
}
80+
},
81+
"required": [
82+
"initialDelaySeconds",
83+
"periodSeconds",
84+
"timeoutSeconds",
85+
"failureThreshold"
86+
],
87+
"title": "livenessProbe",
88+
"type": "object"
89+
},
90+
"port": {
91+
"default": 35053,
92+
"title": "port",
93+
"type": "integer"
94+
},
95+
"readinessProbe": {
96+
"additionalProperties": false,
97+
"properties": {
98+
"failureThreshold": {
99+
"default": 3,
100+
"title": "failureThreshold",
101+
"type": "integer"
102+
},
103+
"initialDelaySeconds": {
104+
"default": 10,
105+
"title": "initialDelaySeconds",
106+
"type": "integer"
107+
},
108+
"periodSeconds": {
109+
"default": 10,
110+
"title": "periodSeconds",
111+
"type": "integer"
112+
},
113+
"timeoutSeconds": {
114+
"default": 5,
115+
"title": "timeoutSeconds",
116+
"type": "integer"
117+
}
118+
},
119+
"required": [
120+
"initialDelaySeconds",
121+
"periodSeconds",
122+
"timeoutSeconds",
123+
"failureThreshold"
124+
],
125+
"title": "readinessProbe",
126+
"type": "object"
127+
}
128+
},
129+
"required": [
130+
"enabled",
131+
"port",
132+
"livenessProbe",
133+
"readinessProbe"
134+
],
135+
"title": "healthCheck",
136+
"type": "object"
137+
},
138+
"image": {
139+
"additionalProperties": false,
140+
"description": "defguard-gateway container image configuration",
141+
"properties": {
142+
"pullPolicy": {
143+
"default": "IfNotPresent",
144+
"title": "pullPolicy",
145+
"type": "string"
146+
},
147+
"repository": {
148+
"default": "ghcr.io/defguard/gateway",
149+
"title": "repository",
150+
"type": "string"
151+
},
152+
"tag": {
153+
"default": "",
154+
"title": "tag",
155+
"type": "string"
156+
}
157+
},
158+
"required": [
159+
"pullPolicy",
160+
"repository",
161+
"tag"
162+
],
163+
"title": "image",
164+
"type": "object"
165+
},
166+
"imagePullSecrets": {
167+
"description": "defguard-gateway container image pull secrets",
168+
"items": {
169+
"required": []
170+
},
171+
"title": "imagePullSecrets",
172+
"type": "array"
173+
},
174+
"logLevel": {
175+
"default": "debug",
176+
"description": "rust log level, default is debug",
177+
"title": "logLevel",
178+
"type": "string"
179+
},
180+
"nameOverride": {
181+
"default": "",
182+
"description": "defguard-gateway name override",
183+
"title": "nameOverride",
184+
"type": "string"
185+
},
186+
"nodeSelector": {
187+
"additionalProperties": false,
188+
"description": "defguard-gateway node selector configuration",
189+
"required": [],
190+
"title": "nodeSelector",
191+
"type": "object"
192+
},
193+
"podAnnotations": {
194+
"additionalProperties": false,
195+
"description": "defguard-gateway pod annotations",
196+
"required": [],
197+
"title": "podAnnotations",
198+
"type": "object"
199+
},
200+
"podLabels": {
201+
"additionalProperties": false,
202+
"description": "defguard-gateway pod labels",
203+
"required": [],
204+
"title": "podLabels",
205+
"type": "object"
206+
},
207+
"podSecurityContext": {
208+
"additionalProperties": false,
209+
"description": "defguard-gateway pod security context",
210+
"required": [],
211+
"title": "podSecurityContext",
212+
"type": "object"
213+
},
214+
"replicaCount": {
215+
"default": 1,
216+
"description": "defguard-gateway pod replica count",
217+
"title": "replicaCount",
218+
"type": "integer"
219+
},
220+
"resources": {
221+
"additionalProperties": false,
222+
"description": "defguard-gateway pod resources",
223+
"required": [],
224+
"title": "resources",
225+
"type": "object"
226+
},
227+
"securityContext": {
228+
"additionalProperties": false,
229+
"description": "defguard-gateway container security context\nelevated priveleges are required for managing network interfaces",
230+
"properties": {
231+
"allowPrivilegeEscalation": {
232+
"default": true,
233+
"title": "allowPrivilegeEscalation",
234+
"type": "boolean"
235+
},
236+
"capabilities": {
237+
"additionalProperties": false,
238+
"properties": {
239+
"add": {
240+
"items": {
241+
"anyOf": [
242+
{
243+
"type": "string"
244+
},
245+
{
246+
"type": "string"
247+
}
248+
],
249+
"required": []
250+
},
251+
"title": "add",
252+
"type": "array"
253+
}
254+
},
255+
"required": [
256+
"add"
257+
],
258+
"title": "capabilities",
259+
"type": "object"
260+
},
261+
"privileged": {
262+
"default": true,
263+
"title": "privileged",
264+
"type": "boolean"
265+
}
266+
},
267+
"required": [
268+
"allowPrivilegeEscalation",
269+
"privileged",
270+
"capabilities"
271+
],
272+
"title": "securityContext",
273+
"type": "object"
274+
},
275+
"service": {
276+
"additionalProperties": false,
277+
"description": "defguard-gateway service configuration",
278+
"properties": {
279+
"wireguard": {
280+
"additionalProperties": false,
281+
"properties": {
282+
"annotations": {
283+
"additionalProperties": false,
284+
"required": [],
285+
"title": "annotations",
286+
"type": "object"
287+
},
288+
"labels": {
289+
"additionalProperties": false,
290+
"required": [],
291+
"title": "labels",
292+
"type": "object"
293+
},
294+
"port": {
295+
"default": 32140,
296+
"title": "port",
297+
"type": "integer"
298+
},
299+
"type": {
300+
"default": "ClusterIP",
301+
"title": "type",
302+
"type": "string"
303+
}
304+
},
305+
"required": [
306+
"annotations",
307+
"labels",
308+
"port",
309+
"type"
310+
],
311+
"title": "wireguard",
312+
"type": "object"
313+
}
314+
},
315+
"required": [
316+
"wireguard"
317+
],
318+
"title": "service",
319+
"type": "object"
320+
},
321+
"serviceAccount": {
322+
"additionalProperties": false,
323+
"description": "defguard-gateway serviceaccount configuration",
324+
"properties": {
325+
"annotations": {
326+
"additionalProperties": false,
327+
"required": [],
328+
"title": "annotations",
329+
"type": "object"
330+
},
331+
"create": {
332+
"default": true,
333+
"title": "create",
334+
"type": "boolean"
335+
}
336+
},
337+
"required": [
338+
"annotations",
339+
"create"
340+
],
341+
"title": "serviceAccount",
342+
"type": "object"
343+
},
344+
"statsPeriod": {
345+
"default": 30,
346+
"description": "Defines how often (in seconds) should interface statistics be sent to Defguard server",
347+
"title": "statsPeriod",
348+
"type": "integer"
349+
},
350+
"token": {
351+
"default": "",
352+
"description": "Token from Defguard app to secure gRPC connection, available on network page.\nIt is not recommended to use this. Create a secret yourself and use existingTokenSecret instead",
353+
"title": "token",
354+
"type": "string"
355+
},
356+
"tolerations": {
357+
"description": "defguard-gateway pod tolerations",
358+
"items": {
359+
"required": []
360+
},
361+
"title": "tolerations",
362+
"type": "array"
363+
},
364+
"userspace": {
365+
"default": "false",
366+
"description": "Use userspace wireguard implementation, useful on systems without native wireguard support. Set to true/false",
367+
"title": "userspace",
368+
"type": "string"
369+
}
370+
},
371+
"required": [
372+
"userspace",
373+
"grpcUrl",
374+
"token",
375+
"existingTokenSecret",
376+
"existingTokenSecretKey",
377+
"statsPeriod",
378+
"logLevel",
379+
"fullnameOverride",
380+
"nameOverride",
381+
"image",
382+
"imagePullSecrets",
383+
"affinity",
384+
"nodeSelector",
385+
"tolerations",
386+
"podAnnotations",
387+
"podLabels",
388+
"replicaCount",
389+
"resources",
390+
"podSecurityContext",
391+
"securityContext",
392+
"additionalEnvFromConfigMap",
393+
"healthCheck",
394+
"service",
395+
"serviceAccount"
396+
],
397+
"type": "object"
398+
}

0 commit comments

Comments
 (0)