목적과 범위
부모 Epic: #987
DNS framework/PowerDNS, Network Extension, VPC firewall/soft delete, DHCP/IPv6/VXLAN, network offering·NIC·CKS 변경을 통합한다. 관련 API/UI 및 upstream 보안 수정의 최종 상태를 함께 반영한다.
기준과 선행 조건
완료 기준
검증
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 유지한다.
목적과 범위
부모 Epic: #987
DNS framework/PowerDNS, Network Extension, VPC firewall/soft delete, DHCP/IPv6/VXLAN, network offering·NIC·CKS 변경을 통합한다. 관련 API/UI 및 upstream 보안 수정의 최종 상태를 함께 반영한다.
기준과 선행 조건
014895d8f3dc2f062f379b51ee62d36a0adae88a3166e64891fc75d4d32b66d874cff3f613b09b52..463f8d0294702a920e8020b62ae3b67f52ae1473(4.23.0.0)S6baseline_ready게이트(기준 실패 분리·검증 환경 확보)를 착수 조건으로 한다. 기능별 소스/DB/API 의존성은 추적표가 우선한다.완료 기준
검증
API/권한/설정 unit, 실제 MySQL 및 조립된 Management API와 HTTP 모의 PowerDNS·외부 provider script 계약을 자동 검증했다. 실제 VR DHCP/DNS/VPC·IPv6·CKS 및 외부 장비 회귀는 #1025에 NOT_RUN으로 기록하고 모든 코드 병합 후 #999에서 수행한다. 기존 #898 전체 기능 확장은 편입하지 않는다.
공통 진행 규칙
developer/history/추적표로 관리한다. 원본 SHA별 판정/PR/적용 SHA/검증 근거를 갱신한다.ablecloud-team/ablestack-cloud:ablestack-europa이다. PR은 이 하위 이슈를 연결하고 부모 Epic을 자동 종료하지 않는다.S1 확정 추적 자료 (2026-09-10)
workstream=S6로 필터링한다. 관련 기능 변경은related_workstreams와 의존성도 함께 확인한다.014895d8f3; 신규 설치·기존 데이터 업그레이드·동일 버전 재실행을 검증한다.코드 통합 완료와 실물 테스트 인수 (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개.
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개.
다음 코드는 S7 #998이다. Epic #987과 S2 #990, 최종 실물 검증 #1025는 OPEN 유지한다.