
renovate-operator v5.5.0
Kubernetes上でRenovateの実行を効率化するOperator
Renovate: Kubernetes ネイティブな方法
CRD ベースのスケジューリング、並列実行、自動検出、そして組み込み UI を備えた Renovate を、自社インフラ上で実行できます。Renovate をセルフホストし、すでに Kubernetes を運用しているなら、このオペレーターは、素のセルフホスト構成には欠けている制御性と可観測性を提供します。
すべての Renovate プラットフォームをサポート: GitHub、GitLab、Bitbucket、Azure DevOps、Gitea など。Renovate がサポートする任意のプラットフォームで動作します。認証情報とプラットフォーム設定を環境変数またはシークレット経由で構成するだけです。一部のプラットフォームには、GitHub や GitLab 向けのネイティブ Webhook 連携など、オペレーター固有の追加機能があることに注意してください。
Mend Renovate CE との比較
| 機能 | Mend Renovate CLI | Mend Renovate Community Self-Hosted (別名 "CE") | Renovate Operator |
|---|---|---|---|
| 完全なオープンソース、サインアップやライセンスキー不要 | ✅ | ❌ | ✅ |
| 依存関係の自動更新 | ✅ | ✅ | ✅ |
| 自社インフラ上で実行 | ✅ | ✅ | ✅ |
| 自動検出 | ✅ | ✅ | ✅ |
| オンデマンド実行用の Webhook API | ❌ | ✅ | ✅ |
| Web UI | ❌ | ❌ | ✅ |
| CRD による宣言的な cron スケジューリング | ❌ | ❌ | ✅ |
| グループ/トピックフィルタリングによる自動検出 | ❌ | ❌ | ✅ |
| クラスタ内でのプロジェクトごとのステータス追跡 | ❌ | ❌ | ✅ |
| 同時実行制御を伴う並列実行 | ❌ | ❌ | ✅ |
| Prometheus メトリクスとヘルスチェック | ❌ | ✅ | ✅ |
| Kubernetes ネイティブな Pod スケジューリング | ❌ | ❌ | ✅ |
| 高可用性のためのリーダー選出 | ❌ | ❌ | ✅ |
| ジョブのライフサイクル管理 (TTL、デッドライン、リトライ) | ❌ | ❌ | ✅ |
仕組み
- スケジュールで定義した時刻に、renovate の検出ジョブが開始されます
- 検出が完了すると、検出されたすべてのプロジェクトが UI に表示されます
- すべてのプロジェクトがスケジュール対象として設定されます
- オペレーターは 10 秒ごとにスケジュール済みプロジェクトをチェックし、新しい renovate ジョブを開始します
spec.parallelismで定義された数だけのジョブが同時に実行されます

インストール
Helm
オプション 1: OCI レジストリ
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
ドキュメント
- はじめに — インストール、最初の RenovateJob、プラットフォームのセットアップ
- ドキュメント全体のインデックス
コミュニティ
Slack コミュニティに参加して、質問をしたり、フィードバックを共有したり、他のユーザーやメンテナーとつながりましょう。
コントリビューション
Made with contrib.rocks.
開発
オペレーターをローカルで実行する
前提条件: just がインストールされている必要があります。
- kubeconfig への絶対パスを指定して
KUBECONFIGをエクスポートします —~は展開されないため、$HOMEまたはフルパスを使用してください:export KUBECONFIG=/Users/yourname/.kube/config # or export KUBECONFIG=$HOME/.kube/config - そのkubeconfig内の現在のコンテキストに対してオペレーターを起動します:
just run
KUBECONFIG は : で区切られた複数のファイルを指定することもでき、それらは kubectl がマージするのと同じ方法でマージされます。
ローカル実行には Pod が存在しないため、それ自体の名前空間もありません。セットアップガイドのシークレットチェックは、その状態ではすべての名前空間を拒否します — これは意図的なもので、クラスタに公開された UI が本来関与すべきでない名前空間のシークレットを探索できないようにするためです — そしてその理由をログに記録します。そのステップをローカルで実行するには、セットアップ対象の名前空間を POD_NAMESPACE にエクスポートしてください:
export POD_NAMESPACE=renovate-operator
just run は .env を読み込むため、両方の変数はシェルではなくそこに置くことができます。
テストの実行
| コマンド | 説明 |
|---|---|
just test-unit | ユニットテストスイートを実行する |
just golangci-lint | リンターを実行する |
just check | すべてのチェック(テスト + リンター)を実行する |
just generate | CRD を再生成する |