Skip to content

[ROADMAP] Operator Capability Level — Basic Install to Auto Pilot #260

Description

@eightynine01

Operator Capability Model — 5-Level Maturity Roadmap (실측 기반)

OperatorHub.io Capability Level 기준. 코드 증거로 검증한 실측 상태 — stub/타입 정의만 있는 항목은 미완료 처리.

⚠️ 이전 버전(v1)은 과장된 체크박스가 포함되어 있었습니다. 본 v2는 adversarial 코드 감사 결과를 반영합니다.


Level I — Basic Install ✅ COMPLETE

Automated application provisioning and configuration management.

  • Helm chart install — `charts/mongodb-operator/` Chart.yaml v1.9.1 + 12 templates
  • OLM bundle — `bundle/manifests/` CSV + 3 CRD manifests
  • MongoDB CRD → StatefulSet — `mongodb_controller.go:161` reconcileStatefulSet()
  • MongoDBSharded CRD → ConfigServer + Shards + Mongos — CRD + controller 구현
  • SCRAM-SHA-256 auth bootstrap — controller에서 admin user 생성
  • Keyfile 자동 생성 — `builder.go:274` BuildKeyfileSecret()
  • TLS Certificate CR 자동 생성 — cert-manager Certificate CR 생성 코드 미확인 (tlsArgs만 존재)
  • Admin user bootstrap — `bootstrap_lease.go` Lease 기반 race-free

Status: 7/8 verified. TLS Certificate 자동 생성 검증 필요.


Level II — Seamless Upgrades 🔄 PARTIAL

Patch and minor version upgrades for the operand.

  • `IsValidUpgradePath(from, to)` — `common_types.go:635` + 14 test cases
  • `UpgradeStrategySpec` CRD 필드 정의 — `common_types.go:598-618`
  • `reconcileUpgrade()` controller 존재 — `upgrade.go:28` + `mongodb_controller.go:154` 호출
  • PreUpgradeBackup — `upgrade.go:79` MongoDBBackup CR 생성 코드 존재
  • ValidationInterval 검증 로직 불완전 — UpgradeStartTime 1차 체크만, Pod별 rolling 검증 없음
  • RollbackOnFailure 조건 검사 부재 — reconcileUpgradeRollback()이 UpgradeStrategy nil 체크 없이 실행
  • MongoDBSharded 업그레이드 orchestration — ConfigServer→Shards→Mongos 순서 미구현
  • e2e 테스트 — 실 클러스터 검증 미완 (Ceph OSD down으로 차단)

Status: 4/8 verified. 핵심 orchestration 로직에 버그(조건 검사 부재) + sharded 미지원.


Level III — Full Lifecycle 🔄 PARTIAL

Backup, restore, failure recovery, application reconfiguration.

Backup/Restore

  • `MongoDBBackup` CRD + controller — `mongodbbackup_controller.go` Job 생성 확인
  • Restore Job — `BuildRestoreJob()` 존재 + controller 호출
  • MongoDBBackupVerification — 타입만 존재, controller 미구현
  • Queryable backup — `QueryableBackupSpec` 타입만, 구현 코드 0건
  • PITR oplog tailing sidecar — `oplog_uploader.go` skeleton만, `BuildOplogTailerSidecar()` 미발견
  • Backup scheduling (CronJob) — `BuildBackupCronJob()` 존재하나 reconciler 통합 미완
  • Backup throttling — CRD 필드만, 실 throttle 적용 코드 없음

Failure Recovery

