The OCT project aims to promote the Open Container Initiative by providing a universal open container testing libs
or tools
.
Following the OCI Principles:
Define a unit of software delivery called a Standard Container.
The goal of a Standard Container is to encapsulate a software component
and all its dependencies in a format that is self-describing and portable,
so that any compliant runtime can run it without extra dependencies,
regardless of the underlying machine and the contents of the container.
OCT covers following areas:
- Bundle Validator verifies if a bundle was a Standard Container.
- Runtime Validator verifies if a runtime runs the bundle correctly.
To make OCT easier, more tools are required:
- OCI builder - build a native OCI bundle
- OCI generator - generate a minimal config.json/runtime.json
- OCI convert - convert from other images, like rkt.
###Standard Container A standard container should be a bundle with one standard 'config.json', one standard 'runtime.json' and one standard 'rootfs'.
###Compliant Runtime
A compliant runtime should be the one which could run a standard container correctly
, either runs directly
or indirectly
.
Correctly
means running by a runtime, all the mounts, uid, and other informations should be exactly same with what defined in config.json/runtime.json.
Directly
means a runtime could run a standard container without any extra action, just like 'runC'.
Indirectly
means a runtime(runX) could not run a standard container directly. RunX needs to get a runX-bundle converted from an oci-bundle first and then runs runX-bundle. Conversion tools
####Conversion tools One implementaion of converting from OCI to ACI is hosted at: oci2aci
- Fork the repository on GitHub
- Read the 'build and test instruction' for Bundle Validator and Runtime Validator
- Play with the project, submit bugs, submit patches!
If any issues are encountered while using the oct project, several avenues are available for support:
Issue Tracker | https://github.com/huawei-openlab/oct/issues |
---|---|
Google Groups | https://groups.google.com/forum/#!forum/oci-testing |
- Open Container project developer/user
The engine
part is now moved to oct-engine
The cases
part is now moved to oct-engine/cases