component-operator-runtime

This repository provides a framework supporting the development of opinionated Kubernetes operators managing the lifecycle of arbitrary deployment components of Kubernetes clusters, with a special focus on such components that are or contain Kubernetes operators themselves.

It can therefore serve as a starting point to develop SAP Kyma module operators, but can also be used independently of Kyma.

Regarding its mission statement, this project can be compared with the Operator Lifecycle Manager (OLM). However, other than OLM, which follows a generic modelling approach, component-operator-runtime encourages the development of opinionated, concretely modeled, component-specific operators. This makes the resulting logic much more explicit, and also allows to react better on specific lifecycle needs of the managed component.

Of course, components might equally be managed by using generic Kustomization or Helm chart deployers (such as provided by ArgoCD or FluxCD). However, these tools have certain weaknesses when it is about to deploy other operators, i.e. components which extend the Kubernetes API, e.g. by adding custom resource definitions, aggregated API servers, according controllers, or admission webhooks. For example these generic solutions tend to produce race conditions or dead locks upon first installation or deletion of the managed components. This is where component-operator-runtime tries to act in a smarter and more robust way.

If you want to report bugs, or request new features or enhancements, please open an issue or raise a pull request.


Getting Started

How to get started

Concepts

Concepts

Generators

Included resource generators

Usage

How to use the component-operator-runtime framework

Last modified January 8, 2024: format website (c3ca9b9)