Skip to content

Repository files navigation

ClusterCompass

ClusterCompass App Icon

ClusterCompass is a macOS Kubernetes desktop GUI that wraps kubectl for fast cluster inspection and day-to-day operations.

The current focus is Google Kubernetes Engine (GKE), with support for non-GKE clusters coming soon.

Highlights

  • Native SwiftUI macOS app
  • Multi-context support (switch Kubernetes contexts from the UI)
  • Namespace filtering (including all-namespaces views)
  • Live resource browsing with refresh and optional auto-refresh
  • Per-resource detail views across core and common extension APIs
  • Pod log streaming in-app
  • Open terminal shell sessions into containers via kubectl exec
  • YAML manifest inspection
  • Helm release values and Helm drift checks for managed resources

Supported Resource Types

  • Pods
  • Services
  • Deployments
  • CronJobs
  • Nodes
  • ConfigMaps
  • Secrets
  • Ingresses
  • DaemonSets
  • Gateways (Gateway API)
  • Certificates (cert-manager)
  • PersistentVolumeClaims
  • PersistentVolumes
  • VolumeAttachments
  • Endpoints
  • ResourceQuotas
  • HorizontalPodAutoscalers

Requirements

  • macOS (Apple Silicon or Intel)
  • Xcode 15+
  • kubectl installed and available in PATH
  • For GKE clusters:
    • Google Cloud SDK installed
    • gke-gcloud-auth-plugin available
  • Optional (for Helm features):
    • helm installed and available in PATH

Install dependencies with Homebrew

brew install kubectl
brew install --cask google-cloud-sdk
brew install helm

After installing Google Cloud SDK, ensure gke-gcloud-auth-plugin is available. In ClusterCompass settings, point Google Cloud SDK Path to your google-cloud-sdk directory if needed.

Running Locally

  1. Open ClusterCompass.xcodeproj in Xcode.
  2. Select the ClusterCompass scheme.
  3. Build and run the app.

GKE Quick Start

  1. Authenticate with Google Cloud SDK.
  2. Fetch cluster credentials:
gcloud container clusters get-credentials CLUSTER_NAME --region REGION --project PROJECT_ID
  1. Launch ClusterCompass.
  2. Select your context and namespace from the app UI.

Notes

  • ClusterCompass executes kubectl and helm as external processes.
  • If kubectl is not found in the app, verify your PATH and Settings diagnostics.
  • Some resource types are optional and return empty if their CRDs are not installed.

Roadmap

  • Expanded non-GKE cluster support
  • Additional resource actions and workflows
  • More observability and troubleshooting views

Project Structure

  • ClusterCompass/: SwiftUI application source
  • ClusterCompass.xcodeproj/: Xcode project
  • ClusterCompassTests/: Unit tests
  • ClusterCompassUITests/: UI tests

License

This project is licensed under the MIT License. See LICENSE for details.

About

Native macOS Kubernetes GUI / kubectl wrapper for Google Kubernetes Engine

Topics

Resources

Stars

Watchers

Forks

Releases

Contributors

Languages