Helm
v4.2.1Kubernetes CoreHelm v4.2.1는 동시 작업 중 발생하는 데이터 경쟁 상태를 고치고, 명령 출력 경로를 수정하며, 버전 범위 제약 파싱 문제를 해결합니다.
breaking업그레이드 후 출력 파싱 로직 검토하기
Helm 명령 성공 메시지가 stderr 대신 stdout으로 출력되도록 바뀌었습니다. CI/CD 파이프라인, 모니터링, 셸 스크립트에서 Helm 출력을 스트림별로 리다이렉트하거나 필터링한다면 예상 외로 동작할 수 있습니다. grep, tee, 출력 캡처 로직을 확인하세요. 대부분의 스크립트는 그대로 작동하지만, 스트림 의존도가 높은 로직은 재검토가 필요합니다.
enhancement버전 범위 제약을 제약 없이 사용하기
Helm 4에서 프리릴리스 버전이나 공백이 없는 범위 제약(예: 'v1.0.0||v1.1.0')을 거부하거나 경고하던 문제가 해결됐습니다. 범위 제약을 피하거나 고정 버전으로 대체한 팀이라면 이제 제약 기반 선택을 도입할 수 있고, 이는 대규모 배포에서 의존성 관리를 단순화합니다.
enhancement동시 작업 안정성을 위해 업그레이드하기
동시 goroutine 실행 중 여러 경쟁 상태(upgrade+rollback, install+uninstall이 같은 클라이언트 대상, WaitForDelete 타이밍)가 모두 고쳐졌습니다. 고속 동시 Helm 작업(멀티 차트 배포, 병렬 재조정 루프, 대규모 테스트 스위트)을 운영한다면 업그레이드해서 간헐적 실패를 제거하세요. CI 파이프라인에서 불안정한 테스트 결과를 보고 있다면 특히 중요합니다.
주요 변경 (5)
- 같은 FailingKubeClient 인스턴스에서 동시에 upgrade+rollback, install+uninstall을 실행할 때 GetWaiterWithOptions의 데이터 경쟁 상태 제거
- Helm 명령 출력 경로 수정: 성공 메시지가 stderr이 아니라 stdout으로 출력됨
- Helm 4에서 버전 범위 제약 파싱 오류 해결 (프리릴리스 버전, || 연산자의 공백 누락 등)
- WaitForDelete 경쟁 상태 패치: 상태 감시자가 watch를 너무 일찍 취소하던 문제 제거
- 의존성 업데이트: cli-utils 1.2.1, controller-runtime 0.24.1, k8s 1.36.1, golang.org/x/net v0.55.0 (GO-2026-5026)