-
Notifications
You must be signed in to change notification settings - Fork 300
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
[flyte deck] Streaming Decks #2779
base: master
Are you sure you want to change the base?
Conversation
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #2779 +/- ##
===========================================
+ Coverage 51.08% 81.52% +30.43%
===========================================
Files 201 201
Lines 21231 21246 +15
Branches 2731 2731
===========================================
+ Hits 10846 17320 +6474
+ Misses 9787 3163 -6624
- Partials 598 763 +165 ☔ View full report in Codecov by Sentry. |
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
I would love to see an example of tqdm |
replaces #1704 |
will try it, just let me ship the MSGPACK IDL first. |
flytekit/deck/deck.py
Outdated
<html lang="en"> | ||
<head> | ||
<meta charset="UTF-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will make it automatically refresh the page.. probably need that on the empty deck but not sure how to do the realtime behavior once it has content (you don't want to refresh while the user is browsing around or clicking through various tabs)
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<meta http-equiv="refresh" content="5" > |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
COOL, will try it, thank you
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Nice, I just would make a small refresh icon in grey next to the name, but all good |
okok, I will change this |
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
@Future-Outlier this is excellent. Let's go |
flytekit/deck/deck.py
Outdated
task_name = FlyteContextManager.current_context().user_space_params.task_id.name | ||
new_user_params = FlyteContextManager.current_context().user_space_params | ||
_output_deck(task_name=task_name, new_user_params=new_user_params) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit
task_name = FlyteContextManager.current_context().user_space_params.task_id.name | |
new_user_params = FlyteContextManager.current_context().user_space_params | |
_output_deck(task_name=task_name, new_user_params=new_user_params) | |
params = FlyteContextManager.current_context().user_space_params | |
task_name = params.task_id.name | |
_output_deck(task_name=task_name, new_user_params=params) |
FYI @fg91 since you also want to use it. would love to get your feedback |
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
I'm a big fan of such a feature - being able to publish realtime updates from a task to flyte console was the topic of various discussions in the past (e.g. this or this): # A very similar API was discussed back then:
deck = flytekit.Deck("Summary", ...)
deck.append(MarkdownRenderer.to_html(f"... {run.link} ..."))
deck.flush() I have one question about the implementation. Does flytepropeller need to detect whenever the deck html in the bucket changed for the change to be reflected in the UI or does propeller only indicate to the task where to upload the deck to but a request from flyteconsole directly "goes to the bucket" without flytepropeller having to do further work? |
I will reply this later, just finished an amazing solution about the backend with backward compatibility. |
old flyte backend: |
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Tracking issue
flyteorg/flyte#5574
Why are the changes needed?
we want to support streaming decks.
What changes were proposed in this pull request?
add a function
publish
for the Flyte Deck.How was this patch tested?
Setup process
single binary.
flyte: flyteorg/flyte#6053
flytekit: #2779
flyteconsole: flyteorg/flyteconsole#890
Screenshots
flytekit: this branch
NEW FLYTEKIT, NO DECK, RUNNING With Deck, SUCCEED, and FAILED
OSS-STREAMING-DECK-small.mov
OLD FLYTEKIT, NO DECK, RUNNING With Deck, SUCCEED, and FAILED
OSS-STREAMING-DECK-OLD-FLYTEKIT-small.mov
Check all the applicable boxes
Related PRs
Docs link