Skip to content

Ops-Talks/kubeidea

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Kube-IDEA

CI Docs Release Python Flet License Ruff

Kubernetes desktop IDE built with Python (Flet + Poetry).

Kube-IDEA is a cross-platform desktop application for operating Kubernetes clusters with a focus on lightweight UX, security (DevSecOps), and extensibility. It is written in Python, uses Poetry for dependency management, and renders a modern UI via Flet (Flutter).


Features (MVP scope)

Feature Description
Cluster explorer List Namespaces, Pods, Deployments, Services, Nodes; view details, events, and YAML
Logs Streaming logs with label/container filters; search; JSON/TXT export
Exec Remote shell (TTY/resize) in containers
Port-forward Service/Pod port-forwarding; active tunnel manager
Metrics CPU/Memory from metrics-server; optional Prometheus connector
RBAC Inspector Who-can-what analysis; SelfSubjectAccessReview simulation
YAML Editor Schema validation (cluster OpenAPI); diffs vs. live
Plugins Python entry-point based plugin system with host API

Architecture

+----------------------------- UI (Flet) ------------------------------+
|  Navigation     Panels     Logs/Term      YAML Editor     Metrics   |
+------------------------------|---------------------------------------+
                               v
                       +--------------+       +----------------+
                       |  Core App    |<----->|  Plugin Host   |
                       | (Python)     |       | (entry points) |
                       +------+-------+       +----------------+
                              |
    +-------------------------+-------------------------------+
    |                         |                               |
    v                         v                               v
[Kube Adapter]         [Observability]                 [Config & Sec]
- kubeconfig ctx       - metrics-server/Prom           - RBAC viewer
- CRUD resources       - events                        - Telemetry (opt-in)
- logs/exec/pf         - log aggregation               - Secrets handling

[CLI/Daemon optional]  [Store/Cache (SQLite)]  [Packaging/Updater]

Project structure

kube-idea/
├── pyproject.toml          # Poetry project definition & tool config
├── src/kubeidea/
│   ├── app.py              # Flet application entry point
│   ├── ui/                 # Flet views, routing, theming
│   │   ├── theme.py
│   │   ├── navigation.py
│   │   └── views/
│   │       └── home.py
│   ├── core/               # Application services, use cases
│   │   └── context.py
│   ├── kube/               # API clients, watchers, port-forward, exec
│   │   ├── client.py
│   │   └── resources.py
│   ├── metrics/            # metrics-server / Prometheus adapters
│   │   ├── server.py
│   │   └── prometheus.py
│   ├── plugins/            # Plugin host, SDK, lifecycle
│   │   └── host.py
│   ├── security/           # RBAC inspector, secrets handling
│   │   └── rbac.py
│   ├── config/             # Settings, kubeconfig manager
│   │   └── settings.py
│   └── utils/              # Logging, telemetry (opt-in), cache
│       └── logging.py
├── plugins/                # First-party sample plugins
├── tests/                  # pytest test suite
└── README.md

Getting started

Prerequisites

  • Python ≥ 3.11
  • Poetry ≥ 1.9 (pip install poetry)

Install dependencies

poetry install

Run in development mode

poetry run flet run src/kubeidea/app.py

Build desktop executables

poetry run flet build

Run tests

poetry run pytest

Lint & type-check

poetry run ruff check src/ tests/
poetry run mypy src/kubeidea/

Development flow

# Bootstrap
poetry install

# Run app (opens native window)
poetry run flet run src/kubeidea/app.py

# Quality checks
poetry run pytest
poetry run ruff check src/ tests/
poetry run mypy src/kubeidea/

Security (DevSecOps)

  • Locked dependencies (poetry.lock) for reproducible builds and SCA.
  • Linters & types: ruff, mypy in CI.
  • SBOM: CycloneDX generation planned; license policy.
  • Secrets: Never stored; use OS keyring provider.
  • RBAC: All actions respect SubjectAccessReview of the cluster.
  • Telemetry: 100 % opt-in, disabled by default, no sensitive data.

License

See LICENSE for details.


Documentation

Full documentation is available at https://ops-talks.github.io/kubeidea/.

To serve the docs locally:

poetry install --with docs
poetry run mkdocs serve

Releases & binaries

When a version tag (v*) is pushed, the release workflow builds desktop binaries for Linux, macOS, and Windows using flet build and attaches them to the GitHub Release. Download installers from the Releases page.