Skip to content
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

Closed
wild-endeavor opened this issue Dec 12, 2019 · 3 comments
Closed

Complete Flyte subworkflow and dynamic behavior #139

wild-endeavor opened this issue Dec 12, 2019 · 3 comments
Assignees
Labels
bug Something isn't working propeller Issues related to flyte propeller
Milestone

Comments

@wild-endeavor
Copy link
Contributor

wild-endeavor commented Dec 12, 2019

Flyte dynamic execution behavior needs to be finished. Specifically,

  • Flyte Propeller needs logic to skip interface checking when a dynamic node contains a launch-plan or a workflow node. Currently if you try to yield a workflow node Propeller will just fail it.
  • The SDK needs the ability to yield a workflow statically (and also dynamically?).

The following has been moved out of scope for this issue.

  • Concurrency limits for dynamic tasks - this is too hard to do right now, though we will need it for proper backfill patterns. If someone runs a workflow that has two subworkflows that each has a dynamic task, one that yields a hundred other subworkflows and one that yields a hundred tasks, what does a concurrency limit of 2 mean?
@wild-endeavor wild-endeavor changed the title Complete entire dynamic execution behavior Complete Flyte dynamic execution behavior Dec 12, 2019
@wild-endeavor wild-endeavor added bug Something isn't working propeller Issues related to flyte propeller Task labels Dec 12, 2019
@wild-endeavor wild-endeavor self-assigned this Dec 13, 2019
@wild-endeavor wild-endeavor added this to the 2019-12-20 milestone Dec 13, 2019
@wild-endeavor
Copy link
Contributor Author

wild-endeavor commented Feb 4, 2020

wild-endeavor added a commit to flyteorg/flytepropeller that referenced this issue Mar 7, 2020
This PR fixes a few underlying issues that allows sub-workflows to work.  See flyteorg/flyte#139 for related PRs.
wild-endeavor added a commit to flyteorg/flytekit that referenced this issue Mar 9, 2020
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.
wild-endeavor added a commit to flyteorg/flyteadmin that referenced this issue Mar 9, 2020
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.
@wild-endeavor wild-endeavor changed the title Complete Flyte dynamic execution behavior Complete Flyte subworkflow and dynamic behavior Mar 9, 2020
@wild-endeavor
Copy link
Contributor Author

With the PRs above, @datability-io could you start testing the static subworkflow usage pattern/. You'll need to use flytekit v0.6.0b1. Static only - yielding a workflow node from a dynamic task still doesn't work yet, but I'll work on that next.

@wild-endeavor wild-endeavor modified the milestones: 0.2.0, 0.3.0 Mar 30, 2020
wild-endeavor added a commit to flyteorg/flytepropeller that referenced this issue Apr 8, 2020
# 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.
@wild-endeavor
Copy link
Contributor Author

There are some follow-up issues like #246, but going to consider this complete for now.

max-hoffman pushed a commit to dolthub/flytekit that referenced this issue May 11, 2021
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.
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Dec 6, 2022
…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
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Dec 6, 2022
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Dec 6, 2022
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Dec 20, 2022
* Fix RefreshConfig
* RefreshConfig unit test

Signed-off-by: iaroslav-ciupin <iaroslav@union.ai>
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Dec 20, 2022
* Fix DCO make target

Signed-off-by: Yuvraj <code@evalsocket.dev>

* added github checkout depth to 2

Signed-off-by: Yuvraj <code@evalsocket.dev>
pingsutw pushed a commit to pingsutw/flyte-monorepo that referenced this issue Apr 4, 2023
This PR fixes a few underlying issues that allows sub-workflows to work.  See flyteorg/flyte#139 for related PRs.
pingsutw pushed a commit to pingsutw/flyte-monorepo that referenced this issue Apr 4, 2023
# 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.
pingsutw pushed a commit to pingsutw/flyte-monorepo that referenced this issue Apr 4, 2023
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.
pingsutw pushed a commit to pingsutw/flyte-monorepo that referenced this issue Apr 4, 2023
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.
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Aug 9, 2023
…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
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Aug 9, 2023
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Aug 21, 2023
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Aug 21, 2023
* Fix RefreshConfig
* RefreshConfig unit test

Signed-off-by: iaroslav-ciupin <iaroslav@union.ai>
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Apr 30, 2024
* Fix DCO make target

Signed-off-by: Yuvraj <code@evalsocket.dev>

* added github checkout depth to 2

Signed-off-by: Yuvraj <code@evalsocket.dev>
austin362667 pushed a commit to austin362667/flyte that referenced this issue May 7, 2024
* Fix DCO make target

Signed-off-by: Yuvraj <code@evalsocket.dev>

* added github checkout depth to 2

Signed-off-by: Yuvraj <code@evalsocket.dev>
robert-ulbrich-mercedes-benz pushed a commit to robert-ulbrich-mercedes-benz/flyte that referenced this issue Jul 2, 2024
* Fix DCO make target

Signed-off-by: Yuvraj <code@evalsocket.dev>

* added github checkout depth to 2

Signed-off-by: Yuvraj <code@evalsocket.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working propeller Issues related to flyte propeller
Projects
None yet
Development

No branches or pull requests

1 participant