converged-computing / oras-csi

ORAS (OCI registry as storage) container storage interface
https://converged-computing.github.io/oras-csi/#/
MIT License
14 stars 3 forks source link
container-storage-interface csi kubernetes oci oras

CSI ORAS Driver

This repository is a test to create a CSI driver into one that uses ORAS to generate a cluster-level cache of artifacts. Read about the use cases or jump in!

    ██████╗ ██████╗  █████╗ ███████╗       ██████╗███████╗██╗
    ██╔═══██╗██╔══██╗██╔══██╗██╔════╝      ██╔════╝██╔════╝██║
    ██║   ██║██████╔╝███████║███████╗█████╗██║     ███████╗██║
    ██║   ██║██╔══██╗██╔══██║╚════██║╚════╝██║     ╚════██║██║
    ╚██████╔╝██║  ██║██║  ██║███████║      ╚██████╗███████║██║
     ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝╚══════╝       ╚═════╝╚══════╝╚═╝

Background

A CSI or "Container storage interface" is a standard plugin that we can instantiate to make it easy for others to use it in their Kubernetes clusters. At least, this is my current level of understanding. What I want to get working is an emphemeral, inline plugin that sits alongside a node and can keep a local cache of artifacts (e.g., containers or data) to be used between different pod runs (e.g., an indexed job).

For documentation, see our early docs folder.

TODO

Planning

These are ideas / features that would be nice to have:

This is a pretty good start for a quick prototype!

Thanks

I looked at a lot of examples to figure out the basic architecture I wanted to use. Here are the ones that I liked the design for:

License

HPCIC DevTools is distributed under the terms of the MIT license. All new contributions must be made under this license.

See LICENSE, COPYRIGHT, and NOTICE for details.

SPDX-License-Identifier: (MIT)

LLNL-CODE- 842614