-
Notifications
You must be signed in to change notification settings - Fork 0
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
EPIC: Prototype an OCM Download / Upload flow via Plugins #360
Comments
Heh. I contributed an extensive documentation to that thing. :D It's super nice, but we should be aware of the TCP / GRPC limitation. It's relying on local networking so VERY LARGE transfers might be a bit of a burdon there. But we'll have to try and play around with it. :) |
Preemptive Flow considering these plugins: sequenceDiagram
actor User
participant ocm
participant plugin(CTF)
participant plugin(OCI)
participant plugin-registry
User->>ocm: Transfer Component Versions From CTF to OCI
rect rgba(100,50,100,0.5)
critical Plugin Discovery
Note right of ocm: Decode Request to determine necessary OCM Repository Types
loop Every Needed OCM Repository Type (OCI, CTF)
ocm->>plugin(CTF): Discover via Filesystem
break Unavailable on Filesystem
ocm<<->>plugin-registry: Download Plugin from Registry
end
ocm<<->>plugin(CTF): GetCapabilities
ocm->>plugin(OCI): Discover via Filesystem
break Unavailable on Filesystem
ocm<<->>plugin-registry: Download Plugin from Registry
end
ocm<<->>plugin(OCI): GetCapabilities
end
end
end
rect rgba(50,50,100,0.5)
critical Component Version Discovery
option when more than one source version
ocm<<->>plugin(CTF): ListComponentVersions
option Recursive Resolution of Descriptors
loop Component References
break Discover Repository Type of Component Reference
Note over ocm: This could be any OCM Repository type
ocm<<->>plugin(CTF): ListComponentVersions
end
end
end
end
rect rgba(110,200,0,0.5)
critical Transfer Process
loop Every Discovered Component Version
plugin(CTF)->>ocm: Download Component Descriptor
loop Every Resource in Component Descriptor
plugin(CTF)<<->>ocm: Download Resource and Retrieve File Descriptor
ocm->>plugin(OCI): Upload Resource from File Descriptor and Update Resource Spec
end
ocm->>plugin(OCI): Upload Component Descriptor
end
end
end
ocm-->User: Confirmation of Transfer
|
Individual tasksFabianCreate a Component Descriptor parser ( including the beginning of a plugin registration system ). Use a filepath for now, and throw an error if the plugin is not found. Jakob + GergelyJakobCTF Implementation Gergely
Plugin implementation for CTF -> Talk with Jakob and agree on an API to use. Everyone
LocalBlob discussionEvery Plugin needs to have an implementation for the type
|
User Story: Delivery of a POC that can showcase the interaction of a Downloading and Uploading Plugin that interchange arbitrarily large (multiple gigabytes) of data locally (between two binaries) organized through an orchestrating core binary (this will later be OCM core).
Description:
As an OCM Ecosystem Developer, I want to have an easy to understand but also non-prohibitive way of including new access methods into OCM without having to contribute into the big OCM core.
To kickstart our ADR generation for the Plugin System, we should drive a POC that showcases how we can work with component versions in the future. We want to get rid of a monolithic system that forces people to understand the entirety of the OCM library and as such, the new binary system will kickstart a completely new version of OCM.
This POC should give the baseline of driving the ADR forwards for the new plugin system and should answer the following questions:
Acceptance criteria:
<REPO>//<Component>:<Version>
should still workRelated issues:
The text was updated successfully, but these errors were encountered: