Cloud 6 min read

Open Component Model Explained: Software Bill of Delivery

What the Open Component Model (OCM) is and when to use it: signed deliveries, CTF transport into air-gapped environments, and how it differs from an SBOM.

Open Component Model Explained: Software Bill of Delivery

Open Component Model Explained: Software Bill of Delivery

The Open Component Model (OCM) is an open standard answering a surprisingly mundane question: what exactly belongs to a software delivery? Not to the source code, not to a single container image, but to the complete delivery of a product across environment boundaries. OCM aptly calls this a “Software Bill of Delivery”. Where an SBOM describes what an artifact is made of, OCM describes which artifacts ship together, where they live and how to verify their integrity. This article explains the model, its tooling and the scenarios where it earns its keep.

The problem: a delivery is more than an image

A real product release is a bundle: several container images, Helm charts, configuration files, perhaps binaries and documentation. This bundle travels through stations, from the build environment via internal registries to the customer environment, which in regulated industries is often fully disconnected from the internet. At the latest when transporting into an air-gapped environment, the usual approach of “we just reference registry URLs” falls apart: the source system’s URLs are worthless on the other side, while digests and signatures still have to survive the journey untouched.

This is where OCM starts. A component descriptor describes a component version with its resources (images, charts, files), its sources and its references to further components. The format is technology-agnostic and machine-readable; a shortened example:

meta:
  schemaVersion: v2
component:
  name: acme.org/billing
  version: 2.4.1
  provider: acme
  resources:
    - name: billing-image
      type: ociImage
      version: 2.4.1
      access:
        type: ociArtifact
        imageReference: ghcr.io/acme/billing:2.4.1
      digest:
        hashAlgorithm: SHA-256
        value: 8a1f...
  componentReferences:
    - name: payment-gateway
      componentName: acme.org/payment-gateway
      version: 1.9.0

The crucial trick sits in the access block: it separates an artifact’s identity from its storage location. When transporting into another environment, the OCM tooling rewrites the access information (by value instead of by reference) while digests and signatures stay stable. The component remains the same; only its location changes.

Sign, transport, verify

To move descriptors and artifacts together, OCM defines the Common Transport Format (CTF), a file-based layout as a directory, .tar or .tgz. A complete delivery becomes a file you can write to a medium and import into an OCI registry on the far side. The CLI flow is deliberately unspectacular:

ocm transfer componentversion ghcr.io/acme//acme.org/billing:2.4.1 ./delivery.ctf
ocm sign componentversion --signature acme-release ./delivery.ctf
ocm verify componentversion --signature acme-release ./delivery.ctf

Signatures cover the component graph including artifact digests. The recipient verifies against the public key and then knows that neither descriptor nor referenced artifacts were modified in transit. For Kubernetes environments the project additionally ships the OCM K8s Toolkit, an operator that makes component versions available in-cluster and, combined with Flux or kro, forms a complete deployment chain, including configuration and localization of image references at deploy time.

Who is behind it and why that matters

OCM was initiated by SAP, which uses it internally to deliver large product estates, and is developed today as an open source project under Apache-2.0, embedded in the NeoNephos Foundation under the umbrella of Linux Foundation Europe and funded within the European sovereignty program ApeiroRA. The specification, a Go library, the CLI and the Kubernetes operator are public, documented at ocm.software.

That origin explains the design focus: OCM is built for scenarios where software has to move across environment and organizational boundaries in a controlled way. It fits a period in which many European companies are re-evaluating their dependencies; verifiable, signed delivery chains are the operational side of digital sovereignty, a topic we covered in our sovereign cloud article.

When OCM is the right choice, and when not

To be honest about it: if you deploy a single SaaS product from one pipeline into your own cloud, you do not need OCM. The standard pays off when at least one of three patterns applies. First, delivery to third parties, such as customers deploying on-premises or into their own clouds. Second, air-gapped or heavily regulated target environments where transport by medium and signature verification are mandatory. Third, product portfolios made of many components with independent release cycles, whose per-release composition must be documented and verifiable.

Towards the SBOM, OCM is complementary rather than competing: SBOMs describe the contents of individual artifacts and travel inside OCM deliveries as resources. How such nested structures work on the SPDX level is covered in our deep dive on cascading SPDX documents.

Conclusion

OCM closes a gap previously served only by homegrown solutions: an open, signable, transportable standard for the question of what ships together. For product deliveries to customers, regulated environments and air-gapped scenarios the model deserves a serious look, especially since tooling and governance are open. If you want to move your delivery pipeline to signed, traceable deliveries, we support you from architecture to implementation: cloud and infrastructure at EverBright.

Frequently Asked Questions

What is the Open Component Model?

The Open Component Model is an open, technology-agnostic standard for describing software deliveries, a Software Bill of Delivery. Component descriptors capture the artifacts, sources and references of a component version in machine-readable form, including signatures and digests. Initiated by SAP, OCM is developed openly today under the NeoNephos Foundation.

What is the difference between an SBOM and OCM?

An SBOM describes what a single artifact is made of, for example which packages live inside a container image. OCM describes which artifacts together form a delivery, where they are stored and how to verify their integrity. The two complement each other: SBOMs travel as resources inside OCM deliveries.

What is the Common Transport Format (CTF) for?

CTF is OCM’s file-based format that captures a complete delivery, descriptors plus artifacts, as a directory, tar or tgz archive. It enables transporting deliveries without a network connection, for example into air-gapped environments, and importing them into an OCI registry on the target side.

Who benefits from adopting OCM?

OCM benefits vendors delivering software to customers with their own environments, regulated and air-gapped scenarios with mandatory signature verification, and product portfolios composed of many independently versioned components. For simple SaaS deployments from one pipeline into your own cloud it is usually overhead.

#Open Component Model #OCM #Software Delivery #Air-Gapped #Digital Sovereignty
Share:
Sergej Bardin

Sergej Bardin

CEO · AI Strategy & IT Consulting

Helping mid-sized companies adopt AI and shape their cloud strategy. Focus on practical decisions over hype.

AI StrategyMCPRAGMulti-CloudIT ConsultingMid-Market