kyma-project / lifecycle-manager

Controller that manages the lifecycle of Kyma Modules in your cluster.
http://kyma-project.io
Apache License 2.0
10 stars 30 forks source link

Use OCM as software bills of delivery (SBOD) for KCP components and Kyma modules #1588

Open ruanxin opened 4 months ago

ruanxin commented 4 months ago

Created on 2024-05-28 by Xin Ruan (@ruanxin)

Decision log

Name Description
Title Use OCM as software bills of delivery (SBOD) for KCP components
Due date 2024-06-30
Status Proposed on 2024-05-28
Decision type Binary
Affected decisions https://github.com/kyma-project/lifecycle-manager/issues/1587, https://github.com/kyma-project/lifecycle-manager/issues/1605

Context

To ensure efficient deployment of all Kyma Control Plane (KCP) components and Kyma modules across multiple KCP landscapes, we will adopt the Open Component Model (OCM) as the standard for describing these components. This standardization will facilitate consistent delivery and management of software bills of delivery (SBOD) for KCP components.

Decision:

All KCP components and Kyma modules will be represented and published as OCM components, which can be referenced using an aggregated OCM component.

OCM components:

image
OCM component name Definition
kyma-project.io/kcp Represents a deliverable SBOD that references all KCP components and Kyma modules.
kyma-project.io/module/* Represent kyma module, same as the current full qualified domain name of Kyma module (* means Kyma module short name), the detailed definition can be found in this decision record https://github.com/kyma-project/lifecycle-manager/issues/1587
kyma-project.io/kcp/* Represent kcp component, e.g: lifecycle manager will be kyma-project.io/kcp/klm, the detailed definition can be found in this decision record https://github.com/kyma-project/lifecycle-manager/issues/1605

Channel as OCM extra Identity to Kyma Module OCM component

For Kyma modules released in specific channels, an extra identity channel will be introduced, containing the expected channel as its value.

Example

In the following example, it has kyma-project.io/kcp with version 1.6.0 published in OCI registry ghcr.io/ruanxin/kcp-source. It includes various Kyma modules and KCP components(not a complete list).

Consequences:

pbochynski commented 3 months ago

lgtm