cnabio/cnab-spec

Cloud Native Application Bundle Specification

Shell

972

447 commits

updated Sep 9, 2022

See the code

See what people are saying

SourceMessageScoreDate

I agree that "apps" and deploying to the cluster is the hard part. Helm is definitely the most popular choice, but there are others. kpt: https://github.com/GoogleContainerTools/kpt kapp: https://carvel.dev/kapp/ cnab: https://cnab.io There are many (many) more. But these are somewhat popular…

on Tools to Run Kubernetes Locally

0

Aug 6, 2021

I'm closely tracking an effort by Microsoft that aims to do a lot of what you're describing since I find myself bridging between these tools and deploying stacks that span tools and roles. [CNAB](https://cnab.io/) and the front-running implementation, [Porter](https://porter.sh/), enable one-step…

on Terraform 1.0

0

Jun 9, 2021

CNAB[0] gives you the kubernetes app package, and can push that and the underlying images to a container repo. [0] https://cnab.io/

on Waypoint: Build, deploy, and release applications across any platform

0

Oct 15, 2020

Cloud Native Application Bundle

1

Jul 2, 2020

I'm not familiar with Adapt before this post, but in general, yeah, a componentized backend is a very popular approach, particularly on Kubernetes, e.g., with tools like Jsonnet, Kustomize, Helm (umbrella) charts. "Next gen" alternatives to Terraform like Pulumi also take a different approach to…

on A Simple Way to Setup/Build/Deploy React App and API on GKE/Kubernetes

0

Jan 22, 2020

Cloud Native Application Bundle

4

Sep 15, 2019

Context: https://cnab.io

on Binctr: Static, unprivileged, self-contained containers as executable binaries

0

Dec 23, 2018

https://cnab.io/

on DigitalOcean launches its container service

0

Dec 11, 2018

A spec for packaging distributed apps

2

Dec 5, 2018

Gabe from Microsoft here. Happy to answer any questions. A few links to help you explore the spec and tooling: - https://cnab.io - https://duffle.sh/ - https://open.microsoft.com/2018/12/04/announcing-cnab-cloud-...

on Microsoft and Docker team up to make packaging cloud-native applications easier

0

Dec 4, 2018

README

Cloud Native Application Bundle Specifications

Abstract

Cloud Native Application Bundles (CNAB) are a package format specification that describes a technology for bundling, installing, and managing distributed applications, that are by design, cloud agnostic.

CNAB Core 1.2.0 (Final)

The CNAB Working Group with the joint approval of the Executive Directors has approved the CNAB Core 1.2.0 specification for publication. CNAB Core 1.2.0 is complete.

For more information on the approval process, see the process documentation. Further changes to CNAB Core will be considered for CNAB Core 1.3.

Branch/Tag Structure

Table of Contents

Contributing

The specification is licensed under OWF Contributor License Agreement 1.0 - Copyright and Patent in the LICENSE file.

Communications

Meetings

Slack Channel

#cnab Slack channel for related discussion in CNCF's Slack workspace.

Mailing List

We operate a mailing list via the Joint Development Foundation.

Versioned Schema URLs

CNAB Spec schema defined in this repo (under /schema) will be hosted for all tagged versions. This way, implementations can require specific schema versions for validation and assert compatibility with the corresponding versions.

Note that some tagged versions don't directly map to official schema versions. For instance, a Git SHA may be appended if the spec is still in a Draft state, e.g. cnab-claim-1.0.0-DRAFT+abc1234. Again, this facilitates the ability for implementations to pin to a certain tag whilst a spec is under heavy development with many breaking changes.

The schema files are hosted via https://cnab.io/schema/<VERSION>/<SCHEMA>.schema.json, e.g. https://cnab.io/schema/cnab-core-1.0/bundle.schema.json

Notational Conventions

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in RFC 2119.

The key words "unspecified", "undefined", and "implementation-defined" are to be interpreted as described in the rationale for the C99 standard.

An implementation IS compliant if it satisfies all the MUST, REQUIRED, and SHALL requirements.

An implementation IS NOT compliant if it fails to satisfy one or more of the MUST, REQUIRED, or SHALL requirements.

Document Naming Conventions

  • The CNAB Core specification is contained in the 1xx documents.
  • The CNAB Registry specification is contained in the 2xx documents.
  • The CNAB Security specification reserves 3xx level documents.
  • The Claims specification reserves 4xx documents.
  • The CNAB Dependencies specification uses 5xx documents.
  • The 8xx-level documents are reserved for non-normative guidance.
  • The 9xx-level documents are reserved for process documents.

The top-level description of each specification is found in the x00 sections (e.g. 100 is the top of the CNAB Core specification, while 200 is the top of the CNAB Registry specification). Specifications may be broken down into subsections, which are numbered incrementally according to their section. Thus, the CNAB Core specification has a 100 (top-level) with four subsections (101, 102, 103, and 104). The 8XX section is entirely composed of non-normative documents, and each 8XX document stands alone.

cnabio/cnab-spec

Cloud Native Application Bundle Specification

Shell

972

447 commits

updated Sep 9, 2022

See the code

See what people are saying

SourceMessageScoreDate

I agree that "apps" and deploying to the cluster is the hard part. Helm is definitely the most popular choice, but there are others. kpt: https://github.com/GoogleContainerTools/kpt kapp: https://carvel.dev/kapp/ cnab: https://cnab.io There are many (many) more. But these are somewhat popular…

on Tools to Run Kubernetes Locally

0

Aug 6, 2021

I'm closely tracking an effort by Microsoft that aims to do a lot of what you're describing since I find myself bridging between these tools and deploying stacks that span tools and roles. [CNAB](https://cnab.io/) and the front-running implementation, [Porter](https://porter.sh/), enable one-step…

on Terraform 1.0

0

Jun 9, 2021

CNAB[0] gives you the kubernetes app package, and can push that and the underlying images to a container repo. [0] https://cnab.io/

on Waypoint: Build, deploy, and release applications across any platform

0

Oct 15, 2020

Cloud Native Application Bundle

1

Jul 2, 2020

I'm not familiar with Adapt before this post, but in general, yeah, a componentized backend is a very popular approach, particularly on Kubernetes, e.g., with tools like Jsonnet, Kustomize, Helm (umbrella) charts. "Next gen" alternatives to Terraform like Pulumi also take a different approach to…

on A Simple Way to Setup/Build/Deploy React App and API on GKE/Kubernetes

0

Jan 22, 2020

Cloud Native Application Bundle

4

Sep 15, 2019

Context: https://cnab.io

on Binctr: Static, unprivileged, self-contained containers as executable binaries

0

Dec 23, 2018

https://cnab.io/

on DigitalOcean launches its container service

0

Dec 11, 2018

A spec for packaging distributed apps

2

Dec 5, 2018

Gabe from Microsoft here. Happy to answer any questions. A few links to help you explore the spec and tooling: - https://cnab.io - https://duffle.sh/ - https://open.microsoft.com/2018/12/04/announcing-cnab-cloud-...

on Microsoft and Docker team up to make packaging cloud-native applications easier

0

Dec 4, 2018

README

Cloud Native Application Bundle Specifications

Abstract

Cloud Native Application Bundles (CNAB) are a package format specification that describes a technology for bundling, installing, and managing distributed applications, that are by design, cloud agnostic.

CNAB Core 1.2.0 (Final)

The CNAB Working Group with the joint approval of the Executive Directors has approved the CNAB Core 1.2.0 specification for publication. CNAB Core 1.2.0 is complete.

For more information on the approval process, see the process documentation. Further changes to CNAB Core will be considered for CNAB Core 1.3.

Branch/Tag Structure

Table of Contents

Contributing

The specification is licensed under OWF Contributor License Agreement 1.0 - Copyright and Patent in the LICENSE file.

Communications

Meetings

Slack Channel

#cnab Slack channel for related discussion in CNCF's Slack workspace.

Mailing List

We operate a mailing list via the Joint Development Foundation.

Versioned Schema URLs

CNAB Spec schema defined in this repo (under /schema) will be hosted for all tagged versions. This way, implementations can require specific schema versions for validation and assert compatibility with the corresponding versions.

Note that some tagged versions don't directly map to official schema versions. For instance, a Git SHA may be appended if the spec is still in a Draft state, e.g. cnab-claim-1.0.0-DRAFT+abc1234. Again, this facilitates the ability for implementations to pin to a certain tag whilst a spec is under heavy development with many breaking changes.

The schema files are hosted via https://cnab.io/schema/<VERSION>/<SCHEMA>.schema.json, e.g. https://cnab.io/schema/cnab-core-1.0/bundle.schema.json

Notational Conventions

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in RFC 2119.

The key words "unspecified", "undefined", and "implementation-defined" are to be interpreted as described in the rationale for the C99 standard.

An implementation IS compliant if it satisfies all the MUST, REQUIRED, and SHALL requirements.

An implementation IS NOT compliant if it fails to satisfy one or more of the MUST, REQUIRED, or SHALL requirements.

Document Naming Conventions

  • The CNAB Core specification is contained in the 1xx documents.
  • The CNAB Registry specification is contained in the 2xx documents.
  • The CNAB Security specification reserves 3xx level documents.
  • The Claims specification reserves 4xx documents.
  • The CNAB Dependencies specification uses 5xx documents.
  • The 8xx-level documents are reserved for non-normative guidance.
  • The 9xx-level documents are reserved for process documents.

The top-level description of each specification is found in the x00 sections (e.g. 100 is the top of the CNAB Core specification, while 200 is the top of the CNAB Registry specification). Specifications may be broken down into subsections, which are numbered incrementally according to their section. Thus, the CNAB Core specification has a 100 (top-level) with four subsections (101, 102, 103, and 104). The 8XX section is entirely composed of non-normative documents, and each 8XX document stands alone.

Project health

Overall

3.6/10

Maintained

0/10

Code review

10/10
OpenSSF Scorecard

Significant stargazers

Stephen

108 followers · starred Aug 2019

Sambhav Kothari

375 followers · starred Aug 2023

Romain Marcadier

139 followers · starred Dec 2018

Marques Johansson

202 followers · starred Dec 2018