/api/configs/workflow#
Workflow config is used to configure workflow execution and management.
Top-Level Configuration#
Field |
Type |
Description |
Default Values |
|---|---|---|---|
|
Cloud storage configuration for workflow artifacts, such as workflow spec and Kubernetes pod spec. |
Default configuration |
|
|
Cloud storage configuration for workflow logs and error logs. |
Default configuration |
|
|
Cloud storage configuration for OSMO apps. |
Default configuration |
|
|
Miscellaneous workflow configurations. |
Default configuration |
|
|
Container images used by the workflow (i.e. init and osmo-ctrl containers). |
Default configuration |
|
|
Configuration for workflow alerts. |
Default configuration |
|
|
Settings for credential validation. |
Default configuration |
|
|
Limits and constraints for users and their workflows. |
Default configuration |
|
|
Configuration for workflow plugins. |
See Plugins section |
|
|
Workflow-label policies, accepted values, staged enforcement, and the optional pod-label prefix. |
|
|
|
Integer |
Maximum number of tasks allowed in a workflow. |
|
|
Integer |
Maximum number of ports allowed per task to be forwarded at a time. |
|
|
Integer |
Maximum number of retries allowed per task. |
|
|
Integer |
Maximum number of retries allowed per job. |
|
|
Integer |
Default timeout for task scheduling in seconds. |
|
|
String |
Default per-group execution timeout, applied independently to each group’s RUNNING phase. Must be in the format of <integer><unit> (for example, 10m, 1h, 1d). |
|
|
String |
Default per-group queue timeout, measured from when each group enters |
|
|
String |
Maximum allowed per-group execution timeout. Must be in the format of <integer><unit> (for example, 10m, 1h, 1d). |
|
|
String |
Maximum allowed per-group queue timeout. Must be in the format of <integer><unit> (for example, 10m, 1h, 1d). |
|
|
String |
Amount of time after a workflow has failed to force cleanup of resources. Must be in the format of <integer><unit> (for example, 10m, 1h, 1d). |
|
|
Integer |
Maximum number of log lines to retain for a workflow. |
|
|
Integer |
Maximum number of log lines per task. |
|
|
Integer |
Maximum number of error log lines to retain. |
|
|
Integer |
Maximum number of event log lines to retain. |
|
|
String |
Frequency of task heartbeat signals. |
|
Workflow Data#
Field |
Type |
Description |
Default Values |
|---|---|---|---|
|
Credentials for accessing workflow data storage. |
|
|
|
String |
Base URL for workflow data access, enabling users to view their intermediate output data from workflows on the browser. |
|
|
Integer |
Timeout for websocket connections in seconds. |
|
|
Integer |
Timeout for data operations in seconds. |
|
Workflow Log#
Field |
Type |
Description |
Default Values |
|---|---|---|---|
|
Credentials for accessing workflow logs and error logs in cloud storage. |
|
Workflow App#
Field |
Type |
Description |
Default Values |
|---|---|---|---|
|
Credentials for accessing OSMO apps in cloud storage. |
|
Credential#
Field |
Type |
Description |
Default Values |
|---|---|---|---|
|
String |
Access key ID for cloud storage authentication. |
|
|
String |
Access key for cloud storage authentication. |
|
|
String |
Cloud storage endpoint URI including protocol, container, and prefix (if any). |
|
|
String |
Cloud storage region. |
|
Rotating mounted credentials#
Each service process checks explicitly referenced credential files every 30 seconds.
This applies to workflow_data, workflow_log, and workflow_app access keys,
and backend_images registry login credentials. Use secretName / secretKey
or secret_file directly under the corresponding credential setting.
Kubernetes must first project the updated Secret into the pod, so total propagation
time includes the kubelet’s projection delay. Mount Secret directories, not subPath
files, to receive Kubernetes updates.
At startup, detected dependency changes during credential reads are retried within the existing 30-second startup retry window. Stable malformed, missing, or invalid credential references remain startup errors.
Valid replacements are published together for subsequent credential reads. Missing, invalid, or concurrently changing files leave the last accepted credentials active; the next check retries automatically. Already-created task pods and in-flight operations retain their captured credentials. Keep old credentials valid until those tasks finish and all service replicas have observed the replacement.
Kubernetes event notifications are best effort: their separate client uses one-second connection and read timeouts with automatic retries disabled. Notification failures do not prevent subsequent credential-refresh attempts. Durable startup reconciliation uses its existing client and is not affected by these event-delivery limits.
The ConfigMap remains startup-only. Changing Secret references, storage endpoints, regions, addressing options, registry addresses, or authentication mode requires a restart. Generic Secret-backed configuration and other secrets (including database, signing, and encryption keys) are not refreshed by this mechanism. ConfigMap changes do not affect which credential files an already running process checks.
Workflow Information#
Field |
Type |
Description |
Default Values |
|---|---|---|---|
|
Array[String] |
Available legacy tags for the tag API and older clients. The 6.4 CLI uses Workflow Labels for new workflows instead. |
|
|
Integer |
Maximum allowed length for workflow names. |
|
Workflow Labels#
Policy and prefix behavior, enforcement rollout, and the exported metrics are described in Workflow Labels.
Field |
Type |
Description |
Default Values |
|---|---|---|---|
|
List of Label Policy |
One entry per label key to check. At most 16 entries; duplicate keys are rejected. |
|
|
String |
Prepended to each workflow label key on task pods only. Empty disables it. Rejected at configuration time if it contains a space, tab, or line break, or exceeds 253 characters. |
|
Label Policy#
Field |
Type |
Description |
Default Values |
|---|---|---|---|
|
String |
Kubernetes label key to check. |
Required |
|
List of Strings |
Exact accepted values. An empty list accepts any well-formed value. |
|
|
String ( |
|
|
Backend Images#
Field |
Type |
Description |
Default Values |
|---|---|---|---|
|
String |
Container images for osmo-init. |
|
|
String |
Container images for osmo-ctrl. |
|
|
Registry credentials for pulling container images. |
Default configuration |
Registry Credentials#
Field |
Type |
Description |
Default Values |
|---|---|---|---|
|
String |
Container registry hostname. |
|
|
String |
Registry username for authentication. |
|
|
String |
Registry authentication token or password. |
|
Workflow Alerts#
Field |
Type |
Description |
Default Values |
|---|---|---|---|
|
String |
Slack API token for notifications. |
|
|
SMTP configuration for email notifications. |
Default configuration |
SMTP Settings Configuration#
Field |
Type |
Description |
Default Values |
|---|---|---|---|
|
String |
SMTP server hostname. |
|
|
String |
Email address for sending notifications. |
|
|
String |
SMTP server authentication password. |
|
Credential Configuration#
Field |
Type |
Description |
Default Values |
|---|---|---|---|
|
Array[String] |
List of registries to skip validation for. |
|
|
Array[String] |
List of data sources to skip validation for. |
|
User Workflow Limits#
Field |
Type |
Description |
Default Values |
|---|---|---|---|
|
Optional[Integer] |
Maximum number of workflows per user. If not set, there is no limit. |
|
|
Optional[Integer] |
Maximum number of tasks per user. If not set, there is no limit. |
|
|
Integer |
Number of worker processes for Jinja template sandbox. |
|
|
Float |
Maximum execution time for Jinja template rendering in seconds. |
|
|
Integer |
Memory limit for Jinja template rendering in bytes. |
|
Note
The Jinja template sandbox is used to safely render Jinja templates in a sandboxed worker subprocess. It is used to prevent the execution of unsafe usage in the Jinja template, such as unrolling an infinite loop.
Plugins#
Field |
Type |
Description |
Default Values |
|---|---|---|---|
|
Configuration for the rsync plugin. |
See Rsync Plugin section |
Rsync Plugin#
Field |
Type |
Description |
Default Values |
|---|---|---|---|
|
Boolean |
Whether the rsync plugin is enabled. |
|
|
Boolean |
Whether to enable telemetry for rsync operations. |
|
|
Integer |
Read bandwidth limit in bytes per second. |
|
|
Integer |
Write bandwidth limit in bytes per second. |
|
|
Configuration for allowed file system paths. |
|
|
|
Float |
Delay in seconds before processing file changes. |
|
|
Float |
Interval in seconds for polling file changes. |
|
|
Float |
Interval in seconds for reconciling file states. |
|
|
Integer |
Upload rate limit for clients in bytes per second. |
|
Rsync Allowed Paths#
Field |
Type |
Description |
Default Values |
|---|---|---|---|
|
String |
File system path that is allowed for rsync operations. |
Required field |
|
Boolean |
Whether the path is writable for rsync operations. |
Required field |