Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Ingress Nginx | 14,619 | 15 hours ago | 1 | April 03, 2022 | 356 | apache-2.0 | Go | |||
Ingress-NGINX Controller for Kubernetes | ||||||||||
Kubebuilder | 6,287 | 32 | 17 hours ago | 100 | June 24, 2022 | 79 | apache-2.0 | Go | ||
Kubebuilder - SDK for building Kubernetes APIs using CRDs | ||||||||||
Scope | 5,555 | 5 months ago | 72 | January 25, 2022 | 451 | apache-2.0 | Go | |||
Monitoring, visualisation & management for Docker & Kubernetes | ||||||||||
Kubewatch | 2,429 | 6 months ago | 109 | apache-2.0 | Go | |||||
Watch k8s events and trigger Handlers | ||||||||||
Govmomi | 2,072 | a day ago | 49 | apache-2.0 | Go | |||||
Go library for the VMware vSphere API | ||||||||||
Diun | 1,866 | 3 days ago | 62 | February 03, 2022 | 43 | mit | Go | |||
Receive notifications when an image is updated on a Docker registry | ||||||||||
Robusta | 1,440 | a day ago | 92 | mit | Python | |||||
Kubernetes observability and automation, with an awesome Prometheus integration | ||||||||||
Voyager | 1,332 | 4 | 6 days ago | 32 | February 18, 2022 | 116 | apache-2.0 | Shell | ||
🚀 Secure L7/L4 (HAProxy) Ingress Controller for Kubernetes | ||||||||||
Awesome Gitops | 1,120 | a month ago | 4 | mit | ||||||
A curated list for awesome GitOps resources | ||||||||||
Kubediff | 1,112 | 4 months ago | 28 | apache-2.0 | Python | |||||
Kubediff: a tool for Kubernetes to show differences between running state and version controlled configuration. |
Kubebuilder is a framework for building Kubernetes APIs using custom resource definitions (CRDs).
Similar to web development frameworks such as Ruby on Rails and SpringBoot, Kubebuilder increases velocity and reduces the complexity managed by developers for rapidly building and publishing Kubernetes APIs in Go. It builds on top of the canonical techniques used to build the core Kubernetes APIs to provide simple abstractions that reduce boilerplate and toil.
Kubebuilder does not exist as an example to copy-paste, but instead provides powerful libraries and tools to simplify building and publishing Kubernetes APIs from scratch. It provides a plugin architecture allowing users to take advantage of optional helpers and features. To learn more about this see the Plugin section.
Kubebuilder is developed on top of the controller-runtime and controller-tools libraries.
Kubebuilder is extensible and can be used as a library in other projects. Operator-SDK is a good example of a project that uses Kubebuilder as a library. Operator-SDK uses the plugin feature to include non-Go operators e.g. operator-sdk's Ansible and Helm-based language Operators.
To learn more see how to create your own plugins.
It is strongly recommended that you use a released version. Release binaries are available on the releases page. Follow the instructions to install Kubebuilder.
See the Getting Started documentation.
Also, ensure that you check out the Deploy Image Plugin. This plugin allows users to scaffold API/Controllers to deploy and manage an Operand (image) on the cluster following the guidelines and best practices. It abstracts the complexities of achieving this goal while allowing users to customize the generated code.
Check out the Kubebuilder book.
Building Kubernetes tools and APIs involves making a lot of decisions and writing a lot of boilerplate.
In order to facilitate easily building Kubernetes APIs and tools using the canonical approach, this framework provides a collection of Kubernetes development tools to minimize toil.
Kubebuilder attempts to facilitate the following developer workflow for building APIs
Building APIs using CRDs, Controllers and Admission Webhooks.
See DESIGN.md for the guiding principles of the various Kubebuilder projects.
TL;DR:
Provide clean library abstractions with clear and well exampled godocs.
//+
commentsSee VERSIONING.md.
If you have what looks like a bug, or you would like to make a feature request, please use the Github issue tracking system. Before you file an issue, please search existing issues to see if your issue is already covered.
For realtime discussion, you can join the #kubebuilder slack channel. Slack requires registration, but the Kubernetes team is open invitation to anyone to register here. Feel free to come and ask any questions.
Contributions are greatly appreciated. The maintainers actively manage the issues list, and try to highlight issues suitable for newcomers. The project follows the typical GitHub pull request model. See CONTRIBUTING.md for more details. Before starting any work, please either comment on an existing issue, or file a new one.
Currently, Kubebuilder officially supports OSX and Linux platforms. So, if you are using a Windows OS you may find issues. Contributions towards supporting Windows are welcome.
Apple Silicon (darwin/arm64
) support begins with the go/v4
plugin.
The following meetings happen biweekly:
You are more than welcome to attend. For further info join to [email protected].