Deployment Profiles
This document introduces the three deployment profiles supported by the SonataFlow Operator—dev
, preview
, and gitops
. These profiles influence how the operator builds and manages workflow deployments, especially regarding image lifecycle, live updates, and reconciliation behavior.
Deployment profiles define how the workflow is built and managed by the operator. If you’re looking to customize how the workflow is deployed as a Kubernetes Deployment or a Knative Service, see Deployment Model. |
GitOps Profile
The gitops
profile provides full control over workflow images. In this model, you build your workflow container externally (e.g., CI/CD pipeline) and specify the image in the SonataFlow custom resource:
spec:
podTemplate:
container:
image: quay.io/acme/myworkflow:latest
When this field is set, the operator automatically assumes the gitops
profile and will not build or mutate the image.
Use this profile when:
-
You want full control over the build process
-
You need to satisfy production requirements like auditability, security, and compliance
-
You’re integrating SonataFlow into existing GitOps-based workflows (e.g., ArgoCD, Tekton)
Preview Profile
The preview
profile lets the operator handle workflow builds using an internal build pipeline. Any changes to the .spec.flow
will trigger a rebuild and a new immutable container image.
This profile is ideal for:
-
Pre-production staging and demonstration environments
-
Quick validation of workflow logic without managing the build pipeline
Key characteristics:
-
The operator uses
application-prod.properties
-
Images are automatically built and managed
-
Supports setting
deploymentModel: knative
(see Deployment Models)
Development Profile
The dev
profile supports rapid iteration and live updates directly from the cluster. Changes to the custom resource take effect almost immediately without triggering a new container image build.
This profile is ideal for:
-
Live development and testing of workflows
-
Quick iterations without a build process
-
Extending workflows using the base developer image
Key characteristics:
-
Uses
application-dev.properties
-
Automatically reloads the flow without rebuilding the container
-
The image must be based on
docker.io/apache/incubator-kie-sonataflow-devmode:main
Choosing the Right Profile
Use Case | Profile |
---|---|
Full control of build and deployment |
|
Internal automated build and deploy |
|
Fast iteration during development |
|
Switching Between Profiles
To select a deployment profile, annotate your SonataFlow custom resource:
metadata:
annotations:
sonataflow.org/profile: preview
Valid values: dev
, preview
, gitops
.
Setting .spec.podTemplate.container.image will override this annotation and automatically activate the gitops profile.
|
Profile Implications for Customization
Your selected profile impacts how the operator treats certain configuration aspects:
Profile | Image Build | Reconciliation | .spec.resources |
Supports Knative |
---|---|---|---|---|
|
Live reload |
Auto-updates |
Mounted in dev volume |
❌ Ignored |
|
Internal build |
Rebuilt on change |
Used during build |
✅ |
|
User-supplied |
No rebuild |
Ignored |
✅ |
For pod-level customization, including using |
Found an issue?
If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!