1# Default values for gotenberg.
2# This is a YAML-formatted file.
3# Declare variables to be passed into your templates.
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.
11 repository: cgr.dev/chainguard-private/gotenberg
12 pullPolicy: IfNotPresent
13 # -- Overrides the image tag whose default is the chart appVersion.
14 tag: 8.38.1-r0@sha256:3dd6952b3eb26e9f8408ccdb3d8aa38b62a31fb37322a17b6afc5bfb8a330d20
19 # -- Specifies whether a service account should be created
21 # -- Annotations to add to the service account
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
27# -- Set annotations for the helm test pods (for example to disable certain kube-score checks)
29# -- Image configuration for the helm test pod
31 # -- Repository for the test image
33 # -- Tag for the test image
35# -- List of additional pod labels
37# -- Set to false to stop Kubernetes injecting service discovery environment variables (`<SVCNAME>_SERVICE_HOST`, `<SVCNAME>_PORT`, ...) into the pod. These collide with Gotenberg's own configuration: a Service named `api` in the same namespace injects `API_PORT=tcp://<clusterIP>:<port>`, which Gotenberg reads as an override for `--api-port` and refuses to start.
38enableServiceLinks: true
42# -- Define the security context for the container. By default will use upstream recommended values.
43# @default -- `{ privileged: false, runAsUser: 1001 }`, except in OpenShift where `runAsUser` is not set.
48 # -- Annotations to add to the service
50 # -- (DEPRECATED) Static IP address for LoadBalancer type service. Deprecated in Kubernetes 1.24, use provider-specific annotations instead.
52# Strategy is utilized to configure the desired upgrade approach and
53# configuration for the deployment.
55progressDeadlineSeconds: 120
57# We usually recommend not to specify default resources and to leave this as a conscious
58# choice for the user. This also increases chances charts run on environments with little
59# resources, such as Minikube. If you do want to specify resources, uncomment the following
60# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
68# -- 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.
74# -- Define the liveness probe object for the container.
81# -- Define the readiness probe object for the container.
88# -- Define the startup probe object for the container.
103 targetCPUUtilizationPercentage: 80
105 # targetMemoryUtilizationPercentage: 80
107 # -- Create a VerticalPodAutoscaler resource for right-sizing pod resources.
108 # Requires the VPA controller to be installed in the cluster.
109 # See also: https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler
111 # -- Update mode for VPA: Auto (resize in-place or restart), Recreate (restart to resize), Initial (set at creation only), Off (recommendations only)
113 # -- Resource policy for VPA to control which containers and resources are autoscaled, see values.yaml for an example.
116 # - containerName: gotenberg
127 # -- Unhealthy pod eviction policy for the PDB (e.g., AlwaysAllow)
128 unhealthyPodEvictionPolicy:
132topologySpreadConstraints: []
143# -- List of extra environment variables for gotenberg container.
144# Gotenberg 8.29.0+ supports OpenTelemetry via standard OTEL_* environment variables.
145# See https://gotenberg.dev/docs/configuration for details.
147# - name: OTEL_EXPORTER_OTLP_ENDPOINT
148# value: "http://otel-collector:4317"
149# - name: OTEL_TRACES_EXPORTER
151# - name: OTEL_METRICS_EXPORTER
153# - name: OTEL_LOGS_EXPORTER
156# -- List of init containers for the gotenberg pod
158# - name: init-myservice
160# command: ['sh', '-c', 'echo init container']
163 # -- Set to true to enable ingress record generation. WARNING: Gotenberg shouldn't be exposed to the internet.
165 # -- Set the class name of the ingress
167 # -- Set the annotations of the ingress
169 # kubernetes.io/ingress.class: nginx
170 # kubernetes.io/tls-acme: "true"
172 # -- Set the labels of the ingress
174 # -- Set the hostnames of the ingress, see values.yaml for an example.
176 # - host: chart-example.local
179 # pathType: ImplementationSpecific
181 # -- Set the TLS configuration for the ingress, see values.yaml for an example.
183 # - secretName: chart-example-tls
185 # - chart-example.local
186# Gateway API HTTPRoute configuration.
187# WARNING: Gotenberg shouldn't be exposed to the internet.
188# See also: https://gateway-api.sigs.k8s.io/
190 # -- Set to true to create an HTTPRoute resource
192 # -- Annotations to add to the HTTPRoute
194 # -- Labels to add to the HTTPRoute
196 # -- Parent Gateway references, see values.yaml for an example.
201 # -- Hostnames to match for routing, see values.yaml for an example.
203 # - gotenberg.example.local
204# The API module is an HTTP/1 and HTTP/2 (H2C) server. Other modules may add routes, middlewares, and health checks.
205# https://gotenberg.dev/docs/configuration#api
207 # -- Set the port on which the API should listen (default 3000)
209 # -- Enables TLS on the API server: K8S TLS secret name containing the TLS certificate and key (tls.crt, tls.key)
211 # -- Set the time limit for requests (default 30s)
213 # -- Set the request body limit for multipart/form-data (e.g., "100MB")
215 # -- Set the root path of the API - for service discovery via URL paths (default "/")
217 # -- (DEPRECATED) Set the header name to use for identifying requests. Use correlationIdHeader instead.
219 # -- Set the header name to use for identifying requests (default "Gotenberg-Trace")
220 correlationIdHeader: ""
221 # -- (DEPRECATED) Disable health check route telemetry. Use disableHealthCheckRouteTelemetry instead.
222 disableHealthCheckLogging: false
223 # -- 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).
224 disableHealthCheckRouteTelemetry: false
225 # -- Enable debug route for debugging purposes
226 enableDebugRoute: false
227 # -- Set the maximum duration to wait for the API to start
229 # -- Enable basic authentication, see also the basicAuthUsername and basicAuthPassword values
230 enableBasicAuth: false
231 # -- Name of an existing secret containing basic auth credentials (keys: username, password)
233 # -- Key in existingSecret for the username (default: username)
234 existingSecretUsernameKey: ""
235 # -- Key in existingSecret for the password (default: password)
236 existingSecretPasswordKey: ""
237 # -- Set the basic authentication username (ignored if existingSecret is set)
239 # -- Set the basic authentication password (ignored if existingSecret is set)
241 # -- Enable OIDC bearer token authentication. Mutually exclusive with `enableBasicAuth`. Added in Gotenberg 8.36.0.
242 enableOidcAuth: false
243 # -- Set the OIDC issuer URL, e.g. `https://tenant.example.com/` - the token `iss` claim must match. Added in Gotenberg 8.36.0.
245 # -- Set the expected OIDC audience - the token `aud` claim must contain it. Added in Gotenberg 8.36.0.
247 # -- Set the OIDC JWKS URL. Discovered from the issuer's well-known configuration when empty. Added in Gotenberg 8.36.0.
249 # -- Set the allowed URLs for the download from feature using a regular expression
250 downloadFromAllowList: ""
251 # -- Set the denied URLs for the download from feature using a regular expression
252 downloadFromDenyList: ""
253 # -- 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.
254 downloadFromDenyPrivateIps: false
255 # -- 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.
256 downloadFromDenyPublicIps: false
257 # -- Set the maximum number of retries for the download from feature (default 4)
258 downloadFromMaxRetry: 4
259 # -- (int) Set the maximum number of concurrent fetches per request for the download from feature. Leave unset for the upstream default (10); set to 0 for no limit. Added in Gotenberg 8.37.0.
260 downloadFromMaxConcurrency:
261 # -- Set the maximum number of entries in the `downloadFrom` array. Set to 0 for no limit (default 0). Added in Gotenberg 8.37.0.
262 downloadFromMaxEntries: 0
263 # -- Route `downloadFrom` fetches through the proxy defined by the standard `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` variables (set them via `extraEnv`), credentials included. Added in Gotenberg 8.35.0.
264 downloadFromEnableEnvironmentProxy: false
265 # -- Disable the download from feature
266 disableDownloadFrom: false
267 # -- Disable telemetry on the root route
268 disableRootRouteTelemetry: false
269 # -- Disable telemetry on the debug route
270 disableDebugRouteTelemetry: false
271 # -- Disable telemetry on the version route
272 disableVersionRouteTelemetry: false
273# The Chromium module interacts with the Chromium browser to convert HTML documents to PDF.
274# https://gotenberg.dev/docs/configuration#chromium
276 # -- Number of conversions after which Chromium will automatically restart. Set to 0 to disable this feature (default 100)
278 # -- Maximum number of concurrent Chromium conversions (default 6)
280 # -- Automatically launch Chromium upon initialization if set to true; otherwise, Chromium will start at the time of the first conversion
282 # -- Maximum duration to wait for Chromium to start or restart
284 # -- Allow file:// URIs to read other file:// URIs
285 allowFileAccessFromFiles: false
286 # -- Ignore TLS/SSL errors on localhost
287 allowInsecureLocalhost: false
288 # -- Set the allowed URLs for Chromium using a regular expression
290 # -- Set the denied URLs for Chromium using a regular expression (default "^file:///[^tmp].*")
292 # -- 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.
293 denyPrivateIps: false
294 # -- 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.
296 # -- Ignore the certificate errors
297 ignoreCertificateErrors: false
298 # -- Don't enforce the same-origin policy
299 disableWebSecurity: false
300 # -- (DEPRECATED) Start Chromium with incognito mode. This flag is deprecated as of Gotenberg 8.25.0 and its value is ignored.
302 # -- Set custom mappings to the host resolver
303 hostResolverRules: ""
304 # -- Set the outbound proxy server; this switch only affects HTTP and HTTPS requests
306 # -- Route Chromium's outbound requests through the proxy defined by the standard `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` variables (set them via `extraEnv`), credentials included. Use this instead of `proxyServer` for authenticated proxies, and leave `proxyServer` and `hostResolverRules` unset. Added in Gotenberg 8.35.0.
307 enableEnvironmentProxy: false
308 # -- Disable JavaScript
309 disableJavaScript: false
310 # -- Disable the routes
312 # -- Share one browser context, with its cookies, cache and storage, across all conversions. Since Gotenberg 8.38.0 each conversion gets its own isolated context by default; enable this only when all callers trust each other. Added in Gotenberg 8.38.0.
313 sharedBrowserContext: false
314 # -- Clear Chromium cache between each conversion. Only applies with `sharedBrowserContext` since Gotenberg 8.38.0.
316 # -- Clear Chromium cookies between each conversion. Only applies with `sharedBrowserContext` since Gotenberg 8.38.0.
318 # -- Clear Chromium local storage between each conversion. Only applies with `sharedBrowserContext` since Gotenberg 8.38.0. Added in Gotenberg 8.36.0.
320 # -- Maximum request queue size for Chromium. Set to 0 to disable this feature.
322 # -- Duration after which idle Chromium browser processes are shut down (e.g., "30s"). Set to 0s or leave empty to disable (default 0s, disabled).
323 idleShutdownTimeout: ""
324# The LibreOffice module interacts with LibreOffice to convert documents to PDF, thanks to unoconv.
325# https://gotenberg.dev/docs/configuration#libreoffice
327 # -- Number of conversions after which LibreOffice will automatically restart. Set to 0 to disable this feature (default 10)
329 # -- Automatically launch LibreOffce upon initialization if set to true; otherwise, LibreOffice will start at the time of the first conversion (default false)
331 # -- Maximum duration to wait for LibreOffice to start or restart (default 10s)
333 # -- Disable the routes
335 # -- Maximum request queue size for LibreOffice. Set to 0 to disable this feature.
337 # -- Duration after which idle LibreOffice processes are shut down (e.g., "30s"). Set to 0s or leave empty to disable (default 0s, disabled).
338 idleShutdownTimeout: ""
339 # -- 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.
341 # -- Set the denied URLs for LibreOffice outbound fetches using a regular expression. Added in Gotenberg 8.32.0.
343 # -- 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.
344 denyPrivateIps: false
345 # -- 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.
347 # -- Route LibreOffice outbound fetches through the proxy defined by the standard `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` variables (set them via `extraEnv`), credentials included. Added in Gotenberg 8.35.0.
348 enableEnvironmentProxy: false
349# The PDF Engines module gathers all engines that can manipulate PDF files.
350# https://gotenberg.dev/docs/configuration#pdf-engines
352 # -- (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).
354 # -- Set the PDF engines and their order for the merge feature (default qpdf,pdfcpu,pdftk)
356 # -- Set the PDF engines and their order for the split feature (default pdfcpu,qpdf,pdftk)
358 # -- Set the PDF engines and their order for the flatten feature (default qpdf)
360 # -- Set the PDF engines and their order for the convert feature (default libreoffice-pdfengine)
362 # -- Set the PDF engines and their order for the read metadata feature (default exiftool)
363 readMetadataEngines: ""
364 # -- Set the PDF engines and their order for the write metadata feature (default exiftool)
365 writeMetadataEngines: ""
366 # -- Set the PDF engines and their order for the password protection feature (default qpdf,pdftk,pdfcpu)
368 # -- Set the PDF engines and their order for the file embedding feature (default pdfcpu)
370 # -- Set the PDF engines and their order for the embed metadata feature (default qpdf)
371 embedMetadataEngines: ""
372 # -- Set the PDF engines and their order for the watermark feature (default pdfcpu,pdftk)
374 # -- Set the PDF engines and their order for the stamp feature (default pdfcpu,pdftk)
376 # -- Set the PDF engines and their order for the rotate feature (default pdfcpu,pdftk)
378 # -- Set the PDF engines and their order for the read bookmarks feature (default pdfcpu)
379 readBookmarksEngines: ""
380 # -- Set the PDF engines and their order for the write bookmarks feature (default pdfcpu,pdftk)
381 writeBookmarksEngines: ""
382 # -- Set the PDF engines and their order for the Factur-X XMP metadata feature (default qpdf). Added in Gotenberg 8.34.0.
384 # -- Set the PDF engines and their order for the image optimization feature; empty means all (default pdfcpu). Added in Gotenberg 8.36.0.
385 optimizeImagesEngines: ""
386 # -- Maximum number of PDF files the per-file features (metadata, encryption, stamps, watermarks, flattening, ...) process at once, across all requests; does not apply to LibreOffice. Set to 0 to use the upstream default (default 1). Added in Gotenberg 8.37.0.
388 # -- Disable the routes
390# The Webhook module provides a middleware that allows you to upload the output file
391# from multipart/form-data routes to the destination of your choice.
392# https://gotenberg.dev/docs/configuration#webhook
394 # -- Enable synchronous mode for the webhook feature
395 enableSyncMode: false
396 # -- 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.
398 # -- 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`.
400 # -- 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.
401 denyPrivateIps: false
402 # -- 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.
404 # -- (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.
406 # -- (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.
408 # -- Set the maximum number of retries for the webhook feature (default 4)
410 # -- Set the minimum duration to wait before trying to call the webhook again (default 1s)
412 # -- Set the maximum duration to wait before trying to call the webhook again (default 30s)
414 # -- Set the time limit for requests to the webhook (default 30s)
416 # -- Route webhook callbacks through the proxy defined by the standard `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` variables (set them via `extraEnv`), credentials included. Added in Gotenberg 8.35.0.
417 enableEnvironmentProxy: false
418 # -- Disable the webhook feature
420# The Prometheus module collects metrics from other modules.
421# https://gotenberg.dev/docs/configuration#prometheus
423 # -- Set the interval for collecting modules' metrics (default 1s)
425 # -- Set the namespace of modules' metrics (default "gotenberg")
427 # -- Set the metrics endpoint path (default "/prometheus/metrics")
429 # -- Disable the collect of metrics
430 disableCollect: false
431 # -- (DEPRECATED) Disable the route logging. Use disableRouteTelemetry instead.
432 disableRouterLogging: false
433 # -- Disable route telemetry for the Prometheus metrics endpoint
434 disableRouteTelemetry: false
435# The Logging module provides a logger to Gotenberg.
436# https://gotenberg.dev/docs/configuration#logging
438 # -- (DEPRECATED) Set log format. Use stdFormat instead.
440 # -- Set log standard output format - auto, json, or text (default "auto")
442 # -- Set the case of the `level` field in standard output - lower or upper (default "lower"). Added in Gotenberg 8.34.0.
444 # -- Set the log level - error, warn, info, or debug (default "info")
446 # -- Prepend a specified prefix to each field in the logs
448 # -- (DEPRECATED) Enable GCP log field mapping for Cloud Run. Use stdEnableGcpFields instead.
449 enableGcpFields: false
450 # -- Enable GCP log standard output field mapping for Cloud Run
451 stdEnableGcpFields: false
452 # -- Enable GCP severity field mapping
453 enableGcpSeverity: false
455# https://gotenberg.dev/docs/configuration#graceful-shutdown
457 # -- Set the graceful shutdown duration (default 30s)
458 gracefulShutdownDurationSec: 30
459 # -- Hide the Gotenberg banner on startup
463 # -- Enable ServiceMonitor
465 # -- (string) Namespace for ServiceMonitor, defaults to release namespace
467 # -- (string) Optional job label for the target service in Prometheus
469 # -- (string) Interval at which metrics should be scraped
471 # -- (string) Timeout after which the scrape is ended
473 # -- HonorLabels chooses the metric’s labels on collisions with target labels
475 # -- List of metric relabel configs to apply to samples before ingestion
476 metricRelabelings: []
477 # -- List of relabel configs to apply to samples before scraping
479 # -- Additional annotations for the service monitor
481 # -- Additional labels for the service monitor
483# Enable or Disable Network Policy.
484# See also: https://kubernetes.io/docs/concepts/services-networking/network-policies/
487 # Allow all connections from any source. To be set to false if extraIngress is used.
489 # Allow all connections to any destinations. To be set to false if extraEgress is used.
491 # Config custom ingress rules to the NetworkPolicy.
501 # Config custom egress rules to the NetworkPolicy.