Skip to content

[Europa][4.23][S5A] VM 수명주기·KVM·migration·import·오퍼링 변경 통합 #993

Description

@dhslove

목적과 범위

부모 Epic: #987

VM/host/오퍼링·HA·migration/import·guest OS·CLVM·다중 ISO·스케줄/자동 확장 관련 변경을 통합한다. #983의 복제 및 NIC link/PXE 수정과 FTCTL/DR 계약을 보존한다.

기준과 선행 조건

완료 기준

  • 직접 S5A 원본28개와 연관 S2/merge의 의도·의존성·Europa 계약을 검토하고 코드 판정을 기록한다.
  • 오퍼링·HA·migration/import·Guest OS·다중 ISO·스케줄의 영향 범위를 코드 회귀/DB/API/UI 자동 검증으로 확인한다.
  • 코드 PR의 필수 CI 통과 후 정상 병합하고 upstream/origin Europa를 동기화한다.
  • 모든 코드 병합 후 수행할 실물 시나리오를 #1025에 이관한다.

검증

모듈 unit/API 계약, 같은 버전 DB 신규·014 업그레이드·실패 재시도, backend/UI/RAT 및 Actions RPM. 실물 KVM/Ceph·FTCTL·VMware 시험은 이 코드 통합 이슈의 선행 조건이 아니며 #1025에서 모든 코드 병합 후 수행한다.

공통 진행 규칙

  • 해당 작업 코드의 원본 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: 28개. workstream=S5A로 필터링한다. 관련 기능 변경은 related_workstreams와 의존성도 함께 확인한다.
  • merge 해결 분석: merges.tsv. S2가 19개를 총괄하고 기능 소유 이슈가 공동 검증한다.
  • 사용자 확정 DB 출발점: 014895d8f3; 신규 설치·기존 데이터 업그레이드·동일 버전 재실행을 검증한다.
  • 위 링크는 S1 최초 Pending 스냅샷이다. 현재 최종 판정은 아래 S5A 완료 기록과 병합된 inventory를 기준으로 한다.

S4 완료 인수

S4 #992 구현 #1016와 증빙 #1017을 병합했다. 시작 가능한 Europa 기준은 2b4035e1fb03810ae572bb18fafabb74c22babc7이며, 사용자 지정 DB 출발점014895d8f3은 유지한다. 검증 보고의존성 검토를 인수한다.

  • 자원 예약은 List handles와 old/new tag·증감량을 사용한다. VM import/복원/배포 실패 정리와 GPU/KVDO/fast-clone/명시적 호스트 후보·UEFI/TPM 필터를 보존한다. 이전 CPU/RAM check 인터페이스를 다시 도입하지 않는다.
  • Guest OS rule의 JsInterpreter 생성자 확장은 해당 원본과 함께 반영한다. 현재 Quota 코드는 기존 timeout 생성자를 사용해 없는 기능 의존성을 먼저 도입하지 않았다.
  • 같은4.23 DB 변경에는 새 명명된 checkpoint를 추가한다. 이미 Complete인 europa-4.23-s4-v1의 SQL만 수정해서는 기존 설치에서 실행되지 않는다. view 변경도 새 단계에 포함하고 새 설치·전체014 복제·부분 실패·재시작을 검증한다.
  • S4 최종 소스의 공식 Java12,611/UI348 및 실제 관리 서버/Quota/예약 시험은 통과했다. S5A 변경 후 관련 회귀와 실제 하이퍼바이저 시나리오를 추가 검증한다. 공유 merge의 남은 S5A side commit은 Pending으로 유지되어 있다.

코드 통합과 실물 테스트의 분리 (2026-09-11 사용자 확정)

