component-operator-runtime

module
v0.3.23 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 2, 2024 License: Apache-2.0

README

Kubernetes Component Operator Runtime

REUSE status

About this project

A framework to support development of Kubernetes operators managing Kubernetes components.

The operators implemented through this framework are strongly opiniated in the sense that instances of the managed component are described through a dedicated, specific custom resource type.

The key features are:

  • Efficient and smart handling of Kubernetes API extensions (custom resource definitions or API aggregation).
  • Ability to fully take over rendering of the component's resources by implementing
      type Generator interface {
          Generate(ctx context.context, namespace string, name string, parameters types.Unstructurable) ([]client.Object, error)
      }
    
    (where parameters correspond to the spec of the describing custom resource component object).
  • Projects having existing Helm charts or Kustomizations describing the component's lifecylce can reuse these by bundling them into the component operator, leveraging the included ready-to-use HelmGenerator resp. KustomizeGenerator implementations.
  • Scaffolding tool to bootstrap new component operators in minutes, see the Getting Started documentation.

Documentation

The project's documentation can be found here: https://sap.github.io/component-operator-runtime.
The API reference is here: https://pkg.go.dev/github.com/sap/component-operator-runtime.

Support, Feedback, Contributing

This project is open to feature requests/suggestions, bug reports etc. via GitHub issues. Contribution and feedback are encouraged and always welcome. For more information about how to contribute, the project structure, as well as additional contribution information, see our Contribution Guidelines.

Code of Conduct

We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone. By participating in this project, you agree to abide by its Code of Conduct at all times.

Licensing

Copyright 2023 SAP SE or an SAP affiliate company and component-operator-runtime contributors. Please see our LICENSE for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available via the REUSE tool.

Directories

Path Synopsis
internal
pkg
cluster
Package cluster contains client logic to interact with Kubernetes clusters.
Package cluster contains client logic to interact with Kubernetes clusters.
component
Package component contains central interfaces (most importantly, the Component interface) and the generic component reconciler.
Package component contains central interfaces (most importantly, the Component interface) and the generic component reconciler.
manifests
Package manifests contains types and functionality around generating (rendering) the descriptors of the component's dependent resources.
Package manifests contains types and functionality around generating (rendering) the descriptors of the component's dependent resources.
manifests/helm
Package manifests contains the HelmGenerator implementation of the Generator interface.
Package manifests contains the HelmGenerator implementation of the Generator interface.
manifests/kustomize
Package manifests contains the KustomizeGenerator implementation of the Generator interface.
Package manifests contains the KustomizeGenerator implementation of the Generator interface.
operator
Package operator contains reuse types for operators using this framework.
Package operator contains reuse types for operators using this framework.
reconciler
Package reconciler contains logic to manage (apply/delete) depenent objects in a target cluster.
Package reconciler contains logic to manage (apply/delete) depenent objects in a target cluster.
status
Package status contains (kstatus-like) logic to compute the status of Kubernetes resources.
Package status contains (kstatus-like) logic to compute the status of Kubernetes resources.
types
Package types contains common types used and exposed by the component-operator-runtime framework.
Package types contains common types used and exposed by the component-operator-runtime framework.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL