Skip to content
/ kore Public

Kubernetes Orchestration and Resource Explorer - A lightweight, open-source Kubernetes IDE built with Tauri v2 and Svelte 5.

License

Notifications You must be signed in to change notification settings

DEVtheOPS/kore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

63 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Kore

Kubernetes Orchestration and Resource Explorer - A lightweight, open-source Kubernetes IDE built with Tauri v2 and Svelte 5.

Kore

Features

  • πŸš€ Blazing Fast: Built on Rust and Tauri, consuming a fraction of the RAM of Electron-based competitors.
  • 🎨 Theming System:
    • Kore (Default - Kubernetes Blue)
    • Kore Light
    • Dracula
    • Alucard (Light Dracula)
    • Rusty & Rusty Light (Legacy)
  • ☸️ Multi-Cluster Management:
    • Import kubeconfigs from files or folders with automatic context extraction.
    • Each cluster stored independently with UUID-based routing.
    • SQLite database for cluster metadata (name, icon, description, tags).
    • Bookmark favorite clusters in the icon sidebar for quick access.
    • Drag-and-drop to reorder bookmarks.
  • ⚑ Real-time Updates: Kubernetes resources update in real-time using efficient watch streams.
  • πŸ“Š Advanced Data Tables:
    • Sorting, Filtering, and Column Reordering.
    • Multi-selection and Batch Actions (e.g., Bulk Delete).
    • Persistent user preferences for column visibility.
  • πŸ› οΈ Workload Management: View, Edit, Log, Shell, and Delete Pods (more resources coming soon).

Tech Stack

Project Structure

β”œβ”€β”€ src/                         # Svelte Frontend
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ ui/              # Reusable UI components
β”‚   β”‚   β”‚   β”œβ”€β”€ IconSidebar.svelte    # Left-most navigation
β”‚   β”‚   β”‚   β”œβ”€β”€ ResourceSidebar.svelte # Cluster resource navigation
β”‚   β”‚   β”‚   └── ClusterImportModal.svelte
β”‚   β”‚   └── stores/
β”‚   β”‚       β”œβ”€β”€ clusters.svelte.ts     # Cluster CRUD operations
β”‚   β”‚       β”œβ”€β”€ activeCluster.svelte.ts # Current cluster state
β”‚   β”‚       β”œβ”€β”€ bookmarks.svelte.ts    # Sidebar bookmarks
β”‚   β”‚       └── settings.svelte.ts     # App settings
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ +page.svelte              # Cluster overview
β”‚   β”‚   β”œβ”€β”€ cluster/[id]/             # Cluster-scoped routes
β”‚   β”‚   β”‚   β”œβ”€β”€ pods/
β”‚   β”‚   β”‚   β”œβ”€β”€ deployments/
β”‚   β”‚   β”‚   β”œβ”€β”€ settings/             # Cluster settings
β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   └── settings/                 # App settings
β”‚   └── ...
β”œβ”€β”€ src-tauri/            # Rust Backend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ cluster_manager.rs # SQLite cluster storage
β”‚   β”‚   β”œβ”€β”€ import.rs          # Kubeconfig import & extraction
β”‚   β”‚   β”œβ”€β”€ k8s.rs             # Kubernetes API & Watchers
β”‚   β”‚   └── ...
β”‚   └── ...

Development

Prerequisites

Setup

  1. Install dependencies:

  2. pnpm install
    cd src-tauri && cargo fetch
  3. Run Development Server:

    pnpm tauri dev

Building for Production

pnpm tauri build

CI/CD & Releases

Kore uses GitHub Actions for automated testing and releases.

Workflows

  • test.yml: Runs on PRs and pushes to main. Performs linting, type checking, and tests on all platforms.
  • release.yml: Triggered on tag pushes (v*). Builds signed binaries for all platforms and creates a GitHub release.
  • pages.yml: Deploys the landing page and update manifest to GitHub Pages.

Setting Up Auto-Updates

The Tauri updater requires signed binaries. To set this up:

  1. Generate signing keys:

    pnpm tauri signer generate -w ~/.tauri/kore.key
    

    This creates a private key (kore.key) and outputs the public key.

  2. Update the public key in src-tauri/tauri.conf.json:

    "plugins": {
      "updater": {
        "pubkey": "YOUR_PUBLIC_KEY_HERE",
        ...
      }
    }
  3. Add GitHub secrets (Settings β†’ Secrets β†’ Actions):

    • TAURI_SIGNING_PRIVATE_KEY: Contents of ~/.tauri/kore.key
    • TAURI_SIGNING_PRIVATE_KEY_PASSWORD: Your key password (if set)
  4. Set up the gh-pages branch (orphan branch for the website):

    # Create orphan branch
    git checkout --orphan gh-pages
    git rm -rf .
    
    # Add your landing page (index.html, etc.)
    echo '<!DOCTYPE html><html>...</html>' > index.html
    git add index.html
    git commit -m "Initial gh-pages"
    git push origin gh-pages
    
    # Return to main
    git checkout main

    Working on the site with a worktree:

    git worktree add ../kore-pages gh-pages
    cd ../kore-pages
    # Edit site files, commit, push
  5. Enable GitHub Pages (Settings β†’ Pages):

    • Source: Deploy from a branch
    • Branch: gh-pages / / (root)

Creating a Release

  1. Update the version in src-tauri/Cargo.toml and src-tauri/tauri.conf.json

  2. Commit the changes

  3. Create and push a tag:

    git tag v1.0.0
    git push origin v1.0.0

The release workflow will automatically build all platforms and publish to GitHub Releases and Pages.

Running Tests & Coverage

Frontend (Svelte/TS)

# Run Unit Tests
pnpm test:unit

# Run Unit Tests with Coverage
pnpm test:coverage

# Run Playwright E2E Tests
pnpm test

Backend (Rust)

# Run Unit Tests
cd src-tauri
cargo test

# Run Coverage (requires cargo-llvm-cov)
# Install: cargo install cargo-llvm-cov
cargo llvm-cov

See tests/README.md for more details.

Configuration

Kore stores its configuration in:

  • macOS/Linux: ~/.kore/
  • Windows: C:\Users\<User>\.kore\

Storage structure:

~/.kore/
β”œβ”€β”€ clusters.db              # SQLite database (cluster metadata)
β”œβ”€β”€ kubeconfigs/             # Extracted single-context configs
β”‚   β”œβ”€β”€ <uuid-1>.yaml
β”‚   β”œβ”€β”€ <uuid-2>.yaml
β”‚   └── ...
└── bookmarks.json           # Sidebar bookmarks

About

Kubernetes Orchestration and Resource Explorer - A lightweight, open-source Kubernetes IDE built with Tauri v2 and Svelte 5.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors 2

  •  
  •