Skip to content

[Europa][4.23][S6] DNS·Network Extension·VR/SystemVM·VPC 및 CKS 통합 #997

Description

@dhslove

목적과 범위

부모 Epic: #987

DNS framework/PowerDNS, Network Extension, VPC firewall/soft delete, DHCP/IPv6/VXLAN, network offering·NIC·CKS 변경을 통합한다. 관련 API/UI 및 upstream 보안 수정의 최종 상태를 함께 반영한다.

기준과 선행 조건

완료 기준

  • PowerDNS 최초 기능과 tenant DNS 충돌/URL 검증 후속 수정을 하나의 검증 단위로 처리한다.
  • Network Extension과 기존 Europa 네트워크/Storage Service 동작의 계약을 대조한다.
  • VR/DHCP·IPv6·VPC firewall·VXLAN·NIC 변경의 코드 계약과 자동 회귀를 검증하고, 실제 VR 재시작·트래픽 검증은 #1025에 NOT_RUN으로 인수한다.
  • CKS node 변경 권한과 KVM offering scaling의 선행 컴퓨트 변경을 연결한다.
  • 영향 SystemVM OS/패키지와 기존 Storage Service 런타임 호환성을 문서화한다.

검증

API/권한/설정 unit, 실제 MySQL 및 조립된 Management API와 HTTP 모의 PowerDNS·외부 provider script 계약을 자동 검증했다. 실제 VR DHCP/DNS/VPC·IPv6·CKS 및 외부 장비 회귀는 #1025에 NOT_RUN으로 기록하고 모든 코드 병합 후 #999에서 수행한다. 기존 #898 전체 기능 확장은 편입하지 않는다.

공통 진행 규칙

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

코드 통합 완료와 실물 테스트 인수 (2026-09-11)

사용자 확정 및 Epic #987의 공통 원칙: 이 기능 이슈는 Apache 변경을 Europa 코드에 안전하게 통합하고 코드 검토·자동 테스트·CI를 통과한 뒤 정상 병합하는 것을 완료 기준으로 한다. 본문에 포함된 실물 환경 테스트는 코드 병합의 선행 조건이 아니다. 실물 미실행을 이유로 기능 PR을 Draft로 유지하거나 기능 이슈 종료를 보류하지 않는다.

이 배치에서 필요한 실물 시나리오·기대 결과·미확인 위험은 #1025에 누적한다. 모든 기능 코드 병합 후 최종 SHA에서 S8 #999가 실행·판정한다. 미실행을 PASS로 표시하지 않으며 최종 RC/릴리즈 게이트는 유지한다.

S5B 문서·공유 merge 인수 (2026-09-11)

PR #1035 / 코드 기준 27dbd94c2914162862c2b6e61d5e69dd22f5303d. e2012133599af9e2866e1cd58cc3d70081710a46의 ONTAP README 표는 S5B에서 반영했다. Network Extension README는 source8996286a95ce의 기능과 함께 이 S6에서 검토하며 원본 전체는 Pending이다. S6 side source가 남은 공유 merge는 자동 마감하지 않는다. 남은 SHA별 merge 검토의존성 인수를 사용한다.

S5C 완료 기준 인수

PR #1036 병합 SHA e4e1abf. DB 출발점 014895d8f3는 유지한다. 검증 보고 · 원본3개 판정 · DB 결과 · 후속 계약 · 전체299개.

  • 현재 코드 착수 기준은 위 S5C 병합 SHA다. 기존 Complete S4/S5A/S5B/S5C DDL을 수정해 기존 설치에 재실행될 것으로 가정하지 않는다.
  • KMS ID가 추가된 VM/volume API의 기존 overload와 customParameters·KVDO·CheckedReservation·FTCTL/DR를 보존한다. S5B VM start/quickRestore 인수 의미도 유지한다.
  • SharedMountPoint/LINSTOR의 KMS 참조와 QEMU·token/TLS/auth.json 경로는 통합됐다. S6/S7 변경 중 이 계약과 키 실패 거부를 보존한다.
  • S2 Pending16개와 S6 side source가 남은 공유 merge는 기능 확인 후 별도 판정한다. 실물 시험은 #1025에 누적하며 #999에서 최종 SHA로 실행한다.

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

