Skip to content

fix(S15P11A705-96): kubeseal 체크섬 검증이 파일명 불일치로 죽던 것을 고친다 - #35

Merged
colosair merged 1 commit into
mainfrom
fix/S15P11A705-96-kubeseal-checksum-filename
Jul 29, 2026
Merged

fix(S15P11A705-96): kubeseal 체크섬 검증이 파일명 불일치로 죽던 것을 고친다#35
colosair merged 1 commit into
mainfrom
fix/S15P11A705-96-kubeseal-checksum-filename

Conversation

@colosair

Copy link
Copy Markdown
Member

요약

봉인 workflow의 Install kubeseal 단계가 체크섬 검증에서 실패하던 것을 고칩니다. 한 단계 안의 파일명만 바뀝니다.

Infra가 Secret 7종 등록 후 실제로 실행해서 발견했습니다. Secret 값 문제가 아니고, 그 앞 단계(Secret 존재·형식 검증, 인증서 지문 검증)는 통과했습니다.

Jira

원인

sha256sum -cmanifest 줄에 적힌 이름으로 파일을 엽니다. 다른 이름으로 받아 두면 그 이름의 파일이 없어 죽습니다.

curl -fsSL -o kubeseal.tar.gz "${base}/kubeseal-${KUBESEAL_VERSION}-linux-amd64.tar.gz"
grep "kubeseal-${KUBESEAL_VERSION}-linux-amd64.tar.gz" checksums.txt | sha256sum -c -
#      ↑ manifest 의 이름                                              ↑ 이 이름으로 파일을 연다
sha256sum: kubeseal-0.27.1-linux-amd64.tar.gz: No such file or directory
kubeseal-0.27.1-linux-amd64.tar.gz: FAILED open or read

변경 사항

파일명을 변수 하나에 담아 다운로드·검증·해제가 같은 값을 쓰게 합니다.

tarball="kubeseal-${KUBESEAL_VERSION}-linux-amd64.tar.gz"
curl -fsSL -o "${tarball}" "${base}/${tarball}"
grep "${tarball}" checksums.txt | sha256sum -c -
tar xzf "${tarball}" kubeseal

세 곳이 각자 이름을 적고 있던 것이 원인이라, 이름을 한 곳으로 모으는 쪽이 같은 실수를 다시 만들지 않습니다.

테스트 / 검증

  • 실제 실행 — 다운로드(21,964,120 bytes) → sha256sum -c OKtar xzfkubeseal 추출 성공
  • 원 버전 재현 — 같은 파일을 kubeseal.tar.gz로 이름만 바꿔 두고 검증하니 Infra가 보고한 것과 동일한 메시지로 실패(No such file or directory / FAILED open or read, exit 1)
  • 셸 문법 bash -n

리뷰 포인트

병합 전 검증이 이 결함을 놓친 이유를 적어 둡니다. ai#34에서 한 검증은 YAML 파싱과 bash -n까지였고, 둘 다 문법만 봅니다. sha256sum -c가 인자가 아니라 manifest 내용으로 파일을 연다는 것은 실행해 봐야 드러납니다. PR 본문에 *"실제 봉인은 미실행"*이라고 한계를 적었지만, 그 한계가 봉인 단계뿐 아니라 설치 단계까지 덮는다는 점은 인지하지 못했습니다.

이번에는 네트워크가 필요한 부분까지 로컬에서 실제로 돌렸습니다.

미결 / 후속

  • 봉인 단계 자체는 여전히 미검증 — 이 PR 머지 후 Infra가 재실행해야 확인됩니다. 봉인 결과를 controller가 복호화할 수 있는지는 클러스터 적용까지 가야 확정됩니다
  • PINLOG_AI_INFRA_PR_TOKEN 용도 질의는 ai#32에서 회신 대기 중입니다

🤖 Generated with Claude Code

`curl -o kubeseal.tar.gz` 로 받아 놓고 체크섬 manifest 는
`kubeseal-0.27.1-linux-amd64.tar.gz` 를 가리켰다. `sha256sum -c` 는 manifest
줄에 적힌 이름으로 파일을 열므로 그 이름의 파일이 없어 실패한다.

    sha256sum: kubeseal-0.27.1-linux-amd64.tar.gz: No such file or directory
    kubeseal-0.27.1-linux-amd64.tar.gz: FAILED open or read

파일명을 변수 하나에 담아 다운로드·검증·해제가 같은 값을 쓰게 한다.

검증: 실제 다운로드 → 체크섬 → tar 해제를 로컬에서 돌려 통과 확인했고,
원 버전이 위 오류로 죽는 것도 재현했다. 병합 전 검증이 YAML 파싱과
`bash -n` 까지였던 것이 이 결함을 놓친 이유다 — 둘 다 문법만 본다.

Infra 가 실제 실행으로 발견해 보고했다(ai#32).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@colosair
colosair merged commit 7d8776a into main Jul 29, 2026
2 checks passed
@colosair
colosair deleted the fix/S15P11A705-96-kubeseal-checksum-filename branch July 29, 2026 07:05
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