
renovate-operator v5.4.0
Kubernetes에서 renovate 실행을 간소화하는 Operator
Renovate: Kubernetes 네이티브 방식
CRD 기반 스케줄링, 병렬 실행, 자동 검색, 내장 UI를 통해 자체 인프라에서 Renovate를 실행하세요. Renovate를 셀프 호스팅하고 이미 Kubernetes를 운영하고 있다면, 이 오퍼레이터는 일반적인 셀프 호스팅 환경에서 부족한 제어와 관측성을 제공합니다.
모든 Renovate 플랫폼을 지원합니다: GitHub, GitLab, Bitbucket, Azure DevOps, Gitea 등. 이 오퍼레이터는 Renovate가 지원하는 모든 플랫폼과 함께 동작합니다. 자격 증명과 플랫폼 설정을 환경 변수나 시크릿으로 구성하기만 하면 됩니다. 일부 플랫폼은 GitHub 및 GitLab용 네이티브 웹훅 통합과 같은 오퍼레이터 전용 기능을 추가로 제공한다는 점에 유의하세요.
Mend Renovate CE와의 비교
| 기능 | Mend Renovate CLI | Mend Renovate Community Self-Hosted (일명 "CE") | Renovate Operator |
|---|---|---|---|
| 완전한 오픈 소스, 가입이나 라이선스 키 불필요 | ✅ | ❌ | ✅ |
| 자동화된 의존성 업데이트 | ✅ | ✅ | ✅ |
| 자체 인프라에서 실행 | ✅ | ✅ | ✅ |
| 자동 검색 | ✅ | ✅ | ✅ |
| 온디맨드 실행을 위한 웹훅 API | ❌ | ✅ | ✅ |
| 웹 UI | ❌ | ❌ | ✅ |
| CRD를 통한 선언적 cron 스케줄링 | ❌ | ❌ | ✅ |
| 그룹/토픽 필터링을 통한 자동 검색 | ❌ | ❌ | ✅ |
| 클러스터 내 프로젝트별 상태 추적 | ❌ | ❌ | ✅ |
| 동시성 제어를 통한 병렬 실행 | ❌ | ❌ | ✅ |
| Prometheus 메트릭 및 상태 확인 | ❌ | ✅ | ✅ |
| Kubernetes 네이티브 파드 스케줄링 | ❌ | ❌ | ✅ |
| 고가용성을 위한 리더 선출 | ❌ | ❌ | ✅ |
| 작업 수명 주기 관리 (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
문서
커뮤니티
질문하고, 피드백을 공유하며, 다른 사용자 및 유지 관리자와 소통하려면 Slack 커뮤니티에 참여하세요.
기여하기
contrib.rocks로 제작되었습니다.
개발
로컬에서 오퍼레이터 실행하기
사전 요구 사항: just가 설치되어 있어야 합니다.
- kubeconfig의 절대 경로로
KUBECONFIG를 내보내세요 —~는 확장되지 않으므로$HOME또는 전체 경로를 사용하세요:export KUBECONFIG=/Users/yourname/.kube/config # or export KUBECONFIG=$HOME/.kube/config - 해당 kubeconfig의 현재 컨텍스트에 대해 operator를 시작합니다:
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 재생성 |