Add managed SageMaker job connectors - #3456
Open
rohitrsh wants to merge 1 commit into
Open
Conversation
rohitrsh
requested review from
cosmicBboy,
davidmirror-ops,
kumare3,
machichima,
pingsutw,
samhita-alla and
wild-endeavor
as code owners
August 4, 2026 10:23
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #3456 +/- ##
==========================================
+ Coverage 81.95% 83.58% +1.63%
==========================================
Files 217 3 -214
Lines 22943 195 -22748
Branches 3036 0 -3036
==========================================
- Hits 18804 163 -18641
+ Misses 3248 32 -3216
+ Partials 891 0 -891 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Contributor
Author
|
CI is green for the SageMaker plugin and all other jobs. The only failure is the unrelated |
Expand the existing SageMaker plugin with async lifecycle support for training, processing, batch transform, hyperparameter tuning, and Inference Recommender jobs. Include typed task wrappers, stable projected outputs, idempotent retries, public documentation, and comprehensive unit tests without requiring Propeller changes. Signed-off-by: Rohit Sharma <rohitrsh@gmail.com>
rohitrsh
force-pushed
the
feat/sagemaker-managed-jobs
branch
from
August 4, 2026 12:09
ce5cbe9 to
7f9c534
Compare
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Expand
flytekitplugins-awssagemakerbeyond deployment and endpoint management with first-class async connectors for SageMaker managed jobs:Tracks flyteorg/flyte#7767.
Design
Each task follows Flyte's standard async connector lifecycle:
create()submits the corresponding SageMaker jobget()polls the describe API and maps service states to Flyte phasesdelete()stops the job and tolerates already-terminal or missing resourcesThe tasks reuse the plugin's existing boto3 templating for
{inputs.X},{images.X}, and{idempotence_token}. Successful describe responses are projected into stable result dictionaries so workflows can pass model artifacts, processing destinations, tuning results, recommendations, and transform output locations downstream without re-querying SageMaker.The shared boto3 mixin now normalizes whole-number floats before request hashing/calls and preserves semantically significant list order. Duplicate-job recovery is only enabled when Flyte generated an idempotence token; quota and authorization failures remain visible to users.
No FlytePropeller changes are required. Each connector self-registers through the existing
flytekit.pluginsentry-point mechanism.Package layout
The existing plugin gains five public subpackages:
flytekitplugins.awssagemaker_trainingflytekitplugins.awssagemaker_processingflytekitplugins.awssagemaker_batch_transformflytekitplugins.awssagemaker_hyperparameter_tuningflytekitplugins.awssagemaker_inference_recommenderEach package contains its task surface, async connector, lifecycle metadata, and synchronous stop/describe helpers. The README documents configuration and composition patterns.
Test plan
Follow-up
Flyte-native Pythonic execution for Training and Processing is intentionally excluded. That follow-up will run a regular
@taskfunction body inside the SageMaker container viaContainerEntrypointand handle Flyteinputs.pb/outputs.pb/error.pb. Keeping it separate allows the conventional boto3/config connector surface to be reviewed independently./cc @samhita-alla @machichima @kumare3 @pingsutw