OCM Controllers

Caution

This project is in early development and not yet ready for production use.

The OCM controllers

  • support the deployment of an OCM component and its resources, like Helm charts or other manifests, into a Kubernetes cluster with the help of kro and a deployer, e.g. FluxCD.

Before You Begin

You should be familiar with the following concepts:

Architecture

The primary purpose of OCM Controllers is simple: Deploy an OCM resource from an OCM component version into a Kubernetes cluster.

The diagram below provides an overview of the architecture of the OCM Controllers.

Artifact Storage
Artifact Storage
GitOps Sources
GitOps Sources
Cluster Administrator
Cluster Administrator
Kubernetes Cluster
Kubernetes Cluster


















3rd Party Deployers
3rd Party Deployers...
GitOps 
Deployer
GitOps...
API Server
















OCM Controller
OCM Controller...
Repository ControllerComponent ControllerResource ControllerDeployerControllerRComponent Descriptor Resolution And Verification Service
Component Descriptor Cache (In-Memory)
Component Descriptor Cache (In-Memory)
OCM Repositories
OCM Repositories
OCI RegistryRRFluxKROArgoCDR
Poll 
Descriptors
Poll...
OCI RegistryHelmRepository
 
Verify And 
Fetch
Resources
...
RRR
Health
Check
Health...
RR
Watch /
CRUD
API Objects
Watch /...
API Objects
API Objects
Repository
Repository
Resource
Resource
RBAC
RBAC
Deployment
Deployment
RR
Watch /
CRUD
API Objects
Watch /...
Push API 
Objects To 
GitOps
Push API...
Component
Component
Deployer
Deployer
Watch /
CRUD
API Objects
Watch /...
Poll API Objects
Poll API O...
Text is not SVG - cannot display

Installation

Currently, the OCM controllers are available as image and Kustomization. A Helm chart is planned for the future.

To install the OCM controllers into your running Kubernetes cluster, you can use the following commands:

# In the open-component-model repository, folder kubernetes/controller
task deploy

or

kubectl apply -k https://github.com/open-component-model/open-component-model/kubernetes/controller/config/default?ref=main

Deployer tools

While the OCM controllers technically can be used standalone, it requires kro and a deployer, e.g. FluxCD, to deploy an OCM resource into a Kubernetes cluster. The OCM controllers deployment, however, does not contain kro or any deployer. Please refer to the respective installation guides for these tools:

Getting Started