Skip to content
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

Document more about intention/motivation vs. CNAB #84

Open
cbrunnkvist opened this issue Jan 24, 2022 · 1 comment
Open

Document more about intention/motivation vs. CNAB #84

cbrunnkvist opened this issue Jan 24, 2022 · 1 comment

Comments

@cbrunnkvist
Copy link

Just discovering this tool, one of the first things I'm struck by is that it mentions several times that it was inspired by something called CNAB. But it doesn't seem to explain why, or why one would choose one over the other?

@glyn
Copy link
Collaborator

glyn commented Jan 28, 2022

How was sheaf inspired by CNAB?

Both sheaf and CNAB provide a packaging format for a collection, or bundle, of docker/OCI images and the means to install and optionally relocate these images.

Why was sheaf created?

sheaf was designed for packaging Kubernetes applications, whereas CNAB is a general standard for packaging software for various platforms, including Kubernetes.

A CNAB bundle declares an invocation image which is executed to perform various operations on the bundle including installation. This approach of executing "application" code during installation, etc. has security risks, analogous to those of ActiveX. A sheaf bundle on the other hand is purely declarative and avoids needing to run "application" code during installation, etc.

When would you choose CNAB?

CNAB is a standard, so a CNAB bundle can be processed by any CNAB implementation. CNAB is not Kubernetes specific and can be used to package software for multiple platforms. CNAB also has a number of features over and above those of sheaf.

When would you choose sheaf?

sheaf is specific to Kubernetes and is designed to work well with Kubernetes. It avoids the security risks associated with an invocation image. sheaf is a small tool and could easily be extended and/or adapted for specific use cases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants