https://github.com/mandelsoft/ocmorig
https://github.com/mandelsoft/ocmorig
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/mandelsoft/ocmorig
- Owner: mandelsoft
- License: apache-2.0
- Created: 2022-01-12T17:22:41.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-10-14T09:20:12.000Z (over 3 years ago)
- Last Synced: 2025-01-31T10:30:46.257Z (over 1 year ago)
- Language: Go
- Size: 15.3 MB
- Stars: 0
- Watchers: 6
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# Open Component Model
The Open Component Model provides a standard for describing delivery [artefacts](https://github.com/gardener/ocm-spec/tree/main/doc/specification/elements#artifacts) that can be accessed from many types of [component repositories](https://github.com/gardener/ocm-spec/tree/main/doc/specification/elements#repositories).
## OCM Specifications
OCM defines a set of semantic, formatting, and other types of specifications that can be found in the [`ocm-spec` repository](https://github.com/gardener/ocm-spec/tree/main/doc/specification). Start learning about the core concepts of OCM elements [here](https://github.com/gardener/ocm-spec/tree/main/doc/specification/elements).
## OCM Library
This project provides a Go library containing an API for interacting with the
[Open Component Model (OCM)](https://github.com/gardener/ocm-spec) elements and mechanisms.
The library currently supports the following [repository mappings](docs/ocm/interoperability.md):
- **OCI**: Use the repository prefix path of an OCI repository to implement an OCM
repository.
- **CTF (Common Transport Format)**: Use a file-based binding to represent any set of
component versions as filesystem content (directory, tar, tgz).
- **Component Archive**: Compose the content of a component version on the
filesystem.
Additionally, OCM provides a generic solution for how to:
- Sign component versions in any supported OCM repository implementation.
- Verify signatures based on public keys or verified certificates.
- Transport component versions, per reference or as values to any of the
repository implementations.
## OCM CLI
The [`ocm` CLI](docs/reference/ocm.md) may also be used to interact with OCM mechanisms. It makes it easy to create component versions and embed them in build processes.
The `ocm` CLI documentation can be found [here]((https://github.com/gardener/ocm/blob/main/docs/reference/ocm.md)).
The code for the CLI can be found in [package `cmds/ocm`](https://github.com/gardener/ocm/blob/main/cmds/ocm).
An example of how to use the `ocm` CLI in a Makefile can be found in [`examples/make`](https://github.com/gardener/ocm/blob/main/examples/make/Makefile).
The OCI and OCM support can be found in packages
[`pkg/contexts/oci`](pkg/contexts/oci) and [`pkg/contexts/ocm`](pkg/contexts/ocm).
## Contributing
Code contributions, feature requests, bug reports, and help requests are very welcome.
OCM follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md).