Skip to content

Commit 0da2b4c

Browse files
📖 Update README.md - Refine information about compatibility and supportability
1 parent b5235ef commit 0da2b4c

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

README.md

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -119,15 +119,28 @@ Contributions are greatly appreciated. The maintainers actively manage the issue
119119
The project follows the typical GitHub pull request model. See [CONTRIBUTING.md](CONTRIBUTING.md) for more details.
120120
Before starting any work, please either comment on an existing issue, or file a new one.
121121

122-
## Supportability
122+
## Operating Systems Supported
123123

124-
Currently, Kubebuilder officially supports OSX and Linux platforms.
125-
So, if you are using a Windows OS you may find issues. Contributions towards
126-
supporting Windows are welcome.
124+
Currently, Kubebuilder officially supports macOS and Linux platforms. If you are using a Windows OS, you may encounter issues.
125+
Contributions towards supporting Windows are welcome.
127126

128-
### Apple Silicon
127+
## Versions Compatibility and Supportability
129128

130-
Apple Silicon (`darwin/arm64`) support begins with the `go/v4` plugin.
129+
Projects created by Kubebuilder contain a `Makefile` that installs tools at versions defined during project creation. The main tools included are:
130+
131+
- [kustomize](https://github.com/kubernetes-sigs/kustomize)
132+
- [controller-gen](https://github.com/kubernetes-sigs/controller-tools)
133+
- [setup-envtest](https://github.com/kubernetes-sigs/controller-runtime/tree/main/tools/setup-envtest)
134+
135+
Additionally, these projects include a `go.mod` file specifying dependency versions. Kubebuilder relies on [controller-runtime](https://github.com/kubernetes-sigs/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.
136+
137+
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, this compatibility is not guaranteed, supported, or tested. Typically, a new minor version of Kubebuilder is created for each minor version of client-go and other k8s.io/* dependencies and tools.
138+
139+
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.
140+
141+
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.
142+
143+
**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](https://github.com/kubernetes-sigs/kubebuilder/tree/v4.1.1/testdata), such as the [go.mod](https://github.com/kubernetes-sigs/kubebuilder/blob/v4.1.1/testdata/project-v4/go.mod#L3) file for `project-v4`. You can also check the tools versions supported and tested for this release by examining the [Makefile](https://github.com/kubernetes-sigs/kubebuilder/blob/v4.1.1/testdata/project-v4/Makefile#L160-L165).
131144

132145
## Community Meetings
133146

0 commit comments

Comments
 (0)