Skip to content

[Repo Assist] [feature]: add eBPF traffic observability via Hubble (ksail workload network) #4778

Description

@github-actions

🤖 This issue was created by Repo Assist from the weekly roadmap.

User Story

As a KSail user running Cilium CNI,
I want a ksail workload network command that exposes Hubble traffic observability,
So that I can inspect live cluster traffic flows, debug connectivity issues, and visualize service dependencies without leaving the terminal.

Context

KSail already supports Cilium as a CNI option. Cilium ships with Hubble — a built-in eBPF-powered observability layer — but KSail does not currently expose it. Cilium/Hubble integration would:

  • Close a significant UX gap vs. tools like Lens and k9s that surface network traffic
  • Leverage an already-embedded dependency (Cilium CNI installer) with no new external deps
  • Provide --format json output for AI/MCP consumption (structured flows → ksail chat context)

Identified in Weekly Strategy #4776 as a "Later" roadmap item.

Acceptance Criteria

  • ksail workload network subcommand added (or ksail workload observe)
  • When Cilium CNI is active and Hubble is enabled, streams or queries flow data via the Hubble API (gRPC observer.ObserverClient)
  • Supports at least --namespace, --pod, --protocol, and --format json flags
  • Graceful error when Cilium/Hubble is not the active CNI or Hubble is disabled
  • Unit tests for command flag parsing; integration test notes in PR (requires Cilium cluster)
  • Documentation added under docs/src/content/docs/ for the new command

Notes

  • Complexity: Medium — Hubble gRPC client is in github.com/cilium/cilium (already in go.mod via Cilium CNI installer); no new dependencies expected
  • Related: Cilium CNI installer in pkg/svc/installer/; Hubble relay is deployed by the Cilium Helm chart when hubble.relay.enabled=true
  • The Hubble Observer API (hubble/api/v1/flow/flow.pb.go) provides structured Flow objects ideal for JSON serialization and AI consumption

Generated by 🤖 Repo Assist, see workflow run.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status
    ✅ Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions