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

Add artifacts proposal #60

Merged
merged 4 commits into from
Aug 21, 2019
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions proposals/artifacts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# OCI artifact project proposal
SteveLasker marked this conversation as resolved.
Show resolved Hide resolved

## Abstract
Container registries, implementing the [distribution-spec][distribution-spec], provide reliable, highly scalable, secured storage services for container images. Customers either use a cloud provider implementation, vendor implementations, or instance the open source implementation of distribution. They configure security and networking to assure the images in the registry are locked down and accessible by the resources required. Cloud providers and vendors often provide additional values atop their registry implementations from security to productivity features.
SteveLasker marked this conversation as resolved.
Show resolved Hide resolved
SteveLasker marked this conversation as resolved.
Show resolved Hide resolved

Applications and services typically require additional artifacts to deploy and manage, including [helm](https://helm.sh) for deployment and [Open Policy Agent (OPA)](https://github.com/open-policy-agent/opa/issues/1413) for policy enforcement.
SteveLasker marked this conversation as resolved.
Show resolved Hide resolved

Utilizing the [manifest][image-manifest] and [index][image-index] definitions, new artifacts can be stored and served using the [distribution-spec][distribution-spec] without changing the actual distribution spec. This repository will provide a reference for artifact authors and registry implementors for supporting new artifact types with the existing implementations of distribution.
SteveLasker marked this conversation as resolved.
Show resolved Hide resolved

By providing an OCI artifact definition, the community can continue to innovate, focusing on new artifact types without having to build yet another storage solution (YASS).
SteveLasker marked this conversation as resolved.
Show resolved Hide resolved

## Proposal
Under the http://github.com/opencontainers organization:

- Create a new **artifacts** repository, named http://github.com/opencontainers/artifacts
- Update [distribution][distribution-spec] to generically reference [manifest][image-manifest] and [index][image-index], with image as one of many artifact types it can store.
SteveLasker marked this conversation as resolved.
Show resolved Hide resolved
SteveLasker marked this conversation as resolved.
Show resolved Hide resolved

## Contents

The repository will serve 2 primary goals:

1. **artifact authors** - guidance for authoring new artifact types. Including a clearing house for well known artifact types.
1. **registry operators and vendors** - guidance for how operators and vendors can support new artifact types, including how they can opt-in or out of well known artifact types. Registry operators that already implement `media-type` filtering will not have to change. The artifact repo will provide context on how new `media-type`s can be used, and how `media-type`s can be associated with a type of artifact.

### Initial Maintainers
Initial maintainers of the artifacts project would be :
* Steve Lasker <steve.lasker@microsoft.com> (@stevelasker)
* Derek McGowan <derek.mcgowan@docker.com> @derekmcgowan
* Mike Brown <brownwm@us.ibm.com> @mikebrow

### Code of Conduct
This project would incorporate (by reference) the OCI [Code of Conduct][code-of-conduct].

### Governance and Releases
This project would incorporate the Governance and Releases processes from the OCI project template: https://github.com/opencontainers/project-template.
SteveLasker marked this conversation as resolved.
Show resolved Hide resolved

### Project Communications
Both of the proposed projects would continue to use existing channels in use by the OCI developer community for communication including:
SteveLasker marked this conversation as resolved.
Show resolved Hide resolved
* GitHub for issues and pull requests
* The dev@opencontainers.org email list
* The weekly OCI developer community conference call
* The #OpenContainers IRC channel

### Versioning / Roadmap
SteveLasker marked this conversation as resolved.
Show resolved Hide resolved
This repository will not be versioned, but will be continuously updated with a list of versioned types with historical references. This repository will not have releases.

Artifacts will reference specific [distribution][distribution-spec], [index][image-index] and [manifest][image-manifest] versions in its examples and references for capabilities.

## Frequently Asked Questions (FAQ)

**Q: Does this change the OCI Charter or Scope Table?**

A: No. Artifacts are a prescriptive means of storing [index][image-index] and [manifest][image-manifest] within [distribution][distribution-spec] implementations.
SteveLasker marked this conversation as resolved.
Show resolved Hide resolved

[distribution-spec]: https://github.com/opencontainers/distribution-spec/
[code-of-conduct]: https://github.com/opencontainers/org/blob/master/CODE_OF_CONDUCT.md
[image-manifest]: https://github.com/opencontainers/image-spec/blob/master/manifest.md
[image-index]: https://github.com/opencontainers/image-spec/blob/master/image-index.md