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
Istio Headlamp Plugin

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