목적과 범위
부모 Epic: #987
KMS 원본 기능, Usage의 KMSWrappedKeyDao 의존성, UI 및 SharedMountPoint/LINSTOR 암호화 경로와의 연동을 통합한다.
기준과 선행 조건
완료 기준
검증
KMS unit/API/접근 거부 + 키 접근 실패/재시작 + 기존 암호화 데이터 읽기 + Usage 시작 회귀. 실제 backend 검증 증거를 연결한다.
공통 진행 규칙
- 해당 작업 코드의 원본 SHA는 Epic의
developer/history/ 추적표로 관리한다. 원본 SHA별 판정/PR/적용 SHA/검증 근거를 갱신한다.
- 체리픽·적응 수정은 원본 의도와 Europa 계약을 보존하며, patch-id/같은 제목/역적용 성공만으로 완료 처리하지 않는다.
- PR base는
ablecloud-team/ablestack-cloud:ablestack-europa이다. PR은 이 하위 이슈를 연결하고 부모 Epic을 자동 종료하지 않는다.
- 소스/Git/설치/로컬 검증은 Docker 내부에서 진행하며, 공식 산출물은 Actions 결과를 사용한다. 기존 DB/볼륨은 초기화하지 않는다.
- 구현·병합·검증이 완료되면 부모 Epic의 진행표와 추적표를 함께 갱신한다. 새로운 발견과 범위 변경 근거는 코멘트로 남긴다.
S1 확정 추적 자료 (2026-09-10)
- 초기 추적 기준 / 299개 inventory / 의존성
- 이 이슈의 직접 배정 원본 SHA: 3개.
workstream=S5C로 필터링한다. 관련 기능 변경은 related_workstreams와 의존성도 함께 확인한다.
- merge 해결 분석: merges.tsv. S2가 19개를 총괄하고 기능 소유 이슈가 공동 검증한다.
- 사용자 확정 DB 출발점:
014895d8f3; 신규 설치·기존 데이터 업그레이드·동일 버전 재실행을 검증한다.
- S1 작성 당시 원본은 Pending이었다. S5C 최종 판정과 검증 근거는 아래 완료 기록을 따른다.
코드 통합 완료와 실물 테스트 인수 (2026-09-11)
사용자 확정 및 Epic #987의 공통 원칙: 이 기능 이슈는 Apache 변경을 Europa 코드에 안전하게 통합하고 코드 검토·자동 테스트·CI를 통과한 뒤 정상 병합하는 것을 완료 기준으로 한다. 본문에 포함된 실물 환경 테스트는 코드 병합의 선행 조건이 아니다. 실물 미실행을 이유로 기능 PR을 Draft로 유지하거나 기능 이슈 종료를 보류하지 않는다.
이 배치에서 필요한 실물 시나리오·기대 결과·미확인 위험은 #1025에 누적한다. 모든 기능 코드 병합 후 최종 SHA에서 S8 #999가 실행·판정한다. 미실행을 PASS로 표시하지 않으며 최종 RC/릴리즈 게이트는 유지한다.
S5B 완료 인수 (2026-09-11)
#994 / PR #1035 병합·동기화 완료. 코드 기준 27dbd94c2914162862c2b6e61d5e69dd22f5303d, DB 출발점 014895d8f3 유지. 검증 보고 · 원본54개 판정 · 공유 merge 검토 · 후속 의존성 · 전체299개.
- SharedMountPoint/LINSTOR 암호화 provider 변경은 S5B에서 반영했다. 나머지 KMS 원본3개·Usage 키 의존성과 구성/API/UI·실패 경로는 이 이슈가 소유한다.
- 기존 Complete S4/S5A/S5B v1을 수정해 기존 설치에 실행될 것으로 가정하지 않는다. 새 같은4.23 DDL은 별도 명명된 checkpoint에 둔다. KBOSS view는 테이블 생성 뒤 실행해야 한다.
- canonical
takeBackup(vm,quiesce,isolated,scheduleId)와 legacy forwarding, NetBackup EXTERNAL/영속 restore state, S4 CheckedReservation·S3 ACL/async secret encryption을 유지한다.
- VM start4/6인수 호환과7번째
isExplicitHost 의미를 유지한다. quickRestore는 별도 명시적 인수이며 FTCTL/DR가 우연히 활성화해서는 안 된다.
- LINSTOR 대상 token/TLS·auth.json, QEMU10.1 format/key-file lifecycle, RBD parent/thin·Glue/KVDO를 함께 검증한다. 실물 암호화 데이터/외부 KMS 실패 시험은 #1025에서 최종 코드 이후 실행한다.
S5C 코드 통합 완료 (2026-09-11)
PR #1036 정상 병합. 병합 SHA e4e1abf, 최종 PR HEAD 7bf2899.
upstream/ablecloud-team Europa, origin/dhslove Europa 및 로컬 codex/ablestack-cloud-dev를 같은 SHA로 동기화했다. 검증 보고 · 원본3개 판정 · DB 결과 · 후속 계약 · 전체299개.
- 직접 원본3개: Applied1 / Adapted2. 고정299개는 Applied78 / Adapted88 / Already Satisfied49 / Excluded28 / Pending56. S2 잔여16개(merge12 + 일반4)는 변경하지 않았고 OPEN 유지한다.
- Database/PKCS#11 KMS·HSM API/UI 및 Usage 공통 DAO 통합. KVDO·KBOSS·CheckedReservation·FTCTL/DR와 기존 메서드 계약을 보존했다.
- 동일 버전 S5C DB 단계, 이전 volume view 순서, legacy DEK의 Base64 보존, 마이그레이션 트랜잭션과 실패 응답, 계정/존 검사·클러스터 키 잠금·HSM 비밀 마스킹을 검증했다.
- 최종 HEAD 공식 backend 14,132 tests / failures0 / errors0 / skipped17; UI351/30 suite 및 production build, License, Rocky9.8/9.7 RPM 통과. Build / UI Build / License Check / Rocky 9.8 RPM Packaging / Rocky 9.7 RPM Packaging.
- 로컬 전체 회귀 테스트도 14,132 tests / failures0 / errors0 / skipped15로 BUILD SUCCESS. 공식 Actions의 skipped17과 구분하여 기록한다.
- 집중 Java189/11 suite, 실제 MySQL 신규/014895d8f3/S5B 466 table/view와 동일 스냅샷 반복·기존 행 보존·DDL10개 중단 복구 통과. 실제 Management/Usage API·ACL·DAO 시작, DB 저장 오류 rollback, 비활성 HSM/키 거부, 동시 회전·background rewrap 및 재시작 후 4 MiB LUKS QCOW2 데이터 전체 복호화도 통과했다.
- 전체 Lint는 기존13개 실패 범주이며 변경 경로 추가 진단0개다. Simulator/Coverage/Sonar skipped는 PASS로 계산하지 않는다. 관리자 우회 병합이나 테스트 비활성화를 사용하지 않았다.
- 실물 HSM·KVM·SharedMountPoint·LINSTOR 테스트는 NOT_RUN. 시나리오·기대 결과를 #1025에 남겼으며 전체 코드 병합 후 S8 #999에서 실행한다.
다음 코드 통합은 S6 #997이다. Epic #987, S2 #990 및 최종 실물 검증 이슈는 OPEN 유지한다.
목적과 범위
부모 Epic: #987
KMS 원본 기능, Usage의 KMSWrappedKeyDao 의존성, UI 및 SharedMountPoint/LINSTOR 암호화 경로와의 연동을 통합한다.
기준과 선행 조건
014895d8f3dc2f062f379b51ee62d36a0adae88a3166e64891fc75d4d32b66d874cff3f613b09b52..463f8d0294702a920e8020b62ae3b67f52ae1473(4.23.0.0)S5Cbaseline_ready게이트(기준 실패 분리·검증 환경 확보)를 착수 조건으로 한다. 기능별 소스/DB/API 의존성은 추적표가 우선한다.완료 기준
검증
KMS unit/API/접근 거부 + 키 접근 실패/재시작 + 기존 암호화 데이터 읽기 + Usage 시작 회귀. 실제 backend 검증 증거를 연결한다.
공통 진행 규칙
developer/history/추적표로 관리한다. 원본 SHA별 판정/PR/적용 SHA/검증 근거를 갱신한다.ablecloud-team/ablestack-cloud:ablestack-europa이다. PR은 이 하위 이슈를 연결하고 부모 Epic을 자동 종료하지 않는다.S1 확정 추적 자료 (2026-09-10)
workstream=S5C로 필터링한다. 관련 기능 변경은related_workstreams와 의존성도 함께 확인한다.014895d8f3; 신규 설치·기존 데이터 업그레이드·동일 버전 재실행을 검증한다.코드 통합 완료와 실물 테스트 인수 (2026-09-11)
사용자 확정 및 Epic #987의 공통 원칙: 이 기능 이슈는 Apache 변경을 Europa 코드에 안전하게 통합하고 코드 검토·자동 테스트·CI를 통과한 뒤 정상 병합하는 것을 완료 기준으로 한다. 본문에 포함된 실물 환경 테스트는 코드 병합의 선행 조건이 아니다. 실물 미실행을 이유로 기능 PR을 Draft로 유지하거나 기능 이슈 종료를 보류하지 않는다.
이 배치에서 필요한 실물 시나리오·기대 결과·미확인 위험은 #1025에 누적한다. 모든 기능 코드 병합 후 최종 SHA에서 S8 #999가 실행·판정한다. 미실행을 PASS로 표시하지 않으며 최종 RC/릴리즈 게이트는 유지한다.
S5B 완료 인수 (2026-09-11)
#994 / PR #1035 병합·동기화 완료. 코드 기준
27dbd94c2914162862c2b6e61d5e69dd22f5303d, DB 출발점014895d8f3유지. 검증 보고 · 원본54개 판정 · 공유 merge 검토 · 후속 의존성 · 전체299개.takeBackup(vm,quiesce,isolated,scheduleId)와 legacy forwarding, NetBackup EXTERNAL/영속 restore state, S4 CheckedReservation·S3 ACL/async secret encryption을 유지한다.isExplicitHost의미를 유지한다. quickRestore는 별도 명시적 인수이며 FTCTL/DR가 우연히 활성화해서는 안 된다.S5C 코드 통합 완료 (2026-09-11)
PR #1036 정상 병합. 병합 SHA e4e1abf, 최종 PR HEAD 7bf2899.
upstream/ablecloud-team Europa, origin/dhslove Europa 및 로컬 codex/ablestack-cloud-dev를 같은 SHA로 동기화했다. 검증 보고 · 원본3개 판정 · DB 결과 · 후속 계약 · 전체299개.
다음 코드 통합은 S6 #997이다. Epic #987, S2 #990 및 최종 실물 검증 이슈는 OPEN 유지한다.