Caution
This project is in early development and not yet ready for production use.
The OCM Kubernetes Controller Toolkit
- supports 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 or ArgoCD.
- provides a controller to transfer OCM components.
You should be familiar with the following concepts:
- Open Component Model
- Kubernetes ecosystem
- kro
- Kubernetes resource deployers such as FluxCD or ArgoCD.
- Task
Note
The following section provides a high-level overview of the OCM Kubernetes Controller Toolkit and its components regarding the deployment of an OCM resource in a very basic scenario.
The primary purpose of OCM Kubernetes Controller Toolkit 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 Kubernetes Controller Toolkit.
Take a look at our installation guide to get started.
Important
While the OCM Kubernetes Controller Toolkit technically can be used standalone, it requires kro and a deployer, e.g. FluxCD or ArgoCD, to deploy an OCM resource into a Kubernetes cluster. The OCM Kubernetes Controller Toolkit deployment, however, does not contain kro or any deployer. Please refer to the respective installation guides for these tools:
- Setup your (test) environment with kind, kro, FluxCD, and ArgoCD
- Deploying a Helm chart using a
ResourceGraphDefinitionwith FluxCD - Deploying a Helm chart using a
ResourceGraphDefinitioninside the OCM component version (bootstrap) with FluxCD - Configuring credentials for OCM Kubernetes Controller Toolkit resources to access private OCM repositories
The OCM Kubernetes Controller Toolkit is deployer-agnostic: the kro.run ResourceGraphDefinition (RGD) you write determines
which tool reconciles the final workload. Both FluxCD and ArgoCD are supported and tested.
See the working examples under examples/ — each rgd.yaml contains both a FluxCD and an
ArgoCD deployer block side by side.
| Task | Description |
|---|---|
task test/e2e/setup/local |
Create ocm-e2e Kind cluster with kro, FluxCD, and ArgoCD installed |
task test/e2e/setup/teardown |
Delete the ocm-e2e cluster and its registry container |
task test/e2e |
Run e2e tests against the running cluster. Pass ginkgo flags after --, e.g. task test/e2e -- -ginkgo.focus=helm-simple |
task test/e2e/fresh |
Tear down + setup + run in one shot. Accepts the same ginkgo flags |
Code contributions, feature requests, bug reports, and help requests are very welcome. Please refer to our Contributing Guide for more information on how to contribute to OCM.
OCM Kubernetes Controller Toolkit follows the Linux Foundation EU Code of Conduct