-
Notifications
You must be signed in to change notification settings - Fork 153
Add Kubeflow Pipeline components for ModelKits #1033
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
base: main
Are you sure you want to change the base?
Conversation
Introduces push-modelkit and unpack-modelkit components to enable integration of KitOps with Kubeflow Pipelines. Signed-off-by: Gorkem Ercan <gorkem.ercan@gmail.com>
Signed-off-by: Gorkem Ercan <gorkem.ercan@gmail.com>
48cfadb to
027db56
Compare
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.
Pull request overview
This PR introduces Kubeflow Pipeline components for KitOps ModelKits, enabling ML practitioners to package and deploy models using KitOps within Kubeflow Pipelines. The implementation provides two core components: push-modelkit for packaging and pushing ML artifacts to OCI registries, and unpack-modelkit for pulling and extracting ModelKits.
Key Changes:
- Added two KFP components (
push-modelkitandunpack-modelkit) with comprehensive BATS test coverage - Included a complete house prices example pipeline demonstrating end-to-end model training and packaging
- Added GitHub Actions workflow for automated testing and multi-platform container builds
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
build/dockerfiles/kubeflow-components/scripts/push-modelkit.sh |
Main script for packing and pushing ModelKits to OCI registries with attestation support |
build/dockerfiles/kubeflow-components/scripts/unpack-modelkit.sh |
Script for unpacking ModelKits from registries to local directories |
build/dockerfiles/kubeflow-components/scripts/lib/common.sh |
Shared utility library providing logging, retry logic, and validation functions |
build/dockerfiles/kubeflow-components/tests/push-modelkit.bats |
Comprehensive BATS tests covering argument validation, packing/pushing, and error handling |
build/dockerfiles/kubeflow-components/tests/unpack-modelkit.bats |
BATS tests for unpacking functionality including edge cases and error scenarios |
build/dockerfiles/kubeflow-components/components/push-modelkit/component.yaml |
KFP component definition for push-modelkit |
build/dockerfiles/kubeflow-components/components/unpack-modelkit/component.yaml |
KFP component definition for unpack-modelkit |
build/dockerfiles/kubeflow-components/examples/house-prices-pipeline.py |
Complete example demonstrating training and packaging with KFP v2 |
build/dockerfiles/kubeflow-components/examples/train-house-prices.yaml |
Standalone training component example |
build/dockerfiles/kubeflow-components/examples/README.md |
Quick start guide for examples |
build/dockerfiles/kubeflow-components/README.md |
Comprehensive documentation covering components, usage patterns, and troubleshooting |
build/dockerfiles/kubeflow-components/Dockerfile |
Multi-platform container image with kit CLI, cosign, and component scripts |
.github/workflows/kubeflow-components-test.yaml |
CI workflow for running BATS tests and validating container builds |
.github/workflows/platform-release.yaml |
Updated to build and publish kubeflow components container on releases |
.github/workflows/next-container-build.yaml |
Updated to build kubeflow components container for next branch |
Comments suppressed due to low confidence (1)
build/dockerfiles/kubeflow-components/examples/house-prices-pipeline.py:12
- Import of 'NamedTuple' is not used.
from typing import NamedTuple
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
build/dockerfiles/kubeflow-components/examples/house-prices-pipeline.py
Outdated
Show resolved
Hide resolved
build/dockerfiles/kubeflow-components/components/push-modelkit/component.yaml
Outdated
Show resolved
Hide resolved
build/dockerfiles/kubeflow-components/examples/house-prices-pipeline.py
Outdated
Show resolved
Hide resolved
build/dockerfiles/kubeflow-components/examples/house-prices-pipeline.py
Outdated
Show resolved
Hide resolved
build/dockerfiles/kubeflow-components/examples/house-prices-pipeline.py
Outdated
Show resolved
Hide resolved
c965893 to
1dab689
Compare
Signed-off-by: Gorkem Ercan <gorkem.ercan@gmail.com>
1dab689 to
4844d97
Compare
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.
Pull request overview
Copilot reviewed 15 out of 15 changed files in this pull request and generated 23 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
5ae1119 to
33ff346
Compare
Includes InferenceService manifest demonstrating kit:// URI integration with KServe for deploying ModelKits. Signed-off-by: Gorkem Ercan <gorkem.ercan@gmail.com>
33ff346 to
d2300ff
Compare
build/dockerfiles/kubeflow-components/components/push-modelkit/component.yaml
Outdated
Show resolved
Hide resolved
build/dockerfiles/kubeflow-components/components/push-modelkit/component.yaml
Show resolved
Hide resolved
build/dockerfiles/kubeflow-components/components/unpack-modelkit/component.yaml
Outdated
Show resolved
Hide resolved
be39aa3 to
9cbb72e
Compare
Update component inputs, outputs, and scripts to use reference instead of uri for OCI alignment. Also remove redundant CI triggers and dependencies. Signed-off-by: Gorkem Ercan <gorkem.ercan@gmail.com>
9cbb72e to
f1da0a8
Compare
Introduces push-modelkit and unpack-modelkit components to enable integration of KitOps with Kubeflow Pipelines.