DirectorySecurity AdvisoriesPricing
Sign in
Directory
gotenberg logoHELM

gotenberg

Helm chart
Last changed
Request a free trial

Contact our team to test out this Helm chart and related images for free. Please also indicate any other images you would like to evaluate.

Overview
Chart versions
Default values
Chart metadata
Images

Tag:

1
# Default values for gotenberg.
2
# This is a YAML-formatted file.
3
# Declare variables to be passed into your templates.
4
5
# -- Specifies that chart can be used as a condition when it is a dependency.
6
# See https://helm.sh/docs/chart_best_practices/dependencies/#conditions-and-tags for more info.
7
# @ignored
8
enabled: true
9
replicaCount: 1
10
image:
11
repository: cgr.dev/chainguard-private/gotenberg
12
pullPolicy: IfNotPresent
13
# -- Overrides the image tag whose default is the chart appVersion.
14
tag: latest@sha256:c417a505b2306c9234516a279aa1170c4a85068c0b7e67db604f87ce685b40ef
15
imagePullSecrets: []
16
nameOverride: ""
17
fullnameOverride: ""
18
serviceAccount:
19
# -- Specifies whether a service account should be created
20
create: false
21
# -- Annotations to add to the service account
22
annotations: {}
23
# -- The name of the service account to use.
24
## If not set and create is true, a name is generated using the fullname template
25
name: ""
26
podAnnotations: {}
27
# -- Set annotations for the helm test pods (for example to disable certain kube-score checks)
28
testPodAnnotations: {}
29
# -- Image configuration for the helm test pod
30
testImage:
31
# -- Repository for the test image
32
repository: busybox
33
# -- Tag for the test image
34
tag: latest
35
# -- List of additional pod labels
36
podLabels: {}
37
podSecurityContext: {}
38
# fsGroup: 2000
39
40
# -- Define the security context for the container. By default will use upstream recommended values.
41
# @default -- `{ privileged: false, runAsUser: 1001 }`, except in OpenShift where `runAsUser` is not set.
42
securityContext: {}
43
service:
44
type: ClusterIP
45
port: 80
46
# -- Annotations to add to the service
47
annotations: {}
48
# -- (DEPRECATED) Static IP address for LoadBalancer type service. Deprecated in Kubernetes 1.24, use provider-specific annotations instead.
49
loadBalancerIP: ""
50
# Strategy is utilized to configure the desired upgrade approach and
51
# configuration for the deployment.
52
strategy: {}
53
progressDeadlineSeconds: 120
54
resources: {}
55
# We usually recommend not to specify default resources and to leave this as a conscious
56
# choice for the user. This also increases chances charts run on environments with little
57
# resources, such as Minikube. If you do want to specify resources, uncomment the following
58
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
59
# limits:
60
# cpu: 100m
61
# memory: 128Mi
62
# requests:
63
# cpu: 100m
64
# memory: 128Mi
65
66
# -- Define the container lifecycle hooks. A `preStop` hook keeps the server accepting connections while Service endpoints propagate on shutdown, which prevents dropped connections during scale-down and rolling updates. Gotenberg's own graceful shutdown does not cover this: it stops as soon as it is idle, so an idle pod closes its listener within milliseconds of SIGTERM.
67
lifecycle: {}
68
# preStop:
69
# sleep:
70
# seconds: 5
71
72
# -- Define the liveness probe object for the container.
73
# +docs:property
74
# livenessProbe: {}
75
livenessProbe:
76
httpGet:
77
path: /health
78
port: http
79
# -- Define the readiness probe object for the container.
80
# +docs:property
81
# readinessProbe: {}
82
readinessProbe:
83
httpGet:
84
path: /health
85
port: http
86
# -- Define the startup probe object for the container.
87
# +docs:property
88
# startupProbe: {}
89
startupProbe:
90
httpGet:
91
path: /health
92
port: http
93
failureThreshold: 30
94
periodSeconds: 10
95
autoscaling:
96
enabled: false
97
minReplicas: 1
98
maxReplicas: 100
99
behavior: {}
100
extraMetrics: []
101
targetCPUUtilizationPercentage: 80
102
# +docs:property
103
# targetMemoryUtilizationPercentage: 80
104
vpa:
105
# -- Create a VerticalPodAutoscaler resource for right-sizing pod resources.
106
# Requires the VPA controller to be installed in the cluster.
107
# See also: https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler
108
create: false
109
# -- Update mode for VPA: Auto (resize in-place or restart), Recreate (restart to resize), Initial (set at creation only), Off (recommendations only)
110
updateMode: "Auto"
111
# -- Resource policy for VPA to control which containers and resources are autoscaled, see values.yaml for an example.
112
resourcePolicy: {}
113
# containerPolicies:
114
# - containerName: gotenberg
115
# minAllowed:
116
# cpu: 100m
117
# memory: 256Mi
118
# maxAllowed:
119
# cpu: 2
120
# memory: 4Gi
121
pdb:
122
create: false
123
minAvailable: 1
124
maxUnavailable: ""
125
# -- Unhealthy pod eviction policy for the PDB (e.g., AlwaysAllow)
126
unhealthyPodEvictionPolicy:
127
nodeSelector: {}
128
tolerations: []
129
affinity: {}
130
topologySpreadConstraints: []
131
volumes: []
132
# - name: tmp-volume
133
# emptyDir:
134
# medium: Memory
135
# sizeLimit: 2Gi
136
137
volumeMounts: []
138
# - name: tmp-volume
139
# mountPath: /tmp
140
141
# -- List of extra environment variables for gotenberg container.
142
# Gotenberg 8.29.0+ supports OpenTelemetry via standard OTEL_* environment variables.
143
# See https://gotenberg.dev/docs/configuration for details.
144
extraEnv: []
145
# - name: OTEL_EXPORTER_OTLP_ENDPOINT
146
# value: "http://otel-collector:4317"
147
# - name: OTEL_TRACES_EXPORTER
148
# value: "otlp"
149
# - name: OTEL_METRICS_EXPORTER
150
# value: "otlp"
151
# - name: OTEL_LOGS_EXPORTER
152
# value: "otlp"
153
154
# -- List of init containers for the gotenberg pod
155
initContainers: []
156
# - name: init-myservice
157
# image: busybox:1.28
158
# command: ['sh', '-c', 'echo init container']
159
160
ingress:
161
# -- Set to true to enable ingress record generation. WARNING: Gotenberg shouldn't be exposed to the internet.
162
enabled: false
163
# -- Set the class name of the ingress
164
className: ""
165
# -- Set the annotations of the ingress
166
annotations: {}
167
# kubernetes.io/ingress.class: nginx
168
# kubernetes.io/tls-acme: "true"
169
170
# -- Set the labels of the ingress
171
labels: {}
172
# -- Set the hostnames of the ingress, see values.yaml for an example.
173
hosts: []
174
# - host: chart-example.local
175
# paths:
176
# - path: /
177
# pathType: ImplementationSpecific
178
179
# -- Set the TLS configuration for the ingress, see values.yaml for an example.
180
tls: []
181
# - secretName: chart-example-tls
182
# hosts:
183
# - chart-example.local
184
# Gateway API HTTPRoute configuration.
185
# WARNING: Gotenberg shouldn't be exposed to the internet.
186
# See also: https://gateway-api.sigs.k8s.io/
187
gateway:
188
# -- Set to true to create an HTTPRoute resource
189
enabled: false
190
# -- Annotations to add to the HTTPRoute
191
annotations: {}
192
# -- Labels to add to the HTTPRoute
193
labels: {}
194
# -- Parent Gateway references, see values.yaml for an example.
195
parentRefs: []
196
# - name: my-gateway
197
# namespace: default
198
# sectionName: https
199
# -- Hostnames to match for routing, see values.yaml for an example.
200
hostnames: []
201
# - gotenberg.example.local
202
# The API module is an HTTP/1 and HTTP/2 (H2C) server. Other modules may add routes, middlewares, and health checks.
203
# https://gotenberg.dev/docs/configuration#api
204
api:
205
# -- Set the port on which the API should listen (default 3000)
206
port: 3000
207
# -- Enables TLS on the API server: K8S TLS secret name containing the TLS certificate and key (tls.crt, tls.key)
208
tlsSecretName: ""
209
# -- Set the time limit for requests (default 30s)
210
timeout: ""
211
# -- Set the request body limit for multipart/form-data (e.g., "100MB")
212
bodyLimit: ""
213
# -- Set the root path of the API - for service discovery via URL paths (default "/")
214
rootPath: ""
215
# -- (DEPRECATED) Set the header name to use for identifying requests. Use correlationIdHeader instead.
216
traceHeader: ""
217
# -- Set the header name to use for identifying requests (default "Gotenberg-Trace")
218
correlationIdHeader: ""
219
# -- (DEPRECATED) Disable health check route telemetry. Use disableHealthCheckRouteTelemetry instead.
220
disableHealthCheckLogging: false
221
# -- Disable health check route telemetry. Note: upstream default changed to true in Gotenberg 8.29.0 (health check telemetry is disabled by default even without this flag).
222
disableHealthCheckRouteTelemetry: false
223
# -- Enable debug route for debugging purposes
224
enableDebugRoute: false
225
# -- Set the maximum duration to wait for the API to start
226
startTimeout: ""
227
# -- Enable basic authentication, see also the basicAuthUsername and basicAuthPassword values
228
enableBasicAuth: false
229
# -- Name of an existing secret containing basic auth credentials (keys: username, password)
230
existingSecret: ""
231
# -- Key in existingSecret for the username (default: username)
232
existingSecretUsernameKey: ""
233
# -- Key in existingSecret for the password (default: password)
234
existingSecretPasswordKey: ""
235
# -- Set the basic authentication username (ignored if existingSecret is set)
236
basicAuthUsername:
237
# -- Set the basic authentication password (ignored if existingSecret is set)
238
basicAuthPassword:
239
# -- Set the allowed URLs for the download from feature using a regular expression
240
downloadFromAllowList: ""
241
# -- Set the denied URLs for the download from feature using a regular expression
242
downloadFromDenyList: ""
243
# -- Reject `downloadFrom` URLs resolving to a non-public IP (loopback, RFC1918, link-local, IPv6 unique-local). A URL matching `downloadFromAllowList` skips the IP-class check; a URL matching `downloadFromDenyList` is always rejected. Added in Gotenberg 8.32.0.
244
downloadFromDenyPrivateIps: false
245
# -- Reject `downloadFrom` URLs resolving to a public IP. Setting both `downloadFromDenyPrivateIps` and `downloadFromDenyPublicIps` to true rejects every URL unless the allow-list matches. Added in Gotenberg 8.32.0.
246
downloadFromDenyPublicIps: false
247
# -- Set the maximum number of retries for the download from feature (default 4)
248
downloadFromMaxRetry: 4
249
# -- Disable the download from feature
250
disableDownloadFrom: false
251
# -- Disable telemetry on the root route
252
disableRootRouteTelemetry: false
253
# -- Disable telemetry on the debug route
254
disableDebugRouteTelemetry: false
255
# -- Disable telemetry on the version route
256
disableVersionRouteTelemetry: false
257
# The Chromium module interacts with the Chromium browser to convert HTML documents to PDF.
258
# https://gotenberg.dev/docs/configuration#chromium
259
chromium:
260
# -- Number of conversions after which Chromium will automatically restart. Set to 0 to disable this feature (default 100)
261
restartAfter: ""
262
# -- Maximum number of concurrent Chromium conversions (default 6)
263
maxConcurrency: 0
264
# -- Automatically launch Chromium upon initialization if set to true; otherwise, Chromium will start at the time of the first conversion
265
autoStart: false
266
# -- Maximum duration to wait for Chromium to start or restart
267
startTimeout: ""
268
# -- Allow file:// URIs to read other file:// URIs
269
allowFileAccessFromFiles: false
270
# -- Ignore TLS/SSL errors on localhost
271
allowInsecureLocalhost: false
272
# -- Set the allowed URLs for Chromium using a regular expression
273
allowList: ""
274
# -- Set the denied URLs for Chromium using a regular expression (default "^file:///[^tmp].*")
275
denyList: ""
276
# -- Reject Chromium navigations and sub-resources resolving to a non-public IP (loopback, RFC1918, link-local, IPv6 unique-local). A URL matching `allowList` skips the IP-class check; a URL matching `denyList` is always rejected. Added in Gotenberg 8.32.0. Skipped when `proxyServer` or `hostResolverRules` is set.
277
denyPrivateIps: false
278
# -- Reject Chromium navigations and sub-resources resolving to a public IP. Setting both `denyPrivateIps` and `denyPublicIps` to true rejects every URL unless the allow-list matches. Added in Gotenberg 8.32.0.
279
denyPublicIps: false
280
# -- Ignore the certificate errors
281
ignoreCertificateErrors: false
282
# -- Don't enforce the same-origin policy
283
disableWebSecurity: false
284
# -- (DEPRECATED) Start Chromium with incognito mode. This flag is deprecated as of Gotenberg 8.25.0 and its value is ignored.
285
incognito: false
286
# -- Set custom mappings to the host resolver
287
hostResolverRules: ""
288
# -- Set the outbound proxy server; this switch only affects HTTP and HTTPS requests
289
proxyServer: ""
290
# -- Disable JavaScript
291
disableJavaScript: false
292
# -- Disable the routes
293
disableRoutes: false
294
# -- Clear Chromium cache between each conversion.
295
clearCache: false
296
# -- Clear Chromium cookies between each conversion.
297
clearCookies: false
298
# -- Maximum request queue size for Chromium. Set to 0 to disable this feature.
299
maxQueueSize: 0
300
# -- Duration after which idle Chromium browser processes are shut down (e.g., "30s"). Set to 0s or leave empty to disable (default 0s, disabled).
301
idleShutdownTimeout: ""
302
# The LibreOffice module interacts with LibreOffice to convert documents to PDF, thanks to unoconv.
303
# https://gotenberg.dev/docs/configuration#libreoffice
304
libreOffice:
305
# -- Number of conversions after which LibreOffice will automatically restart. Set to 0 to disable this feature (default 10)
306
restartAfter: ""
307
# -- Automatically launch LibreOffce upon initialization if set to true; otherwise, LibreOffice will start at the time of the first conversion (default false)
308
autoStart: false
309
# -- Maximum duration to wait for LibreOffice to start or restart (default 10s)
310
startTimeout: ""
311
# -- Disable the routes
312
disableRoutes: false
313
# -- Maximum request queue size for LibreOffice. Set to 0 to disable this feature.
314
maxQueueSize: 0
315
# -- Duration after which idle LibreOffice processes are shut down (e.g., "30s"). Set to 0s or leave empty to disable (default 0s, disabled).
316
idleShutdownTimeout: ""
317
# -- Set the allowed URLs for LibreOffice outbound fetches (embedded external content in OOXML/RTF/ODF) using a regular expression. Added in Gotenberg 8.32.0.
318
allowList: ""
319
# -- Set the denied URLs for LibreOffice outbound fetches using a regular expression. Added in Gotenberg 8.32.0.
320
denyList: ""
321
# -- Reject LibreOffice outbound fetches resolving to a non-public IP (loopback, RFC1918, link-local, IPv6 unique-local). A URL matching `allowList` skips the IP-class check; a URL matching `denyList` is always rejected. Added in Gotenberg 8.32.0.
322
denyPrivateIps: false
323
# -- Reject LibreOffice outbound fetches resolving to a public IP. Setting both `denyPrivateIps` and `denyPublicIps` to true rejects every URL unless the allow-list matches. Added in Gotenberg 8.32.0.
324
denyPublicIps: false
325
# The PDF Engines module gathers all engines that can manipulate PDF files.
326
# https://gotenberg.dev/docs/configuration#pdf-engines
327
pdfEngines:
328
# -- (DEPRECATED) Set the PDF engines and their order. This flag was deprecated in Gotenberg 8.13.0 and its value is ignored. Use the per-feature engine flags instead (mergeEngines, splitEngines, flattenEngines, convertEngines, readMetadataEngines, writeMetadataEngines, encryptEngines, embedEngines).
329
engines: ""
330
# -- Set the PDF engines and their order for the merge feature (default qpdf,pdfcpu,pdftk)
331
mergeEngines: ""
332
# -- Set the PDF engines and their order for the split feature (default pdfcpu,qpdf,pdftk)
333
splitEngines: ""
334
# -- Set the PDF engines and their order for the flatten feature (default qpdf)
335
flattenEngines: ""
336
# -- Set the PDF engines and their order for the convert feature (default libreoffice-pdfengine)
337
convertEngines: ""
338
# -- Set the PDF engines and their order for the read metadata feature (default exiftool)
339
readMetadataEngines: ""
340
# -- Set the PDF engines and their order for the write metadata feature (default exiftool)
341
writeMetadataEngines: ""
342
# -- Set the PDF engines and their order for the password protection feature (default qpdf,pdftk,pdfcpu)
343
encryptEngines: ""
344
# -- Set the PDF engines and their order for the file embedding feature (default pdfcpu)
345
embedEngines: ""
346
# -- Set the PDF engines and their order for the embed metadata feature (default qpdf)
347
embedMetadataEngines: ""
348
# -- Set the PDF engines and their order for the watermark feature (default pdfcpu,pdftk)
349
watermarkEngines: ""
350
# -- Set the PDF engines and their order for the stamp feature (default pdfcpu,pdftk)
351
stampEngines: ""
352
# -- Set the PDF engines and their order for the rotate feature (default pdfcpu,pdftk)
353
rotateEngines: ""
354
# -- Set the PDF engines and their order for the read bookmarks feature (default pdfcpu)
355
readBookmarksEngines: ""
356
# -- Set the PDF engines and their order for the write bookmarks feature (default pdfcpu,pdftk)
357
writeBookmarksEngines: ""
358
# -- Set the PDF engines and their order for the Factur-X XMP metadata feature (default qpdf). Added in Gotenberg 8.34.0.
359
facturXEngines: ""
360
# -- Disable the routes
361
disableRoutes: false
362
# The Webhook module provides a middleware that allows you to upload the output file
363
# from multipart/form-data routes to the destination of your choice.
364
# https://gotenberg.dev/docs/configuration#webhook
365
webhook:
366
# -- Enable synchronous mode for the webhook feature
367
enableSyncMode: false
368
# -- Set the allowed URLs for the webhook feature using a regular expression. In Gotenberg 8.31.0+ this applies to both regular and error webhooks.
369
allowList: ""
370
# -- Set the denied URLs for the webhook feature using a regular expression. In Gotenberg 8.31.0+ this applies to both regular and error webhooks. Note: 8.31.0's permissive-by-default revert means this defaults to empty again in 8.32.0+; opt into IP-class filtering via `denyPrivateIps` / `denyPublicIps`.
371
denyList: ""
372
# -- Reject webhook URLs (success, error, events) resolving to a non-public IP (loopback, RFC1918, link-local, IPv6 unique-local). A URL matching `allowList` skips the IP-class check; a URL matching `denyList` is always rejected. Added in Gotenberg 8.32.0.
373
denyPrivateIps: false
374
# -- Reject webhook URLs resolving to a public IP. Setting both `denyPrivateIps` and `denyPublicIps` to true rejects every URL unless the allow-list matches. Added in Gotenberg 8.32.0.
375
denyPublicIps: false
376
# -- (DEPRECATED) Set the allowed URLs in case of an error for the webhook feature using a regular expression. Use `allowList` instead in Gotenberg 8.31.0+ — it now covers both regular and error webhooks.
377
errorAllowList: ""
378
# -- (DEPRECATED) Set the denied URLs in case of an error for the webhook feature using a regular expression. Use `denyList` instead in Gotenberg 8.31.0+ — it now covers both regular and error webhooks.
379
errorDenyList: ""
380
# -- Set the maximum number of retries for the webhook feature (default 4)
381
maxRetry: ""
382
# -- Set the minimum duration to wait before trying to call the webhook again (default 1s)
383
retryMinWait: ""
384
# -- Set the maximum duration to wait before trying to call the webhook again (default 30s)
385
retryMaxWait: ""
386
# -- Set the time limit for requests to the webhook (default 30s)
387
clientTimeout: ""
388
# -- Disable the webhook feature
389
disable: false
390
# The Prometheus module collects metrics from other modules.
391
# https://gotenberg.dev/docs/configuration#prometheus
392
prometheus:
393
# -- Set the interval for collecting modules' metrics (default 1s)
394
collectInterval: ""
395
# -- Set the namespace of modules' metrics (default "gotenberg")
396
namespace: ""
397
# -- Set the metrics endpoint path (default "/prometheus/metrics")
398
metricsPath: ""
399
# -- Disable the collect of metrics
400
disableCollect: false
401
# -- (DEPRECATED) Disable the route logging. Use disableRouteTelemetry instead.
402
disableRouterLogging: false
403
# -- Disable route telemetry for the Prometheus metrics endpoint
404
disableRouteTelemetry: false
405
# The Logging module provides a logger to Gotenberg.
406
# https://gotenberg.dev/docs/configuration#logging
407
logging:
408
# -- (DEPRECATED) Set log format. Use stdFormat instead.
409
format: ""
410
# -- Set log standard output format - auto, json, or text (default "auto")
411
stdFormat: ""
412
# -- Set the case of the `level` field in standard output - lower or upper (default "lower"). Added in Gotenberg 8.34.0.
413
stdLevelCase: ""
414
# -- Set the log level - error, warn, info, or debug (default "info")
415
level: ""
416
# -- Prepend a specified prefix to each field in the logs
417
fieldsPrefix: ""
418
# -- (DEPRECATED) Enable GCP log field mapping for Cloud Run. Use stdEnableGcpFields instead.
419
enableGcpFields: false
420
# -- Enable GCP log standard output field mapping for Cloud Run
421
stdEnableGcpFields: false
422
# -- Enable GCP severity field mapping
423
enableGcpSeverity: false
424
# Misc.
425
# https://gotenberg.dev/docs/configuration#graceful-shutdown
426
gotenberg:
427
# -- Set the graceful shutdown duration (default 30s)
428
gracefulShutdownDurationSec: 30
429
# -- Hide the Gotenberg banner on startup
430
hideBanner: false
431
metrics:
432
serviceMonitor:
433
# -- Enable ServiceMonitor
434
enabled: false
435
# -- (string) Namespace for ServiceMonitor, defaults to release namespace
436
namespace:
437
# -- (string) Optional job label for the target service in Prometheus
438
jobLabel:
439
# -- (string) Interval at which metrics should be scraped
440
interval:
441
# -- (string) Timeout after which the scrape is ended
442
scrapeTimeout:
443
# -- HonorLabels chooses the metric’s labels on collisions with target labels
444
honorLabels: false
445
# -- List of metric relabel configs to apply to samples before ingestion
446
metricRelabelings: []
447
# -- List of relabel configs to apply to samples before scraping
448
relabelings: []
449
# -- Additional annotations for the service monitor
450
annotations: {}
451
# -- Additional labels for the service monitor
452
labels: {}
453
# Enable or Disable Network Policy.
454
# See also: https://kubernetes.io/docs/concepts/services-networking/network-policies/
455
networkPolicy:
456
enabled: false
457
# Allow all connections from any source. To be set to false if extraIngress is used.
458
allowIngress: true
459
# Allow all connections to any destinations. To be set to false if extraEgress is used.
460
allowEgress: true
461
# Config custom ingress rules to the NetworkPolicy.
462
extraIngress: []
463
# extraIngress:
464
# - from:
465
# - podSelector:
466
# matchLabels:
467
# component: apache
468
# ports:
469
# - port: 8080
470
# protocol: TCP
471
# Config custom egress rules to the NetworkPolicy.
472
extraEgress: []
473
# extraEgress:
474
# - to:
475
# - podSelector:
476
# matchLabels:
477
# component: apache
478
# ports:
479
# - port: 80
480
# protocol: TCP
481

The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.