Skip to content

[feature]: add live cluster status indicators to VSCode extension Clusters sidebar #3131

@github-actions

Description

@github-actions

User Story

As a developer using the KSail VSCode extension,
I want real-time cluster health indicators in the Clusters sidebar,
So that I can see pod counts, reconciliation state, TTL countdown, and per-distribution health without switching to a terminal.

Context

The Weekly Roadmap — March 16, 2026 identifies VSCode extension live cluster status as a "Next" priority:

A dedicated VSCode extension docs page exists (shipped via #3071 in v5.59.0). Tilt and DevSpace have real-time dashboards; deepens editor integration without CLI changes. Medium complexity.

Tilt and DevSpace both offer real-time resource status views in their editor integrations. The KSail VSCode extension currently provides cluster lifecycle commands (create/update/delete/start/stop) but lacks real-time status visibility. A live status panel would significantly deepen the editor integration and reduce the need to switch to a terminal for cluster health checks.

The extension has a src/ TypeScript source structure under vsce/. Enum options are already populated dynamically from KSail MCP tool schemas (with fallback hardcoded values).

Approach

  1. Design the status data model — define what fields to display per cluster:
    • Cluster name and distribution
    • Overall health (healthy / degraded / unknown)
    • Pod count (running / total)
    • GitOps reconciliation state (Flux Kustomization status or ArgoCD Application sync state)
    • TTL countdown (if --ttl was set at creation)
    • Provider info
  2. Add a status polling mechanism — use ksail cluster info (via MCP cluster_read tool or direct CLI invocation) to fetch status on a configurable interval (e.g., 30s).
  3. Update the Clusters tree view — display health icons and status strings in the existing sidebar tree view provider.
  4. Show detailed status on cluster selection — clicking a cluster in the sidebar opens a WebView panel with richer status information.
  5. Handle offline/disconnected state gracefully — clusters without reachable kubeconfig context show a "disconnected" indicator.

Key files:

  • vsce/src/ — TypeScript extension source
  • vsce/package.json — extension manifest (tree view contribution points)
  • KSail MCP cluster_read tool — status data source

Acceptance Criteria

  • Clusters sidebar shows a health indicator icon per cluster (healthy 🟢 / degraded 🟡 / unknown ⚪)
  • Pod counts (running/total) displayed per cluster in the sidebar
  • GitOps reconciliation state shown (Flux Kustomization sync status or ArgoCD Application sync)
  • TTL countdown displayed for clusters created with --ttl
  • Status refreshes automatically on a configurable interval (default 30s)
  • Disconnected clusters (kubeconfig unreachable) show a clear "disconnected" state
  • npm run compile passes with no TypeScript errors
  • No regressions in existing extension commands

Generated by Daily Plan ·

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions