프로젝트 소개
ClusterDeck은 자주 재생성되는 VM 및 Kubernetes 환경에 대한 로컬 접속 경로를 안정적으로 유지하기 위한 macOS 중심 데스크톱 도구입니다.
일반적인 Kubernetes 관리자 콘솔이 아니라, 원격 환경을 발견하고 접속 가능한 상태로 만드는 workstation access layer에 집중합니다. 사용자는 매번 달라지는 IP를 기억하는 대신 Profile 이름을 유지하고, ClusterDeck이 SSH와 kubeconfig 경계를 정리합니다.
IP / Host Discovery
↓
SSH Connectivity
↓
SSH Bootstrap (optional)
↓
SSH Alias / ProxyJump
↓
Remote kubeconfig Fetch
↓
kubeconfig Normalization
↓
Local Profile
↓
Kubernetes Connectivity Check핵심 설계
- Tauri 2 + Rust: SSH orchestration, filesystem, process execution, kubeconfig 처리 등 로컬 시스템 작업의 보안 경계를 backend에 둡니다.
- React + TypeScript: Profile, Host, Connect, Status 중심의 간결한 데스크톱 UI를 제공합니다.
- Native OpenSSH 우선: 자체 SSH stack을 다시 구현하지 않고
ssh,scp,ssh-copy-id, ProxyJump 같은 검증된 동작을 활용합니다. - Profile 중심 모델: IP 주소보다 사람에게 안정적인 environment identity를 유지합니다.
- ClusterDeck-owned config: 사용자 전체
~/.ssh/config를 덮어쓰지 않고~/.clusterdeck/아래의 생성 파일만 소유합니다.
보안 경계
초기 비밀번호는 bootstrap용으로만 사용하고 저장하거나 로그에 남기지 않는 것을 원칙으로 합니다. 생성 kubeconfig는 제한된 파일 권한을 사용하고, 사용자 관리 SSH/Kubernetes 설정을 파괴적으로 덮어쓰지 않습니다.
ClusterDeck이 ~/.clusterdeck/ 바깥에서 실제로 건드리는 것은 세 가지뿐이며, 전부 opt-in이거나 자기 소유 블록만 씁니다.
- 로그인 키체인 — 클러스터 내부 CA를 신뢰하도록 선택하면(엔드포인트별 opt-in, 또는 Settings → Trusted CAs) System이 아닌 로그인 키체인에 SSL/TLS 신뢰 정책 범위로만 추가합니다. Keychain Access.app에서 확인하거나 ClusterDeck에서 직접 해지할 수 있습니다.
/etc/hosts— 기본 off, Profile별 opt-in. 켜면# >>> ClusterDeck BEGIN (profile: <id>) >>>마커로 감싼 자기 블록만 admin 권한 프롬프트로 씁니다.~/.ssh/config—Include ~/.clusterdeck/ssh/*.conf한 줄만 추가하고, 실제 per-profile SSH 옵션은 그 include 디렉터리 안에 둡니다.
다운로드
v0.1.0이 macOS(Apple Silicon) .dmg로 배포됩니다. Apple Developer ID 서명이 아직 없어 최초 실행 시 "확인되지 않은 개발자" 경고가 뜨며, 앱을 우클릭 후 열기로 실행해야 합니다.
MVP 범위
- Profile CRUD
- Multi-host discovery와 SSH bootstrap
- SSH alias 생성
- Bastion / ProxyJump
- Remote kubeconfig fetch 및 normalization
- Profile별 kubeconfig 저장
- Kubernetes connectivity verification
- 최소 클릭 중심 macOS UI
Cross-platform 지원과 provider-specific discovery는 core workflow 안정화 이후 범위입니다.
개발
pnpm install
pnpm tauri dev
pnpm build
cargo check --manifest-path src-tauri/Cargo.toml소스 실행이 여전히 권장 경로이며, .dmg 배포는 개발용 실행을 대체하지 않는 보조 경로입니다.
상세 문서
| 주제 | 문서 | 내용 |
|---|---|---|
| Overview | 개요 | 문제 정의, 범위, Profile 중심 모델 |
| Architecture | 아키텍처 | Tauri/Rust, SSH, kubeconfig 경계 |
| Getting Started | 시작하기 | 개발 환경과 기본 연결 흐름 |
프로젝트 관계
Local VM / Kubernetes labs
↓
ClusterDeck
↓
SSH / Bastion / kubeconfig access
↓
Narwhal · Beluga · test clusters