/dotnet-operator-sdk

KubeOps is a kubernetes operator sdk in dotnet. Strongly inspired by kubebuilder.

Primary LanguageC#Apache License 2.0Apache-2.0

KubeOps

.NET Pre-Release .NET Release Scheduled Code Security Testing

This is the repository of "KubeOps" - The dotnet Kubernetes Operator SDK.

The documentation is provided in the code itself (description of the methods and classes) and each package contains a README with further information/documentation. For a more detailed documentation, head to the GitHub Pages.

Packages

All packages support .NET6.0 and higher. The reason is that modern C# features are used and client libraries are still possible for .NET 6.0 and up. Also, the KubernetesClient package follows the same strategy regarding the older framework versions. The following packages exist:

Package Description Latest Version
KubeOps.Abstractions Contains abstractions, attributes, etc. for the SDK Nuget
KubeOps.Cli CLI Dotnet Tool to generate stuff Nuget
KubeOps.Generator Source Generator for the SDK Nuget
KubeOps.KubernetesClient Extended client to communicate with the Kubernetes API Nuget
KubeOps.Operator Main SDK entrypoint to create an operator Nuget
KubeOps.Operator.Web Web part of the operator (for webhooks) Nuget
KubeOps.Transpiler Transpilation helpers for CRDs and RBAC elements Nuget

Contribution

If you want to contribute, feel free to open a pull request or write issues :-) Read more about contribution (especially for setting up your local environment) in the CONTRIBUTING file.

In short:

  • Check out the code
  • Develop on KubeOps
  • Use some Kubernetes to run the test operator against
  • Create tests
  • Build the whole solution (lint warnings will result in an error)
  • Open PR

Motivation

The motivation was to learn more about the quirks of kubernetes itself and provide an alternative to kubebuilder and operator sdk which are both written in GoLang.