From 3410e7514c09f99e9541193de78c5a322d901ff8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=83=9C=ED=99=98=20=EB=B0=95?= Date: Sat, 1 Aug 2026 15:59:07 +0900 Subject: [PATCH] =?UTF-8?q?fix(e2e):=20version=5Fupgrade=20=EB=A5=BC=20pat?= =?UTF-8?q?ch=20=EC=8A=B9=EA=B8=89=EC=9C=BC=EB=A1=9C=20=EC=A0=95=EC=A0=95?= =?UTF-8?q?=20(major=20=EB=8A=94=20=EC=A0=95=EC=B1=85=EC=83=81=20=EA=B8=88?= =?UTF-8?q?=EC=A7=80)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit e2e nightly 최초 실행에서 이 spec 이 실패했는데, 원인은 **제품 정책이 맞고 테스트가 낡은 것**이었다: The Valkey "vk-upgrade-test" is invalid: spec.version.version: Forbidden: manual major version upgrade (8.1.6 → 9.0.4) is prohibited; AutoUpdate automates patch/minor only — a major bump requires an explicit migration webhook 이 정당하게 거부한다. spec 의 목적은 `spec.version.version` patch 가 STS template image 로 전파되는지 확인하는 것이고, 그 목적은 **patch 승급으로도 동일하게 달성**된다. 8.1.6 → 8.1.7 로 바꾼다 (둘 다 SupportedValkeyVersions 에 있다 — 8.0.9 / 8.1.6 / 8.1.7 / 9.0.4 / 9.1.0). 정책을 테스트에 맞추는 게 아니라 테스트를 정책에 맞춘다 — major 승급 금지는 의도된 제품 규칙이다. verify: go vet -tags=e2e ./test/e2e/ → exit 0 / gofmt 출력 없음 Signed-off-by: 태환 박 Co-Authored-By: Claude Opus 5 --- test/e2e/version_upgrade_test.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/test/e2e/version_upgrade_test.go b/test/e2e/version_upgrade_test.go index 88f3276f..79a18fbd 100644 --- a/test/e2e/version_upgrade_test.go +++ b/test/e2e/version_upgrade_test.go @@ -14,8 +14,8 @@ Licensed under the MIT License. See the LICENSE file for details. // image 로 propagate 되지 않는 의심 (가설 A: server-side merge 의 immutable // field 거부, 가설 B: webhook idempotency 누설, 가설 C: STS rolling update // partition 보존). -// - iteration 7 진단 (2026-05-07): fresh 인스턴스의 8.1.6 → 9.0.4 patch 시나리오 -// 에서는 *재현 안됨*. STS image propagate + Pod rotation 모두 정상. +// - iteration 7 진단 (2026-05-07): fresh 인스턴스의 patch 승급 시나리오에서는 +// *재현 안됨*. STS image propagate + Pod rotation 모두 정상. // - envtest 의 fake client 는 server-side merge 거부 행동을 모사하지 못함 — 본 // e2e (real Kind API server) 가 정확한 회귀 가드. // @@ -38,7 +38,14 @@ const ( versionUpgradeNamespace = "valkey-version-upgrade-e2e" versionUpgradeCRName = "vk-upgrade-test" versionUpgradeFromTag = "8.1.6" - versionUpgradeToTag = "9.0.4" + // 8.1.6 → 8.1.7 = **patch** 업그레이드. 구 값 9.0.4 는 major 승급이라 + // webhook 이 정당하게 거부한다 ("manual major version upgrade (8.1.6 → 9.0.4) + // is prohibited; AutoUpdate automates patch/minor only") — 이 spec 이 nightly + // 최초 실행에서 실패한 이유이며, **제품 정책이 맞고 테스트가 낡은 것**이었다. + // 이 spec 의 목적(version patch 가 STS template image 로 전파되는지)은 patch + // 승급으로도 동일하게 달성된다. 둘 다 지원 목록에 있다 + // (SupportedValkeyVersions: 8.0.9 / 8.1.6 / 8.1.7 / 9.0.4 / 9.1.0). + versionUpgradeToTag = "8.1.7" ) var _ = Describe("Version Upgrade Reconcile (ROADMAP P0 차단요인 2)", Ordered, func() {