Skip to content

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

Closed

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

  1. added
    enhancementNew feature or request
    priority:high운영 안정성 또는 데이터 안전에 우선 대응이 필요한 과제
    on Sep 10, 2026
  2. dhslove commented on Sep 10, 2026

    @dhslove
    Author

    S2 #990 검토에서 이 이슈와 함께 처리할 후속 변경을 확인했습니다. 원본 소유 행은 S2에 유지하며 자동 적용/제외하지 않았습니다. PR #1002의 s2-review.tsv와 merges.tsv를 함께 확인해 주세요.

    • 64ac0822b439 — merge conflict fixes (merge conflict fixes apache/cloudstack#13046)
    • 856d83a15eee — Merge branch '4.22'
    • 3e688b019786 — Merge tag '4.22.0.1' into 4.22
    • a4a52c96659d — Merge branch '4.22'
    • 67b849f3efd1 — Merge release branch 4.22 to main
    • b3b9caddc191 — Merge remote-tracking branch 'apache/4.22'
    • c7e2c748f746 — Merge remote-tracking branch 'apache/4.20' into 4.22
    • 76a4bc8c9dea — Merge remote-tracking branch 'apache/4.20' into 4.22
    • 17e5947a6d2c — server: add removed Tests for listHostsForMigrationOfVM and fix test failures
    • fe3df6b660d3 — Merge branch '4.22' into 'main'
    • 24fd90a24878 — server: fix build failures after merge-forward
    • 7fd56e573b8d — Merge remote-tracking branch 'apache/4.20' into 4.22
    • 7fc063ec13df — build: fix after forward-merge

    이들 항목은 공동 검토/검증 대상이며, 번호 순서만으로 모든 변경의 hard dependency를 의미하지 않습니다. 구현 시 해당 원본 행의 최종 판정·적용 SHA·검증 근거를 함께 갱신해야 S2도 마감할 수 있습니다.

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