PR #1037 정상 병합. 병합 SHA f1b520f, 최종 PR HEAD 58bd4ce.
upstream/ablecloud-team Europa, origin/dhslove Europa 및 로컬 codex/ablestack-cloud-dev를 같은 SHA로 동기화했다. 검증 보고 · 원본44개 판정 · 공유 merge · DB 결과 · 후속 계약 · 전체299개.

  • 직접 원본32개: Applied17 / Adapted13 / Already Satisfied2. S2 후속2개와 공유 merge10개도 완료했다. 고정299개는 Applied97 / Adapted102 / Already Satisfied60 / Excluded28 / Pending12다. S2 잔여4개(merge2 + 일반2)는 OPEN 유지한다.
  • PowerDNS와 테넌트 충돌/URL 후속, Network Extension과 offering/provider 후속, VPC firewall·soft delete·VR DHCP/IPv6·VXLAN·NIC·CKS 통합. Europa Storage Service·KMS·FTCTL/DR, 기존 VPN 편집값과 설정 제외 목록, network throttle 기본10000 Mbps를 보존했다.
  • 새 europa-4.23-s6-v1 DB 단계와 DNS view 생성 순서를 추가했다. 실제 MySQL 신규/014895d8f3/S5C 경로473 table/view, 재실행 동일 스냅샷·기존 행 보존·DDL24개 중단 후 복구가 통과했다.
  • 최종 HEAD 공식 backend 14,691 tests / failures0 / errors0 / skipped17; UI354/31 suite 및 production build, License, Rocky9.8/9.7 RPM 통과. Build / UI Build / License Check / Rocky 9.8 RPM Packaging / Rocky 9.7 RPM Packaging.
  • 로컬 전체 Java 14,688 tests / failures0 / errors0 / skipped15로 BUILD SUCCESS. 추가 Network Extension 실제 script/JSON/failure/임시 파일 테스트3개도 통과했고 최종 Actions에 포함했다.
  • 최종 조립된 Management API + HTTP 모의 PowerDNS로 provider/zone/record 수명주기, 계정 ACL·동일/하위 존 충돌·URL 거부·응답 비밀값 생략을 검증했다. 물리 DNS 전파 시험은 아니다.
  • 집중 Python10개 통과. 전체 TestCs는 기준25개·변경후28개 중 동일한 TestCsRoute 실패2개가 남으며 전체 PASS로 계산하지 않는다. 변경 shell4개/Python3 17개 문법 검증 통과; exdhcp/dhcpd_edithosts.py는 기존 Python2 문법을 유지하므로 Python3 PASS에서 제외한다.
  • 빈 신규 fixture에서 주기적 LB/cluster balancing의 networks.get(0) 오류가 관찰됐다. updateLBHealthChecks 메서드는 S5C와 동일함을 확인했으며 신규 DB의 실제 LB/VR 시작 검증은 #1025에서 수행한다.
  • 전체 Lint는 기존13개 실패 범주이며 변경 경로 추가 진단0개다. Simulator/Coverage/Sonar skipped는 PASS로 계산하지 않는다. 관리자 우회 병합이나 테스트 비활성화를 사용하지 않았다.
  • 실물 PowerDNS·VR·VPC/VXLAN·외부 provider·VPN·NSX/Netris·CKS 시험13개는 #1025의 S6 인수에 NOT_RUN으로 기록했다. 모든 코드 병합 후 S8 #999에서 실행한다.

다음 코드는 S7 #998이다. Epic #987과 S2 #990, 최종 실물 검증 #1025는 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