Reconfiguration

  • PVC online resize — 코드 미발견 (주장과 불일치)
  • Members scale-out — spec.members 증가 시 STS replicas 증가 (K8s 기본)
  • Sharded scale-out — `reconcileAddShards()` 존재
  • CustomConfig inline → ConfigMap — 타입만 추가 (PR feat(config): add CustomConfig inline/configMapRef for mongod.conf (gap #19) #244), builder 적용 코드 없음
  • Password rotation — 미구현
  • Members scale-in — rs.remove 미구현

Status: 5/16 verified. 대부분 CRD 필드/타입만 존재하고 controller 로직 미구현.


Level IV — Deep Insights 🔄 PARTIAL

Metrics, alerting, log analysis, workload analysis.

Metrics & Monitoring

MongoDBInsights

  • CRD + controller skeleton — `mongodbinsights_controller.go`
  • 인덱스 추천 엔진 — `insights/analyzer.go` + 11 unit tests
  • 느린 쿼리 감지 실행 — Recommendation 타입만, 실 수집→분석 파이프라인 없음
  • MongoDBSharded 프로파일링 — 미구현
  • UnusedIndex 감지 — 미구현
  • 감사 로깅 — CRD 필드만, 활성화 코드 없음

Status: 5/13 verified. 메트릭/대시보드는 실제 동작하나, Insights 파이프라인과 alert 수가 과장됨.


Level V — Auto Pilot ⬜ NOT STARTED

Horizontal/vertical scaling, auto-healing, auto-tuning, anomaly detection.

Auto-scaling

  • HPA for Mongos — `reconcileMongosHPA()` 존재하나 기본 gate=false (비활성). K8s HPA 생성만 위임.
  • AutoScalingSpec — CRD 필드만. 자체 스케일링 로직 없음 (K8s HPA에 의존).
  • VPA 통합 — 미구현
  • Shard auto-scaling — 미구현
  • Oplog window 기반 scale — 미구현

Auto-healing

  • Pod health check 자동 복구 — 미구현
  • Replica set member 자동 복구 — 미구현
  • Storage 자동 확장 — 미구현
  • Connection pool 자동 조정 — 미구현

Auto-tuning

  • WiredTiger cache 자동 조정 — 미구현
  • 인덱스 자동 생성 — 미구현
  • 쿼리 성능 자동 최적화 — 미구현
  • Compaction 자동 스케줄링 — 미구현

Anomaly Detection

  • 이상 트래픽 감지 — 미구현
  • 복제 지연 이상 감지 — 미구현
  • 스토리지 이상 감지 — 미구현
  • 보안 이상 감지 — 미구현

Multi-cluster Auto Pilot

  • Cross-cluster failover — 미구현
  • Global load balancing — 미구현
  • Federated backup coordination — 미구현

Status: 0/21 verified. HPA 생성 코드는 있으나 gate=false 기본 비활성.


실측 Summary Matrix

Level 이전 주장 실측 검증 방법
I — Basic Install 8/8 7/8 grep + Read (TLS cert 생성 미확인)
II — Seamless Upgrades 8/10 4/8 코드 추적 (rollback 조건 버그, sharded 미구현)
III — Full Lifecycle 14/20 5/16 controller 존재 여부 (대부분 타입/stub만)
IV — Deep Insights 10/16 5/13 metrics.go 카운트, dashboard 파일 수
V — Auto Pilot 2/18 0/21 gate=false 기본 비활성

Overall: 21/66 items verified (32%) ← 이전 주장 42/72 (58%)에서 대폭 하향.


정정 사항

항목 이전 주장 실측
Prometheus metrics 33개 36개
PrometheusRule alerts 15개 8개
PVC online resize ✅ 완료 ❌ 코드 미발견
BackupVerificationSchedule ✅ 완료 ❌ controller 없음
Queryable backup ✅ 완료 ❌ 타입만
PITR oplog tailing ✅ 완료 ❌ skeleton만
CustomConfig inline ✅ 완료 ❌ 타입만, builder 미적용
HPA (Level V) ✅ 2건 ❌ gate=false 비활성

이 이슈는 코드 감사 기반 실측 결과입니다. 각 미완료 항목은 별도 이슈로 분리하여 구현합니다.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestroadmapTracked in roadmap.md

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions