Skip to content

fix(release): 번들 parity 를 v1.16.9 로 맞추고 축소 누락을 막는다 - #406

Merged
KeiaiLab-PHIL merged 1 commit into
mainfrom
fix/bundle-parity-v1.16.9
Aug 26, 2026
Merged

fix(release): 번들 parity 를 v1.16.9 로 맞추고 축소 누락을 막는다#406
KeiaiLab-PHIL merged 1 commit into
mainfrom
fix/bundle-parity-v1.16.9

Conversation

@KeiaiLab-PHIL

Copy link
Copy Markdown
Contributor

무엇

v1.16.9 태그가 릴리스 preflight 의 ADR-0038 게이트에서 멈췄다:

bundle CSV version (1.16.6) != Chart.yaml appVersion (1.16.9)

릴리스 커밋(#405)이 차트만 올리고 번들 재생성을 빠뜨린 탓이다. 번들을 1.16.9 로 재생성하고,
같은 자리에서 드러난 두 번째 함정을 함께 막는다.

두 번째 함정 — 축소 단계가 실패를 삼킨다

make bundle 은 번들 CRD 를 maxDescLen=0 으로 줄인다. OLM v1 은 번들 전체를 helm release
Secret(etcd 1MiB 한도)에 담기 때문에 full-description CRD 는 설치를 깨뜨린다(ADR-0038, kind
e2e 실증). 그런데 그 단계가 부르는 $(CONTROLLER_GEN) 이 없으면 레시피 줄의 종료 상태가
뒤따르는 rm -rf이 되어 실패가 성공으로 보인다. 실측:

✓ bundle: ./bundle/ (1.16.9, ... CRD maxDescLen=0)     ← 성공했다고 말한다
::error:: bundle CRD 합계 5100500B > 2.5MiB            ← 실제로는 축소가 안 됐다

preflight 가 잡아주긴 하지만 그때는 이미 태그를 민 뒤다.

bundle 타깃이 controller-gen 을 선행 요구하게 했다. 변수가 아니라 타깃 이름으로 건다
전제조건은 파싱 시점에 전개되는데 CONTROLLER_GEN 정의는 480행이라 193행에서 $(CONTROLLER_GEN)
으로 걸면 빈 문자열이 되어 아무것도 안 걸린다(실제로 그렇게 먼저 써보고 무동작을 확인했다).

검증

바이너리를 지우고 재현했다:

bin 항목수: 0
Downloading sigs.k8s.io/controller-tools/cmd/controller-gen@v0.17.0
✓ bundle: ./bundle/ (1.16.9, channels=stable+alpha, default=stable, CRD maxDescLen=0)
✓ bundle CSV version == appVersion (1.16.9)
✓ bundle CRD 개수 == config/crd/bases (9)
✓ bundle CRD 합계 1704439B (< 2.5MiB — OLM helm-release-secret 한도 안전)
✓ verify-bundle-parity PASS

CRD 합계가 축소 정상 동작 시의 값(1704439B)과 바이트 단위로 일치한다 — 축소가 결정론적이라
번들 CRD 파일 자체에는 diff 가 없고, 변경은 버전 문자열과 Makefile 한 줄뿐이다.

머지 후 v1.16.9 태그를 다시 밀어 이미지 발행을 재시도한다.

🤖 Generated with Claude Code

https://claude.ai/code/session_01VbPL3ACkTc18bnwYUd7G3w

v1.16.9 태그가 릴리스 preflight 의 ADR-0038 게이트에서 멈췄다 —
bundle CSV version 이 1.16.6 인데 Chart.yaml appVersion 은 1.16.9 였다.
릴리스 커밋이 차트만 올리고 번들 재생성을 빠뜨린 탓이다.

번들을 1.16.9 로 재생성하면서 두 번째 함정을 밟았다. 번들 CRD 를
maxDescLen=0 으로 줄이는 단계가 $(CONTROLLER_GEN) 을 부르는데, 그
바이너리가 없으면 레시피 줄의 종료 상태가 뒤따르는 rm -rf 것이 되어
실패가 성공으로 보인다. 결과는 full-description CRD 가 그대로 실린
5.1MB 번들이고, OLM v1 helm-release Secret 1MiB 한도를 넘겨 설치를
깨뜨린다. preflight 가 잡아주긴 하지만 그때는 이미 태그를 민 뒤다.

bundle 타깃이 controller-gen 을 선행 요구하게 했다. 변수가 아니라
타깃 이름으로 건다 — 전제조건은 파싱 시점에 전개되는데 CONTROLLER_GEN
정의는 480행이라 193행에서 변수로 걸면 빈 문자열이 된다. 바이너리를
지우고 재현해 확인했다: 자동 내려받은 뒤 CRD 합계가 1704439B 로
돌아오고 verify-bundle-parity 가 통과한다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VbPL3ACkTc18bnwYUd7G3w
Signed-off-by: phil <phil@keiailab.com>
@KeiaiLab-PHIL
KeiaiLab-PHIL merged commit 60378c6 into main Aug 26, 2026
12 of 13 checks passed
@KeiaiLab-PHIL
KeiaiLab-PHIL deleted the fix/bundle-parity-v1.16.9 branch August 26, 2026 00:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant