Repository navigation
Expand file tree
/
Copy pathvalues.yaml
More file actions
executable file
·540 lines (521 loc) · 17.2 KB
/
Copy pathvalues.yaml
File metadata and controls
executable file
·540 lines (521 loc) · 17.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
global:
convoy:
# -- Docker image tags for all convoy components
image: &image "getconvoy/convoy"
# -- Docker image tags for all convoy components
tag: &tag "v26.7.6"
# -- docker-registry secrets used to pull global.convoy.image. Applied to server and agent pods.
imagePullSecrets: []
# -- Logger Level for all convoy components
log_level: &logLevel "error"
# -- Convoy Environment
environment: &environment "oss"
# -- JWT Secret key
jwt_secret: &jwtSecret "convoy-secret"
# -- JWT Refresh Secret key
jwt_refresh_secret: &jwtRefreshSecret "convoy-refresh-secret"
# -- Existing Kubernetes Secret name for JWT secrets. Recommended for production. When set, JWT secret values are ignored; the secret must contain 'jwt_secret' and 'jwt_refresh_secret' keys.
jwt_secret_name: ""
# -- Tracing config for all convoy services
tracer_enabled: &tracerEnabled false
# -- Tracing provider type
tracer_type: &tracerType "otel"
# -- Open Telemetry auth header name
otel_auth_header_name: &otelHeaderName ""
# -- Open Telemetry auth header value
otel_auth_header_value: &otelHeaderValue ""
# -- Open Telemetry sample rate
otel_sample_rate: &otelSampleRate 1
# -- Open Telemetry collector url
otel_collector_url: &otelCollectorUrl ""
# -- Open Telemetry insecure skip verify
otel_insecure_skip_verify: &otelInsecureSkipVerify true
# -- Sentry DSN
sentry_dsn: &sentryDsn ""
# -- Sentry debug mode
sentry_debug: &sentryDebug false
# -- Sentry environment
sentry_environment: *environment
# Licensed partition drop and keep window. Optional global defaults apply to
# server and agent unless overridden under server.env / agent.env:
# retention_enabled (default true)
# retention_period (omit = app default 720h)
# webhook_archiving_enabled (omit = app default false)
# Deprecated per-component aliases still work: retention_policy.policy / .enabled
# When period / archiving are unset everywhere, chart omits those env vars so
# extraEnvs CONVOY_RETENTION_POLICY(_ENABLED) still migrate.
retention_enabled: &retentionEnabled true
# -- Enable usage analytics
enable_usage_analytics: &enabledUsageAnalytics true
# -- API version
api_version: &apiVersion "2024-01-01"
# -- License Key
license_key: &licenseKey ""
# -- If this secret parameter is not empty, the inline license key value will be ignored.
# The license key should be present in the 'license_key' key of the specified secret.
license_key_secret_name: ""
# -- Dispatcher CA Certificate configuration. If provided, it will use the content of the secret
cacert_secret_name: ""
# -- Dispatcher CA Certificate content. If provided, a secret will be created with this content
cacert_content: ""
# -- Enable Google OAuth SSO for user authentication
google_oauth_enabled: &googleOAuthEnabled false
# -- Google OAuth Client ID from Google Cloud Console
google_oauth_client_id: &googleOAuthClientId ""
# -- Google OAuth Redirect URL for callback handling
google_oauth_redirect_url: &googleOAuthRedirectUrl ""
# -- Enable Portal Realm authentication for enhanced security
portal_realm_enabled: &portalRealmEnabled false
# -- Sentry sample rate for error sampling (0.0 to 1.0)
sentry_sample_rate: &sentrySampleRate 1.0
# -- Database read replica DSN for improved performance
read_replica_dsn: &readReplicaDsn ""
# -- Connections each Convoy process may open to Postgres. This is Convoy's
# own default, stated here because it needs sizing rather than accepting:
# multiply it by the number of processes (server, agent, and any ingest or
# worker) and keep the total comfortably below the database's max_connections,
# or a rolling restart exhausts them. The Postgres queue makes this sharper,
# since queue, cache, rate limiter, circuit breaker and lock traffic all move
# onto this pool. Blank falls back to Convoy's default.
db_max_open_conn: 100
# -- Queue provider: redis (default) or postgres. Postgres is experimental and
# needs a paid license plus "postgres-queue" in both server.env.enable_feature_flag
# and agent.env.enable_feature_flag; rendering fails without it. When postgres, set
# redis.enabled to false and size Postgres for queue, cache, rate limiter, circuit
# breaker, and lock traffic in addition to application queries.
queue_provider: redis
postgresQueue:
batchSize: 64
batchWaitMs: 2
writeConcurrency: 8
leaseTimeoutSeconds: 90
claimBatchSize: 64
pollIdleMs: 5
cacheLocalReadTtlMs: 1000
cacheLocalReadSize: 10000
externalDatabase:
# -- Enable an external database; This will use postgresql chart, Change values if you use an external database
enabled: true
# -- Host for the external database
host: "postgresql"
# -- Password for the external database
postgresPassword: &postgresPassword postgres
# -- Database name for the external database
database: &postgresDatabase convoy
# -- Password for the external database, ignored in case of secret parameter with non-empty value
password: &userPassword postgres
# -- If this secret parameter is not empty, the password value will be ignored. The password in the secret should be in the 'password' key
secret: ""
# -- Username for the external database
username: &username postgres
# -- Query params for the external database
options: "sslmode=disable&connect_timeout=30"
# -- Port for the external database
port: 5432
# -- Read replicas for the external database, as a list of database objects.
# Convoy decodes this as a JSON array, so a mapping here is rejected. Reading
# from replicas also needs the "read-replicas" feature flag and a license.
readReplicas: []
# - scheme: "postgres"
# host: ""
# username: ""
# password: ""
# database: "convoy"
# port: 5432
# options: "sslmode=disable&connect_timeout=30"
nativeRedis:
# -- Enable redis; This will use redis chart, Disable if you use an external redis
enabled: &redisEnabled true
# -- Host for the redis
host: "redis-master"
# -- password for the redis, ignored in case of secret parameter with non-empty value
password: &redisPassword "convoy"
# -- If this secret parameter is not empty, password value will be ignored. The password in the secret should be in the 'password' key
secret: ""
# -- Port for the redis
port: 6379
externalRedis:
# -- Enable external redis, Enable this if you use an external redis and disable Native redis
enabled: false
# -- redis cluster addresses, if set the other values won't be used
addresses: ""
# -- Host for the external redis
host: "redis-master"
# -- Scheme for the external redis. This can be redis, rediss, redis-socket or redis-sentinel
scheme: "redis"
# -- Redis Sentinel master name (required when scheme is redis-sentinel)
sentinelMasterName: "mymaster"
# -- Redis Sentinel auth username (optional)
sentinelUsername: ""
# -- Redis Sentinel auth password (optional)
sentinelPassword: ""
# -- Secret containing sentinel password; key: password. If set, sentinelPassword is ignored
sentinelSecret: ""
# -- username for the external redis.
username: ""
# -- password for the external redis, ignored in case of secret parameter with non-empty value
password: "convoy"
# -- If this secret parameter is not empty, password value will be ignored. The password in the secret should be in the 'password' key
secret: ""
# -- Database name for the external redis.
database: "0"
# -- Port for the external redis
port: "6379"
# @ignored, used in case of external chart
postgresql:
# -- Set to false if you don't want to create a postgres instance
enabled: true
fullnameOverride: "postgresql"
image:
registry: docker.io
repository: bitnamilegacy/postgresql
tag: 17.6.0-debian-12-r4
pullPolicy: IfNotPresent
global:
postgresql:
auth:
postgresPassword: *postgresPassword
username: *username
password: *userPassword
database: *postgresDatabase
# @ignored, used in case of external chart
redis:
# -- Set to false if you don't want to create a redis instance
enabled: true
image:
registry: docker.io
repository: bitnamilegacy/redis
tag: &redisImageTag 8.2.1-debian-12-r0
pullPolicy: IfNotPresent
sentinel:
image:
registry: docker.io
repository: bitnamilegacy/redis-sentinel
tag: *redisImageTag
pullPolicy: IfNotPresent
architecture: standalone
fullnameOverride: "redis"
auth:
enabled: *redisEnabled
password: *redisPassword
agent:
# -- Enable the agent component
enabled: true
image:
# -- Repository to be used by the agent. The latest tag is used by default
repository: *image
# -- Pull policy for the agent image
pullPolicy: IfNotPresent
# @ignored
tag: *tag
env:
environment: *environment
proxy: ""
sign_up_enabled: false
log_level: *logLevel
auth:
jwt:
enabled: true
secret: *jwtSecret
refresh_secret: *jwtRefreshSecret
smtp:
enabled: false
from: ""
# -- Ignored in case of secret parameter with non-empty value
password: ""
# -- If this secret parameter is not empty, password value will be ignored. The password in the secret should be in the 'password' key
secret: ""
port: 0
provider: ""
url: ""
username: ""
ssl: false
reply_to: ""
# @ignored
tracer:
type: *tracerType
enabled: *tracerEnabled
otel:
otel_auth:
header_name: *otelHeaderName
header_value: *otelHeaderValue
sample_rate: *otelSampleRate
collector_url: *otelCollectorUrl
insecure_skip_verify: *otelInsecureSkipVerify
sentry:
dsn: *sentryDsn
debug: *sentryDebug
environment: *environment
pyroscope:
enabled: false
url: ""
username: ""
password: ""
profile_id: ""
enable_feature_flag: []
retention:
enabled: *retentionEnabled
webhook_archiving: {}
analytics_enabled: *enabledUsageAnalytics
storage:
enabled: false
type: ""
on_prem:
path: ""
s3:
bucket: ""
prefix: ""
accessKey: ""
# -- Ignored in case of secret parameter with non-empty value
secretKey: ""
# -- If this secret parameter is not empty, secretKey value will be ignored. The password in the secret should be in the 'secretKey' key
secret: ""
region: ""
session_token: ""
endpoint: ""
azure_blob:
account_name: ""
# -- Ignored in case of secret parameter with non-empty value
account_key: ""
# -- If this secret parameter is not empty, account_key value will be ignored. The account key should be in the 'accountKey' key
secret: ""
container_name: ""
endpoint: ""
prefix: ""
consumer_pool_size: 100
enable_profiling: false
metrics:
enabled: false
metrics_backend: prometheus
prometheus_metrics:
sample_time: 5
instance_ingest_rate: 100
worker_execution_mode: default
max_retry_seconds: 7200
license_key: *licenseKey
dispatcher:
insecure_skip_verify: false
allow_list: ["0.0.0.0/0"]
deny_list: ["127.0.0.1/8", "169.254.169.254/32"]
app:
replicaCount: 1
resources: {}
# limits:
# cpu: 1000m
# memory: 2000Mi
# requests:
# cpu: 1000m
# memory: 1000Mi
service:
# -- Type of service for the agent
type: ClusterIP
# -- Port for the agent service
port: 80
autoscaling:
# -- Enable autoscaling for the agent
enabled: false
minReplicas: 2
maxReplicas: 10
targetCPUUtilizationPercentage: 80
targetMemoryUtilizationPercentage: 80
behavior:
scaleDown:
stabilizationWindowSeconds: 300
policies:
- type: Percent
value: 50
periodSeconds: 60
- type: Pods
value: 2
periodSeconds: 60
selectPolicy: Min
scaleUp:
stabilizationWindowSeconds: 0
policies:
- type: Percent
value: 100
periodSeconds: 60
- type: Pods
value: 2
periodSeconds: 60
selectPolicy: Max
podDisruptionBudget: {}
# -- Pod disruption budget
# maxUnavailable: 1
# minAvailable: 1
securityContext: {}
server:
# -- Enable the server component
enabled: true
image:
# -- Repository to be used by the server. The latest tag is used by default
repository: *image
# -- Pull policy for the server image
pullPolicy: IfNotPresent
# @ignored
tag: *tag
env:
environment: *environment
log_level: *logLevel
host: ""
# -- Configure root patth for convoy server e.g. "/convoy"
root_path: ""
sign_up_enabled: false
# -- Max response body when ingesting webhooks (might be renamed). Defaults to 50KB
max_response_size: 50
auth:
jwt:
enabled: true
secret: *jwtSecret
refresh_secret: *jwtRefreshSecret
native:
enabled: true
file:
basic: {}
# -- If this secret parameter is not empty, basic auth inline value will be ignored. The basic auth config should be in the 'basic_auth_config' key
secret: ""
# @ignored
tracer:
type: *tracerType
enabled: *tracerEnabled
otel:
otel_auth:
header_name: *otelHeaderName
header_value: *otelHeaderValue
sample_rate: *otelSampleRate
collector_url: *otelCollectorUrl
insecure_skip_verify: *otelInsecureSkipVerify
sentry:
dsn: *sentryDsn
debug: *sentryDebug
environment: *environment
pyroscope:
enabled: false
url: ""
username: ""
password: ""
profile_id: ""
enable_feature_flag: []
retention:
enabled: *retentionEnabled
webhook_archiving: {}
analytics_enabled: *enabledUsageAnalytics
storage:
enabled: false
type: ""
on_prem:
path: ""
s3:
bucket: ""
accessKey: ""
# -- Ignored in case of secret parameter with non-empty value
secretKey: ""
# -- If this secret parameter is not empty, secretKey value will be ignored. The password in the secret should be in the 'secretKey' key
secret: ""
prefix: ""
region: ""
session_token: ""
endpoint: ""
azure_blob:
account_name: ""
# -- Ignored in case of secret parameter with non-empty value
account_key: ""
# -- If this secret parameter is not empty, account_key value will be ignored. The account key should be in the 'accountKey' key
secret: ""
container_name: ""
endpoint: ""
prefix: ""
api_version: *apiVersion
analytics:
enabled: true
enable_profiling: false
metrics:
enabled: false
metrics_backend: prometheus
prometheus_metrics:
sample_time: 5
instance_ingest_rate: 100
max_retry_seconds: 7200
license_key: *licenseKey
app:
replicaCount: 1
resources: {}
# limits:
# cpu: 1000m
# memory: 2000Mi
# requests:
# cpu: 1000m
# memory: 1000Mi
ingress:
# -- Enable ingress for the server
enabled: true
annotations: {}
ingressClassName: ""
tls:
- hosts:
- test.com
secretName: test-tls-secret
hosts:
- host: test.com
http:
paths:
- path: /
pathType: Prefix
gateway:
# -- Enable Gateway API for the server
enabled: false
# -- Whether to create a Gateway resource
create: false
# -- Annotations for the HTTPRoute
annotations: {}
# -- Hostnames for the HTTPRoute
hostnames:
- test.com
# -- Parent refs for the HTTPRoute (e.g., the Gateway)
parentRefs:
- name: convoy-gateway
namespace: gateway-system
# -- Rules for the HTTPRoute
rules:
- matches:
- path:
type: PathPrefix
value: /
service:
# -- Type of service for the server
type: ClusterIP
# -- Port for the server service
port: 80
autoscaling:
# -- Enable autoscaling for the server
enabled: false
minReplicas: 2
maxReplicas: 10
targetCPUUtilizationPercentage: 80
targetMemoryUtilizationPercentage: 80
behavior:
scaleDown:
stabilizationWindowSeconds: 300
policies:
- type: Percent
value: 50
periodSeconds: 60
- type: Pods
value: 2
periodSeconds: 60
selectPolicy: Min
scaleUp:
stabilizationWindowSeconds: 0
policies:
- type: Percent
value: 100
periodSeconds: 60
- type: Pods
value: 2
periodSeconds: 60
selectPolicy: Max
podDisruptionBudget: {}
# -- Pod disruption budget
# maxUnavailable: 1
# minAvailable: 1
securityContext: {}