Versions Compatibility and Supportability
Projects created by Kubebuilder contain a Makefile
that installs tools at versions defined during project creation.
The main tools included are:
Additionally, these projects include a go.mod
file specifying dependency versions.
Kubebuilder relies on controller-runtime and its Go and Kubernetes dependencies.
Therefore, the versions defined in the Makefile
and go.mod
files are the ones that have been tested, supported, and recommended.
Each minor version of Kubebuilder is tested with a specific minor version of client-go. While a Kubebuilder minor version may be compatible with other client-go minor versions, or other tools this compatibility is not guaranteed, supported, or tested.
The minimum Go version required by Kubebuilder is determined by the highest minimum
Go version required by its dependencies. This is usually aligned with the minimum
Go version required by the corresponding k8s.io/*
dependencies.
Compatible k8s.io/*
versions, client-go versions, and minimum Go versions can be found in the go.mod
file scaffolded for each project for each tag release.
Example: For the 4.1.1
release, the minimum Go version compatibility is 1.22
.
You can refer to the samples in the testdata directory of the tag released v4.1.1,
such as the go.mod file for project-v4
. You can also check the tools versions supported and
tested for this release by examining the Makefile.
Operating Systems Supported
Currently, Kubebuilder officially supports macOS and Linux platforms. If you are using a Windows OS, you may encounter issues. Contributions towards supporting Windows are welcome