2026-09-18Active
Istio Headlamp Plugin
Kubernetes 대시보드인 Headlamp에 Istio 서비스 메시 UI를 추가하는 플러그인입니다. Istio 리소스의 spec을 편집기를 열지 않고 상세 화면에서 바로 확인할 수 있고, Waypoint, ztunnel, istio-cni, 네임스페이스 등록 상태와 L4/L7 정책 적용 위치 같은 Ambient 모드 구성을 직접 보여줍니다. Artifact Hub에 배포했고, Headlamp 공식 plugins 저장소 README의 External plugin 목록에 등재되었습니다.
TypeScriptReactKubernetesIstioHeadlamp

Summary
Istio 리소스 spec 조회와 Ambient 모드를 지원하는 Headlamp 플러그인
Why I Built It
- 메타데이터와 condition만 보여주는 상세 화면 때문에 DestinationRule, ServiceEntry 설정 확인에도 매번 Edit 필요
- Ambient 모드에서 L7 AuthorizationPolicy가 ztunnel에 적용되면 fail closed로 트래픽이 거부되지만 UI에서 확인 불가
Approach
- 리소스 레지스트리 하나에서 사이드바, 라우트, 목록 컬럼, 상세 페이지를 파생하는 구조
- 주요 필드는 타입별 섹션, 나머지는 재귀 렌더러로 표시해 새 Istio 버전의 필드도 노출
- 정책 적용 위치 판단 등 분석 로직을 순수 함수로 분리해 Istio 1.30.1 Ambient 클러스터 fixture로 테스트
- kind 로컬 클러스터와 Playwright E2E로 실제 Headlamp에서 검증
Key Features
- DestinationRule, ServiceEntry, VirtualService, AuthorizationPolicy 등 Istio 리소스별 spec 상세 화면과 Full spec 렌더러
- Mesh Overview(컨트롤 플레인 버전, ztunnel/istio-cni 상태)와 Waypoints 화면
- L7 AuthorizationPolicy의 실제 적용 위치(waypoint/ztunnel) 확인 및 fail closed 경고
- 엔드포인트 없는 STATIC ServiceEntry 등 아무 효과 없는 구성 경고
- Headlamp 기본 Service, Pod, Namespace 화면에 Istio 정보와 Ambient/Sidecar Mesh 컬럼 추가
- Istio 1.2x, 1.3x 지원 및 클러스터에 설치된 CRD만 사이드바에 노출
- GitHub Release, GHCR 이미지, Artifact Hub로 배포
Tech Stack
TypeScriptReactHeadlamp Plugin SDKIstioKuberneteskindPlaywrightDockerGitHub Actions