Global Configuration Settings

This document describes how to set global configuration options for the SonataFlow Operator.

Prerequisites

Modifying configuration options

After installing the operator, you can access the ConfigMap named sonataflow-operator-controllers-config in the namespace sonataflow-operator-system. This configuration file governs the operator’s behavior when creating new resources in the cluster. Existing resources won’t be changed after this configuration. See the section Configuration Changes Impact for more information.

You can freely edit any of the options in the key controllers_cfg.yaml entry. The table bellow lists each possible entry.

Table 1. Description of Global Configuration
Configuration Key Default Value Description

defaultPvcKanikoSize

1Gi

The default size of Kaniko PVC when using the internal operator builder manager.

healthFailureThresholdDevMode

50

How much time (in seconds) to wait for a devmode workflow to start. This information is used for the controller manager to create new devmode containers and setup the healthcheck probes.

kanikoDefaultWarmerImageTag

gcr.io/kaniko-project/warmer:v1.9.0

Default image used internally by the Operator Managed Kaniko builder to create the warmup pods.

kanikoExecutorImageTag

gcr.io/kaniko-project/executor:v1.9.0

Default image used internally by the Operator Managed Kaniko builder to create the executor pods.

jobsServicePostgreSQLImageTag

empty

The Jobs Service image for PostgreSQL to use, if empty the operator will use the default Apache Community one based on the current operator’s version.

jobsServiceEphemeralImageTag

empty

The Jobs Service image without persistence to use, if empty the operator will use the default Apache Community one based on the current operator’s version.

dataIndexPostgreSQLImageTag

empty

The Data Index image for PostgreSQL to use, if empty the operator will use the default Apache Community one based on the current operator’s version.

dataIndexEphemeralImageTag

empty

The Data Index image without persistence to use, if empty the operator will use the default Apache Community one based on the current operator’s version.

sonataFlowBaseBuilderImageTag

empty

SonataFlow base builder image used in the internal Dockerfile to build workflow applications in preview profile. If empty the operator will use the default Apache Community one based on the current operator’s version.

sonataFlowDevModeImageTag

empty

The image to use to deploy SonataFlow workflow images in devmode profile. If empty the operator will use the default Apache Community one based on the current operator’s version.

builderConfigMapName

sonataflow-operator-builder-config

The default name of the builder configMap in the operator’s namespace.

postgreSQLPersistenceExtensions

next column

Quarkus extensions required for workflows persistence. These extensions are used by the SonataFlow Operator builder in cases where the workflow being built has configured postgresql persistence.

Default values:

io.quarkus:quarkus-agroal:3.8.4

io.quarkus:quarkus-jdbc-postgresql:3.8.4

org.kie:kie-addons-quarkus-persistence-jdbc:999-SNAPSHOT

To edit this file, update the ConfigMap sonataflow-operator-controllers-config using your preferred tool such as kubectl.

Configuration Changes Impact

When updating the global configuration, the changes will be taken impact immediately for newly created resources only. For example, if you change sonataFlowDevModeImageTag property, given that you already have a workflow deployed in devmode, the operator won’t rollout a new one with the new image configuration. Only new deployments will be affected.

A Note About the Base Builder Image

As noted in Changing Base Builder section, you can directly change the base builder image in the Dockerfile used by the SonataFlow Operator.

Additionally, you can also change the base builder image in the SonataFlowPlatform in the current namespace:

Example of SonataFlowPlatform with a custom base builder
apiVersion: sonataflow.org/v1alpha08
kind: SonataFlowPlatform
metadata:
  name: sonataflow-platform
spec:
  build:
    config:
        baseImage: dev.local/my-workflow-builder:1.0.0

And finally, you can also change this information directly in the global confinguration ConfigMap

Example of ConfigMap global configuration with a custom base builder
apiVersion: v1
data:
  controllers_cfg.yaml: |
    sonataFlowBaseBuilderImageTag: dev.local/my-workflow-builder:1.0.0
kind: ConfigMap
metadata:
  name: sonataflow-operator-controllers-config
  namespace: sonataflow-operator-system

The order of precedence is:

  1. The SonataFlowPlatform in the current context

  2. The global configuration entry

  3. The FROM clause in the Dockerfile in the operator’s namespace sonataflow-operator-builder-config ConfigMap

In summary, the entry in SonataFlowPlatform will always override any other value.

Found an issue?

If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!