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: latest@sha256:c417a505b2306c9234516a279aa1170c4a85068c0b7e67db604f87ce685b40ef
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
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.
46 # -- Annotations to add to the service
48 # -- (DEPRECATED) Static IP address for LoadBalancer type service. Deprecated in Kubernetes 1.24, use provider-specific annotations instead.
50# Strategy is utilized to configure the desired upgrade approach and
51# configuration for the deployment.
53progressDeadlineSeconds: 120
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:'.
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.
72# -- Define the liveness probe object for the container.
79# -- Define the readiness probe object for the container.
86# -- Define the startup probe object for the container.
101 targetCPUUtilizationPercentage: 80
103 # targetMemoryUtilizationPercentage: 80
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
109 # -- Update mode for VPA: Auto (resize in-place or restart), Recreate (restart to resize), Initial (set at creation only), Off (recommendations only)
111 # -- Resource policy for VPA to control which containers and resources are autoscaled, see values.yaml for an example.
114 # - containerName: gotenberg
125 # -- Unhealthy pod eviction policy for the PDB (e.g., AlwaysAllow)
126 unhealthyPodEvictionPolicy:
130topologySpreadConstraints: []
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.
145# - name: OTEL_EXPORTER_OTLP_ENDPOINT
146# value: "http://otel-collector:4317"
147# - name: OTEL_TRACES_EXPORTER
149# - name: OTEL_METRICS_EXPORTER
151# - name: OTEL_LOGS_EXPORTER
154# -- List of init containers for the gotenberg pod
156# - name: init-myservice
158# command: ['sh', '-c', 'echo init container']
161 # -- Set to true to enable ingress record generation. WARNING: Gotenberg shouldn't be exposed to the internet.
163 # -- Set the class name of the ingress
165 # -- Set the annotations of the ingress
167 # kubernetes.io/ingress.class: nginx
168 # kubernetes.io/tls-acme: "true"
170 # -- Set the labels of the ingress
172 # -- Set the hostnames of the ingress, see values.yaml for an example.
174 # - host: chart-example.local
177 # pathType: ImplementationSpecific
179 # -- Set the TLS configuration for the ingress, see values.yaml for an example.
181 # - secretName: chart-example-tls
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/
188 # -- Set to true to create an HTTPRoute resource
190 # -- Annotations to add to the HTTPRoute
192 # -- Labels to add to the HTTPRoute
194 # -- Parent Gateway references, see values.yaml for an example.
199 # -- Hostnames to match for routing, see values.yaml for an example.
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
205 # -- Set the port on which the API should listen (default 3000)
207 # -- Enables TLS on the API server: K8S TLS secret name containing the TLS certificate and key (tls.crt, tls.key)
209 # -- Set the time limit for requests (default 30s)
211 # -- Set the request body limit for multipart/form-data (e.g., "100MB")
213 # -- Set the root path of the API - for service discovery via URL paths (default "/")
215 # -- (DEPRECATED) Set the header name to use for identifying requests. Use correlationIdHeader instead.
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
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)
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)
237 # -- Set the basic authentication password (ignored if existingSecret is set)
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
260 # -- Number of conversions after which Chromium will automatically restart. Set to 0 to disable this feature (default 100)
262 # -- Maximum number of concurrent Chromium conversions (default 6)
264 # -- Automatically launch Chromium upon initialization if set to true; otherwise, Chromium will start at the time of the first conversion
266 # -- Maximum duration to wait for Chromium to start or restart
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
274 # -- Set the denied URLs for Chromium using a regular expression (default "^file:///[^tmp].*")
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.
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.
286 # -- Set custom mappings to the host resolver
287 hostResolverRules: ""
288 # -- Set the outbound proxy server; this switch only affects HTTP and HTTPS requests
290 # -- Disable JavaScript
291 disableJavaScript: false
292 # -- Disable the routes
294 # -- Clear Chromium cache between each conversion.
296 # -- Clear Chromium cookies between each conversion.
298 # -- Maximum request queue size for Chromium. Set to 0 to disable this feature.
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
305 # -- Number of conversions after which LibreOffice will automatically restart. Set to 0 to disable this feature (default 10)
307 # -- Automatically launch LibreOffce upon initialization if set to true; otherwise, LibreOffice will start at the time of the first conversion (default false)
309 # -- Maximum duration to wait for LibreOffice to start or restart (default 10s)
311 # -- Disable the routes
313 # -- Maximum request queue size for LibreOffice. Set to 0 to disable this feature.
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.
319 # -- Set the denied URLs for LibreOffice outbound fetches using a regular expression. Added in Gotenberg 8.32.0.
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.
325# The PDF Engines module gathers all engines that can manipulate PDF files.
326# https://gotenberg.dev/docs/configuration#pdf-engines
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).
330 # -- Set the PDF engines and their order for the merge feature (default qpdf,pdfcpu,pdftk)
332 # -- Set the PDF engines and their order for the split feature (default pdfcpu,qpdf,pdftk)
334 # -- Set the PDF engines and their order for the flatten feature (default qpdf)
336 # -- Set the PDF engines and their order for the convert feature (default libreoffice-pdfengine)
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)
344 # -- Set the PDF engines and their order for the file embedding feature (default pdfcpu)
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)
350 # -- Set the PDF engines and their order for the stamp feature (default pdfcpu,pdftk)
352 # -- Set the PDF engines and their order for the rotate feature (default pdfcpu,pdftk)
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.
360 # -- Disable the routes
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
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.
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`.
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.
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.
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.
380 # -- Set the maximum number of retries for the webhook feature (default 4)
382 # -- Set the minimum duration to wait before trying to call the webhook again (default 1s)
384 # -- Set the maximum duration to wait before trying to call the webhook again (default 30s)
386 # -- Set the time limit for requests to the webhook (default 30s)
388 # -- Disable the webhook feature
390# The Prometheus module collects metrics from other modules.
391# https://gotenberg.dev/docs/configuration#prometheus
393 # -- Set the interval for collecting modules' metrics (default 1s)
395 # -- Set the namespace of modules' metrics (default "gotenberg")
397 # -- Set the metrics endpoint path (default "/prometheus/metrics")
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
408 # -- (DEPRECATED) Set log format. Use stdFormat instead.
410 # -- Set log standard output format - auto, json, or text (default "auto")
412 # -- Set the case of the `level` field in standard output - lower or upper (default "lower"). Added in Gotenberg 8.34.0.
414 # -- Set the log level - error, warn, info, or debug (default "info")
416 # -- Prepend a specified prefix to each field in the logs
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
425# https://gotenberg.dev/docs/configuration#graceful-shutdown
427 # -- Set the graceful shutdown duration (default 30s)
428 gracefulShutdownDurationSec: 30
429 # -- Hide the Gotenberg banner on startup
433 # -- Enable ServiceMonitor
435 # -- (string) Namespace for ServiceMonitor, defaults to release namespace
437 # -- (string) Optional job label for the target service in Prometheus
439 # -- (string) Interval at which metrics should be scraped
441 # -- (string) Timeout after which the scrape is ended
443 # -- HonorLabels chooses the metric’s labels on collisions with target labels
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
449 # -- Additional annotations for the service monitor
451 # -- Additional labels for the service monitor
453# Enable or Disable Network Policy.
454# See also: https://kubernetes.io/docs/concepts/services-networking/network-policies/
457 # Allow all connections from any source. To be set to false if extraIngress is used.
459 # Allow all connections to any destinations. To be set to false if extraEgress is used.
461 # Config custom ingress rules to the NetworkPolicy.
471 # Config custom egress rules to the NetworkPolicy.