kubernetes-sigs/controller-runtime
GitHub: kubernetes-sigs/controller-runtime
Kubernetes controller-runtime 是一套用于构建 Kubernetes 自定义控制器的 Go 库,为 Operator 开发提供底层运行时支撑。
Stars: 2929 | Forks: 1294
[](https://goreportcard.com/report/sigs.k8s.io/controller-runtime)
[](https://pkg.go.dev/sigs.k8s.io/controller-runtime)
# Kubernetes controller-runtime 项目
Kubernetes controller-runtime 项目是一组用于构建 Controllers 的 go 库。它被 [Kubebuilder](https://book.kubebuilder.io/) 和
[Operator SDK](https://github.com/operator-framework/operator-sdk) 所使用。对于新项目来说,这两者都是很好的起点。请参阅
[Kubebuilder 快速入门](https://book.kubebuilder.io/quick-start.html) 了解其使用方法。
文档:
- [Package 概述](https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg)
- [使用 builder 的基本 controller](https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/builder#example-Builder)
- [创建 manager](https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/manager#example-New)
- [创建 controller](https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/controller#example-New)
- [示例](https://github.com/kubernetes-sigs/controller-runtime/blob/main/examples)
- [设计](https://github.com/kubernetes-sigs/controller-runtime/blob/main/designs)
# 版本控制、维护和兼容性
完整文档可在 [VERSIONING.md](VERSIONING.md) 中找到,长话短说 (TL;DR):
用户:
- 我们坚持使用 0 的主版本号
- 我们为每个 Kubernetes 次版本发布一个次版本,并允许在次版本之间进行破坏性变更
- 我们会根据需要发布补丁版本,并且不允许在其中包含破坏性变更
- 所有代码 PR 必须标记为 :bug:(补丁修复)、:sparkles:(向后兼容的功能)或 :warning:(破坏性变更)
- 破坏性变更将进入下一个主版本,其他变更将进入近乎即时的补丁或次版本中
- 为了使用一个能提示正确信息的快捷 PR 模板,请使用以下 PR 模板之一:
* [破坏性变更/功能](/.github/PULL_REQUEST_TEMPLATE/breaking_change.md)
* [向后兼容的功能](/.github/PULL_REQUEST_TEMPLATE/compat_feature.md)
* [Bug 修复](/.github/PULL_REQUEST_TEMPLATE/bug_fix.md)
* [文档变更](/.github/PULL_REQUEST_TEMPLATE/docs.md)
* [测试/构建/其他变更](/.github/PULL_REQUEST_TEMPLATE/other.md)
## 兼容性
controller-runtime 的每个次版本都是针对特定次版本的 client-go 进行测试的。某个 controller-runtime 次版本*可能*与其他 client-go 次版本兼容,但这纯属偶然,既不受支持也未经过测试。通常,我们会为 client-go 和其他 k8s.io/* 依赖项的每个次版本创建一个 controller-runtime 次版本。
controller-runtime 的最低 Go 版本是我们 Go 依赖项中最高的最低 Go 版本。通常,这将与相应的 k8s.io/* 依赖项的最低 Go 版本一致。
兼容的 k8s.io/*、client-go 和最低 Go 版本可以在我们的 [go.mod](go.mod) 文件中查阅。
| | k8s.io/*, client-go | 最低 Go 版本 |
|----------|:-------------------:|:------------------:|
| CR v0.24 | v0.36 | 1.26 |
| CR v0.23 | v0.35 | 1.25 |
| CR v0.22 | v0.34 | 1.24 |
| CR v0.21 | v0.33 | 1.24 |
| CR v0.20 | v0.32 | 1.23 |
| CR v0.19 | v0.31 | 1.22 |
| CR v0.18 | v0.30 | 1.22 |
| CR v0.17 | v0.29 | 1.21 |
| CR v0.16 | v0.28 | 1.20 |
| CR v0.15 | v0.27 | 1.20 |
## 常见问题解答
参见 [FAQ.md](FAQ.md)
## 行为准则
标签:controller-runtime, EVTX分析, Go语言, Operator, 子域名突变, 开发框架, 日志审计, 程序破解