Cluster, StarRocks StarRocksCluster가 "Custom Resources" 메뉴에 나타나고, 모든 namespace를 가로지르는 테이블로 보여줍니다. 즉 최소 요건은 설치만으로 이미 충족됩니다.위 4개 파일은 거기서 한 단계 더 나아가 "DB Fleet"이라는 전용 사이드바 메뉴 + 이상 인스턴스만 걸러 보여주는 요약 대시보드를 추가하는 플러그인입니다.
| 파일 | 용도 |
|---|---|
db-fleet-plugin/src/index.tsx | CNPG+StarRocks 통합 헬스 대시보드 플러그인 핵심 로직 |
db-fleet-plugin/README.md | 스캐폴딩·빌드·검증 방법 |
headlamp-values.yaml | Helm 배포 values (OIDC, plugin 자동 설치 등) |
headlamp-db-viewer-rbac.yaml | Headlamp이 CR을 읽을 수 있는 최소권한 RBAC |
K8s.crd.makeCustomResourceClass의 정확한 파라미터는 Headlamp 버전마다 조금씩 다를 수 있어요 → API 문서와 공식 Flux 플러그인 소스를 실제 동작 예시로 대조하세요.status.readyInstances, status.feStatus.phase 같은 필드명은 제 쪽에서 CNPG/StarRocks operator 문서 기준으로 추정한 값입니다. 배포 전에 kubectl get cluster.postgresql.cnpg.io <name> -o yaml / kubectl get starrockscluster <name> -o yaml로 실제 스키마를 확인해 맞춰주세요.# 1. Helm repo 추가
helm repo add headlamp https://kubernetes-sigs.github.io/headlamp/
helm repo update
# 2. RBAC 먼저 적용
kubectl apply -f headlamp-db-viewer-rbac.yaml
# 3. Headlamp 설치
helm install headlamp headlamp/headlamp \
-n headlamp --create-namespace \
-f headlamp-values.yaml
# 4. 플러그인 로컬 개발
npx --yes @kinvolk/headlamp-plugin create db-fleet
cd db-fleet && npm install
# src/index.tsx를 db-fleet-plugin/src/index.tsx 내용으로 교체
npm run start # 핫리로드 개발
npm run build && npm run package # 배포용 tarball 생성
6000+ namespace 규모라 특히 신경 쓴 부분: 지난 대화에서 나온 API 서버 부담 우려를 반영해, 대시보드 기본값을 "이상 인스턴스만 표시"로 뒀습니다. useList()는 watch 기반이라 API 서버 부담 자체는 크지 않지만, 브라우저에서 수천 개 row를 한 번에 렌더링하면 클라이언트가 느려지므로 필터링을 기본으로 넣었습니다.
또한 OIDC 로그인을 권장 설정으로 넣었습니다 — 다수 팀이 공유하는 6000+ namespace 환경에서 Headlamp 서비스 계정에 클러스터 전체 읽기 권한을 몰아주기보다, 사용자 각자의 그룹 RBAC이 그대로 적용되게 하는 게 안전합니다.