/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, and staged enforcement. |
|
|
|
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. |
|
Workflow Information#
Field |
Type |
Description |
Default Values |
|---|---|---|---|
|
Array[String] |
The list contains the available tags the user can mark their workflow |
|
|
Integer |
Maximum allowed length for workflow names. |
|
Workflow Labels#
Workflow labels are optional and format-checked even when no label is required. The default configuration applies no label policies:
labels_config:
policy: []
Each entry in policy controls one key independently. Use off or omit a
key from policy to disable both warnings and enforcement for that key:
labels_config:
policy:
- key: team
allow_list:
- robotics
- simulation
enforcement: warn
- key: cost-center
allow_list: []
enforcement: enforce
Field |
Type |
Description |
Default Values |
|---|---|---|---|
|
String |
Kubernetes label key to check. Duplicate policy keys are rejected, and at most 16 keys can be configured. |
Required |
|
List of Strings |
Exact accepted values. An empty list accepts any well-formed value. |
|
|
String ( |
|
|
The same policy applies to new submissions, resubmission by ID, restart, and
validation-only requests. An enforcement: enforce rejection creates
neither a workflow row nor a stored specification. Submit responses carry
warnings from that admission check. Warnings are not stored with the
workflow: detail responses recompute warn-mode violations from the stored
labels and the current configuration, so displayed warnings track policy
changes even for completed workflows.
To roll back enforcement immediately, use enforcement: warn. To disable both
warnings and enforcement, use enforcement: "off" (quoted: unquoted YAML
off parses as boolean false) or remove the policy entry.
Existing and in-flight workflows are not modified, although their detail-page
warnings always reflect the current warn policy. In ConfigMap mode, an invalid
edit is rejected and the previous valid snapshot remains active.
Only configured policy keys become workflow-label dimensions on
osmo_tasks_count. Attribute names start with workflow_label_. Letters
and numbers are unchanged; _, -, ., and / are encoded as
__, _dash_, _dot_, and _slash_ respectively. For example,
project is exported as workflow_label_project. Values in the configured
allow-list are exported verbatim; a present value outside that list is clamped
to <other>, and a missing key is reported as <missing>. Angle
brackets are not valid in label values, so the sentinels never collide with
real values. An empty allow-list exports every present value as <other>.
This keeps the number of series bounded to the allow-list plus two sentinels
per key.
Admission also emits
osmo_label_validation_total{key, outcome}, where outcome is ok,
missing, invalid, or rejected. The counter covers rejected
submissions that do not create a workflow row. Keep the policy list small to
control metric cardinality. Exporting a Pod label through kube_pod_labels is a
separate kube-state-metrics allow-list decision; see
Add Observability (Optional).
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 |