KubeOps
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 | |
KubeOps.Cli | CLI Dotnet Tool to generate stuff | |
KubeOps.Generator | Source Generator for the SDK | |
KubeOps.KubernetesClient | Extended client to communicate with the Kubernetes API | |
KubeOps.Operator | Main SDK entrypoint to create an operator | |
KubeOps.Operator.Web | Web part of the operator (for webhooks) | |
KubeOps.Transpiler | Transpilation helpers for CRDs and RBAC elements |
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.