Skip to content

fix(api): v1alpha2 Hub 필드 유실 3건 추가 복원 + 전 타입 무손실 왕복 테스트 - #316

Merged
KeiaiLab-PHIL merged 1 commit into
mainfrom
fix/v1alpha2-slowlog-parity
Aug 1, 2026
Merged

fix(api): v1alpha2 Hub 필드 유실 3건 추가 복원 + 전 타입 무손실 왕복 테스트#316
KeiaiLab-PHIL merged 1 commit into
mainfrom
fix/v1alpha2-slowlog-parity

Conversation

@KeiaiLab-PHIL

Copy link
Copy Markdown
Contributor

#314 는 절반이었습니다

#314 에서 ValkeyBackup/ValkeyRestore 의 유실 필드 2건을 고쳤지만, 그때 "이미 테스트가 있던" Valkey/ValkeyCluster/BackupTarget 은 재검사하지 않았습니다. 필드 단위 수동 단언은 빠뜨린 필드를 잡지 못합니다 — 실제로 3건이 더 숨어 있었습니다:

v1alpha1 필드 Hub(v1alpha2) 상태 영향
ValkeySpec.slowLog SlowLogSpec 타입 자체가 없음 SLOWLOG 임계값 설정 소실
ValkeyClusterSpec.slowLog 동일 동일
ValkeyBackupTargetSpec.gcs GCSSpec 계열 타입 없음 백업 대상 자체가 사라짐
ValkeyBackupTargetSpec.azure AzureSpec 계열 타입 없음 동일

변환이 JSON byte-copy 라 대응 태그가 없으면 에러 없이 소실됩니다(#314 와 동일 기전).

수정

누락 타입·필드를 Hub 에 복원해 5 타입 전 필드 패리티를 달성했습니다(순수 추가, 기존 CR 영향 0).

ValkeySpec               유실 필드 = None ✓
ValkeyClusterSpec        유실 필드 = None ✓
ValkeyBackupSpec         유실 필드 = None ✓
ValkeyRestoreSpec        유실 필드 = None ✓
ValkeyBackupTargetSpec   유실 필드 = None ✓

재발 방지 — 테스트를 열거형에서 왕복 비교로

같은 실수(필드를 빠뜨림)가 반복되지 않도록 필드를 열거하지 않는 테스트를 넣었습니다. v1alpha1 객체를 JSON 으로 채워 ConvertToConvertFrom 왕복시킨 뒤 원본 JSON 과 완전 일치를 요구합니다. 앞으로 v1alpha1 에 필드가 추가되면 Hub 에 함께 넣지 않는 한 이 테스트가 막습니다.

Verify (양방향 실증)

수정 전: --- FAIL: .../Valkey — "왕복에서 내용이 바뀌었다 — Hub 에 대응 필드가 없을 가능성"
         (ValkeyCluster·BackupTarget 도 동일 검출)
수정 후: 6/6 PASS
make test → 회귀 0, 총 커버리지 41.5%

🤖 Generated with Claude Code

https://claude.ai/code/session_01QGCUdVQyTLSCiHoi5wiouH

#314 에서 ValkeyBackup/ValkeyRestore 의 유실 필드 2건을 고쳤으나, 그때는 "이미
테스트가 있던" Valkey/ValkeyCluster/BackupTarget 을 재검사하지 않았다. 필드 단위
수동 단언은 **빠뜨린 필드를 잡지 못한다** — 실제로 3건이 더 숨어 있었다:

  ValkeySpec.slowLog             → Hub 에 SlowLogSpec 타입 자체가 없음
  ValkeyClusterSpec.slowLog      → 동일
  ValkeyBackupTargetSpec.gcs     → Hub 에 GCSSpec 계열 타입 없음
  ValkeyBackupTargetSpec.azure   → Hub 에 AzureSpec 계열 타입 없음

백업 target 이 GCS/Azure 면 **대상 자체가 사라진다**. 변환이 JSON byte-copy 라
대응 태그가 없으면 에러 없이 소실된다 (#314 와 동일 기전).

누락 타입·필드를 Hub 에 복원해 **5 타입 전 필드 패리티** 를 달성했다(순수 추가,
기존 CR 영향 0). 그리고 같은 실수가 재발하지 않도록 테스트를 필드 열거형에서
**전 필드 왕복 비교**로 바꾼다 — v1alpha1 객체를 JSON 으로 채워 왕복시킨 뒤 원본
JSON 과 완전 일치를 요구하므로, 앞으로 v1alpha1 에 필드가 추가되면 Hub 에 함께
넣지 않는 한 이 테스트가 막는다.

verify:
- 수정 전: 6 케이스 중 Valkey/ValkeyCluster/BackupTarget 왕복 불일치 검출 (FAIL)
- 수정 후: 6/6 PASS
- 필드 패리티 스캔: 5 타입 전부 "유실 필드 None"
- make test 회귀 0 (총 41.5%)

Signed-off-by: 태환 박 <phil@keiailab.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@KeiaiLab-PHIL
KeiaiLab-PHIL merged commit 743400b into main Aug 1, 2026
18 checks passed
@KeiaiLab-PHIL
KeiaiLab-PHIL deleted the fix/v1alpha2-slowlog-parity branch August 1, 2026 09:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant