App Suite Releases
  • 8.47
  • 8.35
  • 7.10.6
Imprint
  • 8.47
  • 8.35
  • 7.10.6
Imprint
  • Release 8.54Upcoming
    • Noteworthy Changes
      • Important Changes
      • App Suite Middleware
    • Changelogs
      • App Suite UI
      • App Suite Middleware
      • Additional Components
        • AI Service
        • Booking Service
        • OX Guard UI
        • Switchboard
        • UI Service
    • Helm Charts
      • AI-Service documentation
      • App Suite Stack Chart
      • Booking
      • Helm Chart core-cacheservice
      • Helm Chart core-documentconverter
      • Helm Chart core-imageconverter
      • core-mw
      • UI Service
      • Switchboard
  • Release 8.53
  • Release 8.52
  • Release 8.51
  • Release 8.50
  • Release 8.49
Maintained. Older releases are best effort.
Upcoming
Not released yet
LTS
Long-term support branch

Helm Chart core-documentconverter

This Helm Chart deploys DocumentConverter service core in a kubernetes cluster.

Introduction

This Chart includes the following components:

  • DocumentConverter application container to deploy in a kubernetes cluster.

Requirements

Requires Kubernetes v1.19+

Dependencies

This section will provide details about specific requirements in addition to this Helm Chart.

Pushing to registry

From wihtin ${PROJECT_DIR}/helm/core-documentconverter directory:

helm repo add ox-documents-registry https://registry.open-xchange.com/chartrepo/documents
helm repo update
helm push . ox-documents-registry

Test installation

Run a test against a cluster deployment:

helm repo add ox-documents-registry https://registry.open-xchange.com/chartrepo/documents
helm repo update
helm install --dry-run --debug --generate-name --version [VERSION] ox-documents-registry/core-documentconverter

Installing the chart

Install the Chart with the release name 'alice':

helm repo add ox-documents-registry https://registry.open-xchange.com/chartrepo/documents
helm repo update
helm install alice --version [VERSION] ox-documents-registry/core-documentconverter [-f path/to/values_with_credentials.yaml]

Configuration

Global Configuration

ParameterDescriptionDefault
defaultRegistryThe image registryregistry.open-xchange.com
image.repositoryThe image repositorycore-documentconverter
image.tagThe image tag``
image.pullPolicyThe imagePullPolicy for the deploymentIfNotPresent
imagePullSecretsList of references to secrets for image registries[]
documentConverter.engineSpecifies the engine used for document conversion: default (local ReaderEngine process), podman (ReaderEngine in a Podman container) or cool (Collabora Online).default
documentConverter.engineImageThe OCI image to run when documentConverter.engine is podman. Required in that case.-
documentConverter.engineTcpPortBaseThe first TCP port considered when handing out ports to podman engine instances.8132
documentConverter.engineContainerMemoryOverheadMBFixed headroom in MB added on top of maxVMemMB when sizing each podman engine container's memory limit (the container cgroup limit also counts the entrypoint
and the page cache of image files). Only relevant if documentConverter.engine is podman.
128
documentConverter.maxVMemMBThe maximum memory in MB a single conversion engine instance may allocate.2048
documentConverter.processorCountThe number of processing engines to use in parallel3
documentConverter.processingTimeoutSecondsSpecifies the maximum time in seconds a document will be processed60
documentConverter.jobQueueCountLimitHighThe maxmimum number of jobs in queue after further jobs are rejected40
documentConverter.jobQueueCountLimitLowThe number of jobs in queue when jobs are accepted again after 'jobQueueCountLimitHigh' was reached25
documentConverter.jobQueueTimeoutSecondsThe time in seconds after a queued job gets removed from queue and is rejected300
documentConverter.jobAsyncQueueCountLimitHighThe maximum number of asynchronous jobs to hold in queue to be processed1024
documentConverter.urlLinkLimitThe maximum number of external document URLs that can be resolved per conversion instance. Use -1 for no limit and 0 to disable resolving of URLs.200
documentConverter.urlLinkProxyThe optional proxy to resolve document internal URLs during conversion. Specification must be done with host:port, protocol must not be set.``
documentConverter.cache.remoteCacheThe settings for the CacheService to use{}
documentConverter.cache.remoteCache.urlThe optional CacheService URL.
If not set, a cluster local CacheService URL is generated if core-cacheservice is enabled.
If a blank ("") string is set, no CacheService is used.
``
documentConverter.cache.maxEntriesThe maximum number of cache entries. Use -1 for unlimited.1000000
documentConverter.cache.maxSizeMegaBytesThe maximum size of all cache entries combined. Use -1 for unlimited.-1
documentConverter.cache.minFreeSizeMegaBytesThe minimum size of local volume space that should not be used by cache.1024
documentConverter.cache.maxLifetimeSecondsThe maximum age in seconds of a cache entry before it gets removed. Use -1 for unlimited.2592000
documentConverter.cache.cleanupPeriodSecondsThe period in seconds after which the next cache cleanup will be performed300
documentConverter.remoteAccess.denyURLRegExpThe optional list of URL regular expressions that will not be resolved.[.*]
documentConverter.remoteAccess.allowURLRegExpThe optional list of URL regular expressions that will be resolved even if listed as denied.[]
documentConverter.readinessDownAfterUsedServiceUnavailabilitySecondsSet readiness down after this period of time if depending service is not available. Use -1 to disable.300
documentConverter.livenessDownAfterReadinessDownSecondsShutdown service after this period of time after readiness went down. Use -1 to disable.15
documentConverter.readinessUpUsedServiceRecoveryPeriodSecondsThe period of time the remote cache client tries to reestablish a lost server connection.20
documentConverter.jvmHeapSizeMBThe maximum JVM heap size of the image Java process to use in MegaBytes768
persistence.enabledSpecifies if cluster volumes are mounted by container. Using emptyDir Volumes when false.false
logging.*Specifies logging configuration values.
All file size related values are specified either in Bytes (no Postfix), KiloBytes (KB postfix), MegaBytes (MB postfix) or GigaBytes (GB postfix).
``
envConfiguration properties passed to the service via environment variables[]

Podman conversion engine

With documentConverter.engine: podman the conversion engine runs in one rootless Podman container per engine instance, inside the service pod, instead of as a local process in the service container. Additional deployment requirements in that case:

  • documentConverter.engineImage is mandatory - the chart refuses to render without it. It is either a registry reference (pulled on demand) or a file:///path/to/image.tar(.gz) tarball loaded from a mounted/baked-in path.
  • resources.requests/limits.memory must cover jvmHeapSizeMB + processorCount x (maxVMemMB + engineContainerMemoryOverheadMB), since every engine container runs inside this pod's cgroup.
  • resources.requests/limits.ephemeral-storage must cover the engine image itself: it is stored in the pod's own (emptyDir) spool volume - once for a shared image store, or once per engine instance where only the vfs storage fallback is usable.
  • Nodes/pods must support nested rootless Podman: user namespaces, ideally a usable unprivileged overlay mechanism (native or fuse-overlayfs; otherwise the slower per-instance vfs fallback is selected automatically), and cgroups v2 if the engine memory limits are to be enforced at all.

See documentation/adr/0001-podman-based-conversion-engine.md in the service repository for the design details.

Prev
Helm Chart core-cacheservice
Next
Helm Chart core-imageconverter