
renovate-operator v6.2.0
Оператор для оптимизации выполнений Renovate в Kubernetes
Renovate: нативный для Kubernetes подход
Запускайте Renovate на собственной инфраструктуре с планированием на основе CRD, параллельным выполнением, автообнаружением и встроенным веб-интерфейсом. Если вы самостоятельно размещаете Renovate и уже используете Kubernetes, этот оператор даёт вам контроль и наблюдаемость, которых не хватает обычным self-hosted установкам.
Поддерживаются все платформы Renovate: GitHub, GitLab, Bitbucket, Azure DevOps, Gitea и другие. Оператор работает с любой платформой, поддерживаемой Renovate — просто настройте учётные данные и параметры платформы через переменные окружения или секреты. Обратите внимание, что для некоторых платформ есть дополнительные возможности оператора, например нативные интеграции с вебхуками для GitHub и GitLab.
Сравнение с Mend Renovate CE
| Возможность | Mend Renovate CLI | Mend Renovate Community Self-Hosted (также известный как "CE") | Renovate Operator |
|---|---|---|---|
| Полностью открытый исходный код, без регистрации и лицензионного ключа | ✅ | ❌ | ✅ |
| Автоматическое обновление зависимостей | ✅ | ✅ | ✅ |
| Работает на вашей собственной инфраструктуре | ✅ | ✅ | ✅ |
| Автообнаружение | ✅ | ✅ | ✅ |
| Webhook API для запуска по требованию | ❌ | ✅ | ✅ |
| Веб-интерфейс | ❌ | ❌ | ✅ |
| Декларативное планирование по cron через CRD | ❌ | ❌ | ✅ |
| Автообнаружение с фильтрацией по группам/темам | ❌ | ❌ | ✅ |
| Отслеживание статуса по каждому проекту внутри кластера | ❌ | ❌ | ✅ |
| Параллельное выполнение с контролем конкурентности | ❌ | ❌ | ✅ |
| Метрики Prometheus и проверки работоспособности | ❌ | ✅ | ✅ |
| Нативное для Kubernetes планирование подов | ❌ | ❌ | ✅ |
| Выбор лидера для высокой доступности | ❌ | ❌ | ✅ |
| Управление жизненным циклом заданий (TTL, дедлайны, повторные попытки) | ❌ | ❌ | ✅ |
Как это работает
- В заданное время по вашему расписанию запускается задание обнаружения renovate
- После завершения обнаружения вы сможете увидеть все обнаруженные проекты в веб-интерфейсе
- Все проекты теперь ставятся в очередь на планирование
- Каждые 10 секунд оператор проверяет запланированные проекты и запускает новое задание renovate
- Одновременно выполняется только столько заданий, сколько указано в
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
Документация
- Начало работы — установка, первый RenovateJob, настройка платформы
- Полный индекс документации
Сообщество
Присоединяйтесь к нашему сообществу в Slack, чтобы задавать вопросы, делиться отзывами и общаться с другими пользователями и мейнтейнерами.
Участие в разработке
Сделано с помощью contrib.rocks.
Разработка
Запуск оператора локально
Предварительные требования: должен быть установлен just.
- Экспортируйте
KUBECONFIGс абсолютным путём к вашему kubeconfig —~не раскрывается, поэтому используйте$HOMEили полный путь:export KUBECONFIG=/Users/yourname/.kube/config # or export KUBECONFIG=$HOME/.kube/config - Запустите оператор в отношении текущего контекста в этом kubeconfig:
just run
KUBECONFIG также может указывать на несколько файлов, разделённых :; они объединяются так же, как это делает kubectl.
При локальном запуске нет пода и, следовательно, нет собственного пространства имён. Проверка секретов из руководства по настройке отклоняет любое пространство имён в таком состоянии — намеренно, чтобы UI, доступный из кластера, не мог исследовать секреты в пространствах имён, которые не входят в его зону ответственности, — и записывает в журнал причину. Экспортируйте POD_NAMESPACE с пространством имён, которое вы настраиваете, чтобы выполнить этот шаг локально:
export POD_NAMESPACE=renovate-operator
just run загружает .env, поэтому обе переменные можно хранить там, а не в вашей оболочке.
Запуск тестов
| Команда | Описание |
|---|---|
just test-unit | Запустить набор модульных тестов |
just golangci-lint | Запустить линтер |
just check | Запустить все проверки (тесты + линтеры) |
just generate | Перегенерировать CRD |