By default, in a Flyte multi-cluster deployment, sub-workflows (including those invoked via reference launch plans) can be executed on a different cluster than the parent workflow if the sub-workflow is launched as an "external workflow" (i.e., via a launch plan). The cluster selection for each workflow execution—parent or sub-workflow—is determined independently based on the execution cluster label resolution mechanism, which considers project, domain, and workflow labels at execution time. This means that if you have configured different execution cluster labels for the sub-workflow (or its project/domain), it can be routed to a different cluster than the parent, even when invoked as a launch plan. However, if the sub-workflow is invoked as a "subworkflow" (inlined in the parent workflow), it will always run in the same cluster and context as the parent workflow, inheriting its constraints and cluster assignment.
This behavior is confirmed in the Flyte documentation and community discussions: subworkflows (inlined) share the parent’s context and cluster, while external workflows (via launch plans) are scheduled independently and may run on different clusters if so configured. For more, see the explanation and examples in the
Flyte subworkflows documentation and the
multi-cluster execution overview▾
. Would you like more detail on how to configure execution cluster labels or on the technical differences between subworkflows and external workflows?
Sources:
-
Flyte subworkflows documentation
-
Figure Image 👍 0 button 👎 0 button 💡
Hint: Mention @runllm in the thread for followups.