MatrixAI / Emergence

Distributed Infrastructure Orchestration
Apache License 2.0
1 stars 0 forks source link

Investigate whether it is needed to implement our own Artifact spec #22

Open mokuki082 opened 6 years ago

mokuki082 commented 6 years ago

I'm pretty sure RUNC has a OCI runtime parser which parses the OCI runtime configuration. However we need to investigate whether it is feasible to bind into the gocode since we might be modifying layers and (maybe) other attributes.

CMCDragonkai commented 6 years ago

For reference for binding into go code from haskell see: https://sakshamsharma.com/2018/02/haskell-golang-ffi/

Can you also list down the OCI projects that we may either use (bind into) or rebuild from scratch (especially if they are simple and more easier to build). Note that binding faces impedance mismatch and performance issues, whereas rebuilding suffers from extra work. It depends on the complexity. If it's something like opencv, we bind, but something like read in the images and parse and understand and manipulate container images via image layers or calling into underlying filesystem, that is something we should rebuild.

Also see: https://github.com/ifesdjeen/haskell-ffi-tutorial

CMCDragonkai commented 6 years ago

Example of someone else (Oracle) building their own runtime based on the runtime spec: https://github.com/oracle/railcar

CMCDragonkai commented 6 years ago

I think the https://github.com/opencontainers/image-spec image spec is fairly easy for there to be a native haskell implementation to deal with.

CMCDragonkai commented 6 years ago

@mokuki082 You can start writing the code here first in this repo (in a sub directory), and later we can decompose it.