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.36.0@sha256:433f1479da690dec138660a938453d8b5e627e07b70b8881594c5891293c74aa
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 # -- 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.
260 downloadFromEnableEnvironmentProxy: false
261 # -- Disable the download from feature
262 disableDownloadFrom: false
263 # -- Disable telemetry on the root route
264 disableRootRouteTelemetry: false
265 # -- Disable telemetry on the debug route
266 disableDebugRouteTelemetry: false
267 # -- Disable telemetry on the version route
268 disableVersionRouteTelemetry: false
269# The Chromium module interacts with the Chromium browser to convert HTML documents to PDF.
270# https://gotenberg.dev/docs/configuration#chromium
272 # -- Number of conversions after which Chromium will automatically restart. Set to 0 to disable this feature (default 100)
274 # -- Maximum number of concurrent Chromium conversions (default 6)
276 # -- Automatically launch Chromium upon initialization if set to true; otherwise, Chromium will start at the time of the first conversion
278 # -- Maximum duration to wait for Chromium to start or restart
280 # -- Allow file:// URIs to read other file:// URIs
281 allowFileAccessFromFiles: false
282 # -- Ignore TLS/SSL errors on localhost
283 allowInsecureLocalhost: false
284 # -- Set the allowed URLs for Chromium using a regular expression
286 # -- Set the denied URLs for Chromium using a regular expression (default "^file:///[^tmp].*")
288 # -- 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.
289 denyPrivateIps: false
290 # -- 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.
292 # -- Ignore the certificate errors
293 ignoreCertificateErrors: false
294 # -- Don't enforce the same-origin policy
295 disableWebSecurity: false
296 # -- (DEPRECATED) Start Chromium with incognito mode. This flag is deprecated as of Gotenberg 8.25.0 and its value is ignored.
298 # -- Set custom mappings to the host resolver
299 hostResolverRules: ""
300 # -- Set the outbound proxy server; this switch only affects HTTP and HTTPS requests
302 # -- 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.
303 enableEnvironmentProxy: false
304 # -- Disable JavaScript
305 disableJavaScript: false
306 # -- Disable the routes
308 # -- Clear Chromium cache between each conversion.
310 # -- Clear Chromium cookies between each conversion.
312 # -- Clear Chromium local storage between each conversion (session storage is already isolated per conversion). Added in Gotenberg 8.36.0.
314 # -- Maximum request queue size for Chromium. Set to 0 to disable this feature.
316 # -- Duration after which idle Chromium browser processes are shut down (e.g., "30s"). Set to 0s or leave empty to disable (default 0s, disabled).
317 idleShutdownTimeout: ""
318# The LibreOffice module interacts with LibreOffice to convert documents to PDF, thanks to unoconv.
319# https://gotenberg.dev/docs/configuration#libreoffice
321 # -- Number of conversions after which LibreOffice will automatically restart. Set to 0 to disable this feature (default 10)
323 # -- Automatically launch LibreOffce upon initialization if set to true; otherwise, LibreOffice will start at the time of the first conversion (default false)
325 # -- Maximum duration to wait for LibreOffice to start or restart (default 10s)
327 # -- Disable the routes
329 # -- Maximum request queue size for LibreOffice. Set to 0 to disable this feature.
331 # -- Duration after which idle LibreOffice processes are shut down (e.g., "30s"). Set to 0s or leave empty to disable (default 0s, disabled).
332 idleShutdownTimeout: ""
333 # -- 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.
335 # -- Set the denied URLs for LibreOffice outbound fetches using a regular expression. Added in Gotenberg 8.32.0.
337 # -- 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.
338 denyPrivateIps: false
339 # -- 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.
341 # -- 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.
342 enableEnvironmentProxy: false
343# The PDF Engines module gathers all engines that can manipulate PDF files.
344# https://gotenberg.dev/docs/configuration#pdf-engines
346 # -- (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).
348 # -- Set the PDF engines and their order for the merge feature (default qpdf,pdfcpu,pdftk)
350 # -- Set the PDF engines and their order for the split feature (default pdfcpu,qpdf,pdftk)
352 # -- Set the PDF engines and their order for the flatten feature (default qpdf)
354 # -- Set the PDF engines and their order for the convert feature (default libreoffice-pdfengine)
356 # -- Set the PDF engines and their order for the read metadata feature (default exiftool)
357 readMetadataEngines: ""
358 # -- Set the PDF engines and their order for the write metadata feature (default exiftool)
359 writeMetadataEngines: ""
360 # -- Set the PDF engines and their order for the password protection feature (default qpdf,pdftk,pdfcpu)
362 # -- Set the PDF engines and their order for the file embedding feature (default pdfcpu)
364 # -- Set the PDF engines and their order for the embed metadata feature (default qpdf)
365 embedMetadataEngines: ""
366 # -- Set the PDF engines and their order for the watermark feature (default pdfcpu,pdftk)
368 # -- Set the PDF engines and their order for the stamp feature (default pdfcpu,pdftk)
370 # -- Set the PDF engines and their order for the rotate feature (default pdfcpu,pdftk)
372 # -- Set the PDF engines and their order for the read bookmarks feature (default pdfcpu)
373 readBookmarksEngines: ""
374 # -- Set the PDF engines and their order for the write bookmarks feature (default pdfcpu,pdftk)
375 writeBookmarksEngines: ""
376 # -- Set the PDF engines and their order for the Factur-X XMP metadata feature (default qpdf). Added in Gotenberg 8.34.0.
378 # -- Set the PDF engines and their order for the image optimization feature; empty means all (default pdfcpu). Added in Gotenberg 8.36.0.
379 optimizeImagesEngines: ""
380 # -- Disable the routes
382# The Webhook module provides a middleware that allows you to upload the output file
383# from multipart/form-data routes to the destination of your choice.
384# https://gotenberg.dev/docs/configuration#webhook
386 # -- Enable synchronous mode for the webhook feature
387 enableSyncMode: false
388 # -- 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.
390 # -- 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`.
392 # -- 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.
393 denyPrivateIps: false
394 # -- 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.
396 # -- (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.
398 # -- (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.
400 # -- Set the maximum number of retries for the webhook feature (default 4)
402 # -- Set the minimum duration to wait before trying to call the webhook again (default 1s)
404 # -- Set the maximum duration to wait before trying to call the webhook again (default 30s)
406 # -- Set the time limit for requests to the webhook (default 30s)
408 # -- 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.
409 enableEnvironmentProxy: false
410 # -- Disable the webhook feature
412# The Prometheus module collects metrics from other modules.
413# https://gotenberg.dev/docs/configuration#prometheus
415 # -- Set the interval for collecting modules' metrics (default 1s)
417 # -- Set the namespace of modules' metrics (default "gotenberg")
419 # -- Set the metrics endpoint path (default "/prometheus/metrics")
421 # -- Disable the collect of metrics
422 disableCollect: false
423 # -- (DEPRECATED) Disable the route logging. Use disableRouteTelemetry instead.
424 disableRouterLogging: false
425 # -- Disable route telemetry for the Prometheus metrics endpoint
426 disableRouteTelemetry: false
427# The Logging module provides a logger to Gotenberg.
428# https://gotenberg.dev/docs/configuration#logging
430 # -- (DEPRECATED) Set log format. Use stdFormat instead.
432 # -- Set log standard output format - auto, json, or text (default "auto")
434 # -- Set the case of the `level` field in standard output - lower or upper (default "lower"). Added in Gotenberg 8.34.0.
436 # -- Set the log level - error, warn, info, or debug (default "info")
438 # -- Prepend a specified prefix to each field in the logs
440 # -- (DEPRECATED) Enable GCP log field mapping for Cloud Run. Use stdEnableGcpFields instead.
441 enableGcpFields: false
442 # -- Enable GCP log standard output field mapping for Cloud Run
443 stdEnableGcpFields: false
444 # -- Enable GCP severity field mapping
445 enableGcpSeverity: false
447# https://gotenberg.dev/docs/configuration#graceful-shutdown
449 # -- Set the graceful shutdown duration (default 30s)
450 gracefulShutdownDurationSec: 30
451 # -- Hide the Gotenberg banner on startup
455 # -- Enable ServiceMonitor
457 # -- (string) Namespace for ServiceMonitor, defaults to release namespace
459 # -- (string) Optional job label for the target service in Prometheus
461 # -- (string) Interval at which metrics should be scraped
463 # -- (string) Timeout after which the scrape is ended
465 # -- HonorLabels chooses the metric’s labels on collisions with target labels
467 # -- List of metric relabel configs to apply to samples before ingestion
468 metricRelabelings: []
469 # -- List of relabel configs to apply to samples before scraping
471 # -- Additional annotations for the service monitor
473 # -- Additional labels for the service monitor
475# Enable or Disable Network Policy.
476# See also: https://kubernetes.io/docs/concepts/services-networking/network-policies/
479 # Allow all connections from any source. To be set to false if extraIngress is used.
481 # Allow all connections to any destinations. To be set to false if extraEgress is used.
483 # Config custom ingress rules to the NetworkPolicy.
493 # Config custom egress rules to the NetworkPolicy.