
新发布Jul 28, 2026
renovate-operator v5.5.0
用于在 Kubernetes 中简化 renovate 执行的 Operator
Renovate:Kubernetes 原生方式
在你自己的基础设施上运行 Renovate,具备基于 CRD 的调度、并行执行、自动发现以及内置 UI。如果你自行托管 Renovate 并且已经在运行 Kubernetes,那么这个 operator 能为你提供普通自托管方案所缺乏的控制力和可观测性。
支持所有 Renovate 平台: GitHub、GitLab、Bitbucket、Azure DevOps、Gitea 等。该 operator 可与 Renovate 支持的任何平台配合使用——只需通过环境变量或 secret 配置你的凭据和平台设置即可。请注意,部分平台还提供额外的 operator 专属功能,例如 GitHub 和 GitLab 的原生 webhook 集成。
与 Mend Renovate CE 的对比
| 功能 | Mend Renovate CLI | Mend Renovate Community Self-Hosted(即 "CE") | Renovate Operator |
|---|---|---|---|
| 完全开源,无需注册或许可证密钥 | ✅ | ❌ | ✅ |
| 自动化依赖更新 | ✅ | ✅ | ✅ |
| 在你自己的基础设施上运行 | ✅ | ✅ | ✅ |
| 自动发现 | ✅ | ✅ | ✅ |
| 用于按需运行的 Webhook API | ❌ | ✅ | ✅ |
| Web UI | ❌ | ❌ | ✅ |
| 通过 CRD 进行声明式 cron 调度 | ❌ | ❌ | ✅ |
| 支持按 group/topic 过滤的自动发现 | ❌ | ❌ | ✅ |
| 集群内按项目跟踪状态 | ❌ | ❌ | ✅ |
| 带并发控制的并行执行 | ❌ | ❌ | ✅ |
| Prometheus 指标与健康检查 | ❌ | ✅ | ✅ |
| Kubernetes 原生 Pod 调度 | ❌ | ❌ | ✅ |
| 用于高可用的领导者选举 | ❌ | ❌ | ✅ |
| Job 生命周期管理(TTL、截止时间、重试) | ❌ | ❌ | ✅ |
工作原理
- 在你设定的调度时间,会启动一个 renovate 发现 Job
- 发现完成后,你可以在 UI 中看到所有已发现的项目
- 所有项目此时会被设置为待调度状态
- operator 每 10 秒检查一次待调度的项目,并启动一个新的 renovate Job
- 同时执行的 Job 数量不会超过
spec.parallelism中定义的数量

安装
Helm
选项 1:OCI Registry
helm -n renovate-operator upgrade --install renovate-operator \
oci://ghcr.io/mogenius/helm-charts/renovate-operator \
--create-namespace --wait
选项 2:Helm 仓库
helm repo add mogenius https://helm.mogenius.com/public --force-update
helm -n renovate-operator upgrade --install renovate-operator mogenius/renovate-operator --create-namespace --wait
文档
社区
加入我们的 Slack 社区,提出问题、分享反馈,并与其他用户和维护者交流。
贡献
使用 contrib.rocks 制作。
开发
在本地运行 operator
前提条件:必须安装 just。
- 导出
KUBECONFIG,将其设置为 kubeconfig 的绝对路径 —~不会被展开,因此请使用$HOME或完整路径:export KUBECONFIG=/Users/yourname/.kube/config # or export KUBECONFIG=$HOME/.kube/config - 使用该 kubeconfig 中的当前上下文启动 operator:
just run
KUBECONFIG 也可以用 : 分隔来指定多个文件;它们会按照 kubectl 合并它们的方式被合并。
本地运行没有 Pod,因此也没有自己的命名空间。在这种状态下,设置指南的 secret 检查会拒绝每一个命名空间——这是有意为之,这样暴露在集群中的 UI 就无法探测不属于它职责范围的命名空间中的 secret——并记录原因。导出 POD_NAMESPACE,将其设为你正在设置的命名空间,以便在本地执行该步骤:
export POD_NAMESPACE=renovate-operator
just run 会加载 .env,因此这两个变量可以放在该文件中,而不必放在你的 shell 里。
运行测试
| 命令 | 描述 |
|---|---|
just test-unit | 运行单元测试套件 |
just golangci-lint | 运行 linter |
just check | 运行所有检查(测试 + linter) |
just generate | 重新生成 CRD |