S3~S7 기능 작업은 Apache 변경을 Europa 코드에 안전하게 통합하고 코드 검토·자동 테스트·CI를 통과한 뒤 병합하는 것을 완료 기준으로 한다. 실물 테스트는 모든 코드 병합이 끝난 최종 SHA에서 수행한다. 실물 환경 미제공을 이유로 기능 PR을 Draft로 유지하거나 기능 이슈를 미완료 처리하지 않는다.

배치별 실물 시나리오는 #1025에 누적하고 S8 #999에서 최종 실행·판정한다. 미실행을 PASS로 기록하지 않는다. 이는 기능 코드 병합과 최종 RC/릴리즈 승인을 분리하는 결정이며, 제품 범위나 데이터 보존 요구를 삭제하는 것이 아니다.

구현 PR: #1024 병합 완료. 최종 자동 검증과 동기화 결과는 아래 완료 기록을 참조한다.

코드 검증 인수

PR #1024의 원본33개 판정과 자동 검증 기록을 확정했다. 검증 보고와 아래 완료 기록에 최종 CI 및 병합·동기화 결과를 연결했다. 실물 시험은 #1025에 이관했다.

S5A 코드 통합 완료 (2026-09-11)

PR #1024를 일반 merge로 병합했다. 병합 SHA는 394157cdf2e3aa501edbcc3dff523f66e472d12e이며, ablecloud-team/upstream Europa, dhslove/origin Europa 및 로컬 codex/ablestack-cloud-dev를 같은 SHA로 동기화했다. S5A 검증 보고 · 원본33개 판정 · 공유 merge 검토 · 후속 의존성.

  • 직접 S5A28개 + 연관 S2 일반4개 + 공유 merge1개, 총33개 판정: Applied11 / Adapted17 / Already Satisfied5. 다른 기능의 side commit이 남은 공유 merge8개는 Pending을 유지한다.
  • 전체299개: Applied50 / Adapted66 / Already Satisfied42 / Excluded28 / Pending113. S2는54개 확정/23개 Pending(merge18 + 일반5)이다.
  • 최종 PR HEAD 5783ad2a52bc7ea3ad8fddc453f7e00f8c7be64d의 공식 backend 12,725 tests, failures0/errors0/skipped17; UI30 suites/351 tests, production build, License 및 Rocky9.8/9.7 RPM 패키징 통과. Build / UI Build / License Check / Rocky 9.8 RPM Packaging / Rocky 9.7 RPM Packaging.
  • 로컬 구간 실행 누적12,725 tests(failures0/errors0/skipped15), 최종 권한 보완 집중24개, 최종 UI351개 및 변경 UI ESLint 통과. 구간 실행을 단일 최종 SHA 전체 clean 실행으로 간주하지 않는다.
  • 실제 MySQL 신규 설치·전체014 복제·공식 S4에서 업그레이드, 21개 DDL 실패 경계 재시도·동시 JVM 복구·schema parity·반복 실행 통과. 최종 noredist 관리 서버의 신규/기존 schedule API CRUD 및 version51행/journal2행 보존 확인. 기존 개발 DB/볼륨은 보존했다.
  • 전체 Lint는 기존13개 실패 범주, 이번 변경 경로 진단0개로 #990에 계속 추적한다. Simulator/Coverage/Sonar의 skipped를 PASS로 집계하지 않는다.
  • 실물 테스트는 수행하지 않았다. 모든 코드 병합 후 실행할 KVM/Ceph·FTCTL/DR·VMware/Xen·migration/import·ISO/HA/schedule 및 구/신 agent 호환 시나리오는 #1025에서 추적하고 S8 #999가 인수한다. 실물 미실행은 이 코드 통합 완료를 막는 조건이 아니다.

다음 코드 통합은 S5B #994다. Apache #12617의 CLVM과 후속 migration/ISO 변경은 해당 이슈의 Pending 범위이며 이 배치에서 완료로 계산하지 않았다. Epic #987은 OPEN을 유지한다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestpriority:high운영 안정성 또는 데이터 안전에 우선 대응이 필요한 과제

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions