-
Notifications
You must be signed in to change notification settings - Fork 672
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Complete Flyte subworkflow and dynamic behavior #139
Comments
PRs: In order to get sub-workflows to work, we need to add subworkflows to the request being sent by the SDK. Currently, registration is just sending the primary workflow: The IDL will need to be changed as well since the current workflow creation message, https://github.com/lyft/flyteidl/blob/master/protos/flyteidl/admin/workflow.proto#L47, does not allow subworkflows. |
This PR fixes a few underlying issues that allows sub-workflows to work. See flyteorg/flyte#139 for related PRs.
Please see flyteorg/flyte#139 for additional context. * Completes the SdkWorkflow.promote_from_model functionality. Promoting from model now optionally takes subworkflows and tasks. If specified, the ones provided will be used instead of fetching from Admin. * Enables the sub-workflow behavior * Updates flyteidl to a version that has sub-workflows in the workflow creation request to Admin. * Calling an SdkWorkflow now produces a node. * `SdkTaskNode` and `SdkWorkflowNode` have been moved into a separate file from nodes.py. Related things but don't have time to put into this PR: * Proper serialization of components (we want to use the same construct as the current registration call path) * How do you not register subworkflows, but do register them if they're also standalone workflows, and always use the correct name, and also always have the correct dependency structure when doing the topologic sort. * Discovered that we have duplicate `CompiledTask` models while writing this PR but will fix later. Left a todo.
In order to make register workflows with subworkflows, they need to be passed along to the compiler. * Also updated the logging for a minor log line that was making it hard for me to debug an issue earlier today. Please see flyteorg/flyte#139 for related PRs.
With the PRs above, @datability-io could you start testing the static subworkflow usage pattern/. You'll need to use flytekit |
# TL;DR When Propeller comes across a launch plan node in a `DynamicJobSpec` it will hit Admin to retrieve the interface for the LP to do the interface check. ## Type - [ ] Bug Fix - [x] Feature - [ ] Plugin ## Are all requirements met? - [x] Code completed - [x] Smoke tested - [x] Unit tests added - [x] Code documentation added - [x] Any pending items have an associated Issue ## Complete description Please see the issue linked below and also the SDK PR flyteorg/flytekit#92 for more information. A sample dynamic job spec object has been uploaded here as well. Please see the text file for the type of dynamic job spec this PR is meant to support. [dynamic_job_spec.txt](https://github.com/lyft/flytepropeller/files/4430252/dynamic_job_spec.txt) * Added a `GetLaunchPlan` function to a `launchplan/Reader` interface which sits alongside the `launchplan/Executor` interface. Admin client wrapper now satisfies both interfaces. * Added a call to that function in the dynamic job handler `buildContextualDynamicWorkflow` function. ## Tracking Issue flyteorg/flyte#139 ## Follow-up issue flyteorg/flyte#246 This PR will be deprecated upon completion of this issue.
There are some follow-up issues like #246, but going to consider this complete for now. |
Please see flyteorg/flyte#139 for additional context. * Completes the SdkWorkflow.promote_from_model functionality. Promoting from model now optionally takes subworkflows and tasks. If specified, the ones provided will be used instead of fetching from Admin. * Enables the sub-workflow behavior * Updates flyteidl to a version that has sub-workflows in the workflow creation request to Admin. * Calling an SdkWorkflow now produces a node. * `SdkTaskNode` and `SdkWorkflowNode` have been moved into a separate file from nodes.py. Related things but don't have time to put into this PR: * Proper serialization of components (we want to use the same construct as the current registration call path) * How do you not register subworkflows, but do register them if they're also standalone workflows, and always use the correct name, and also always have the correct dependency structure when doing the topologic sort. * Discovered that we have duplicate `CompiledTask` models while writing this PR but will fix later. Left a todo.
…g#139) Abort always fails for a task if task was already in a terminal state - success, failure or retryable fail. This is because the event publish fails. This fix ensures an event is not published for terminal cases. - [x] Bug Fix - [ ] Feature - [ ] Plugin - [x] Code completed - [x] Smoke tested - [x] Unit tests added - [x] Code documentation added - [x] Any pending items have an associated Issue NA flyteorg#333 NA
…lyteorg#139)" (#145) This reverts commit b18dca0.
* Fix RefreshConfig * RefreshConfig unit test Signed-off-by: iaroslav-ciupin <[email protected]>
* Fix DCO make target Signed-off-by: Yuvraj <[email protected]> * added github checkout depth to 2 Signed-off-by: Yuvraj <[email protected]>
This PR fixes a few underlying issues that allows sub-workflows to work. See flyteorg/flyte#139 for related PRs.
# TL;DR When Propeller comes across a launch plan node in a `DynamicJobSpec` it will hit Admin to retrieve the interface for the LP to do the interface check. ## Type - [ ] Bug Fix - [x] Feature - [ ] Plugin ## Are all requirements met? - [x] Code completed - [x] Smoke tested - [x] Unit tests added - [x] Code documentation added - [x] Any pending items have an associated Issue ## Complete description Please see the issue linked below and also the SDK PR flyteorg/flytekit#92 for more information. A sample dynamic job spec object has been uploaded here as well. Please see the text file for the type of dynamic job spec this PR is meant to support. [dynamic_job_spec.txt](https://github.com/lyft/flytepropeller/files/4430252/dynamic_job_spec.txt) * Added a `GetLaunchPlan` function to a `launchplan/Reader` interface which sits alongside the `launchplan/Executor` interface. Admin client wrapper now satisfies both interfaces. * Added a call to that function in the dynamic job handler `buildContextualDynamicWorkflow` function. ## Tracking Issue flyteorg/flyte#139 ## Follow-up issue flyteorg/flyte#246 This PR will be deprecated upon completion of this issue.
Please see flyteorg/flyte#139 for additional context. * Completes the SdkWorkflow.promote_from_model functionality. Promoting from model now optionally takes subworkflows and tasks. If specified, the ones provided will be used instead of fetching from Admin. * Enables the sub-workflow behavior * Updates flyteidl to a version that has sub-workflows in the workflow creation request to Admin. * Calling an SdkWorkflow now produces a node. * `SdkTaskNode` and `SdkWorkflowNode` have been moved into a separate file from nodes.py. Related things but don't have time to put into this PR: * Proper serialization of components (we want to use the same construct as the current registration call path) * How do you not register subworkflows, but do register them if they're also standalone workflows, and always use the correct name, and also always have the correct dependency structure when doing the topologic sort. * Discovered that we have duplicate `CompiledTask` models while writing this PR but will fix later. Left a todo.
In order to make register workflows with subworkflows, they need to be passed along to the compiler. * Also updated the logging for a minor log line that was making it hard for me to debug an issue earlier today. Please see flyteorg/flyte#139 for related PRs.
…g#139) Abort always fails for a task if task was already in a terminal state - success, failure or retryable fail. This is because the event publish fails. This fix ensures an event is not published for terminal cases. - [x] Bug Fix - [ ] Feature - [ ] Plugin - [x] Code completed - [x] Smoke tested - [x] Unit tests added - [x] Code documentation added - [x] Any pending items have an associated Issue NA flyteorg#333 NA
…lyteorg#139)" (#145) This reverts commit 2c1608b.
* Fix RefreshConfig * RefreshConfig unit test Signed-off-by: iaroslav-ciupin <[email protected]>
* Fix DCO make target Signed-off-by: Yuvraj <[email protected]> * added github checkout depth to 2 Signed-off-by: Yuvraj <[email protected]>
* Fix DCO make target Signed-off-by: Yuvraj <[email protected]> * added github checkout depth to 2 Signed-off-by: Yuvraj <[email protected]>
* Fix DCO make target Signed-off-by: Yuvraj <[email protected]> * added github checkout depth to 2 Signed-off-by: Yuvraj <[email protected]>
Flyte dynamic execution behavior needs to be finished. Specifically,
The following has been moved out of scope for this issue.
The text was updated successfully, but these errors were encountered: