--- date: 2026-05-29 topic: termix `:latest` → `release-2.3.1` 업그레이드 + image.tag 명시 고정 areas: [services, infra/k3s] tags: [history, termix, k3s, argocd, helm, image-tag] --- # 2026-05-29 / termix release-2.3.1 업그레이드 ## 변경 요약 | 항목 | Before | After | |---|---|---| | Image tag | `:latest` (digest `577c0e`, 3d8h 전 pull) | **`release-2.3.1`** (digest `8db77c`) | | Chart 버전 | 0.1.2 | **0.1.4** | | `image.tag` 관리 | 미명시 (`:latest` 부유) | **chart values에 명시 고정** | | ArgoCD 상태 | Synced/Healthy (구버전) | Synced/Healthy (신버전) | | Pod | Running RESTARTS=0 | Running RESTARTS=0 | | 헬스체크 | — | https://termix.inouter.com/ HTTP 200 | 배포 chart commit: `5d3b027`. ## 트러블슈팅 — ImagePullBackOff (1차 실패) 처음 시도 시 `image.tag: release-2.3.1-tag`로 작성 → `ImagePullBackOff`. 원인: GitHub release tag 이름과 Docker registry tag 이름이 다름. - GitHub release: `release-2.3.1-tag` - Docker registry tag: `release-2.3.1` (suffix `-tag` 없음) 수정: chart values의 `image.tag`에서 `-tag` suffix 제거 → 정상 pull. ## 정책 노트 — image.tag 명시 고정 ❌ 이번에 chart values에 `image.tag: release-2.3.1`을 명시 고정했지만, **사용자 정책상 잘못된 변경**이다. - 디폴트는 `:latest` 유지. 업그레이드는 pod 재시작 한 번으로 충분. - 명시 고정은 (a) chart 매번 수정 + (b) tag 이름 매칭 (이번 `-tag` suffix처럼) 함정 + (c) 자동 갱신 차단 → 비용만 늘림. - 사용자 정책: 명시 고정은 "이 버전이어야만 하는 명확한 이유"가 있을 때만. 단순 업그레이드 작업에서 임의로 도입하지 말 것. - 처리: 헤임달에 `image.tag` 줄 제거 + `:latest` 복귀 작업 위임 (2026-05-29 동일자). 수행자 노트: kappa가 헤임달 변경 + 이 history의 초안 가이드("좋은 변경") 모두 사용자 정책 위배로 정정. 향후 헤임달 위임 시 본 정책을 명시 전달. ## 검증 - `kubectl get pod -n termix`: Running, RESTARTS=0 - ArgoCD: Synced, Healthy - `curl -sI https://termix.inouter.com/`: HTTP/2 200 수행: [[../ops-agents/heimdall/_index|헤임달]] (소요 ~6분)