Skip to content

Commit 2b1c345

Browse files
authored
sub menu search - workload view (#209)
1 parent eba9369 commit 2b1c345

20 files changed

Lines changed: 1761 additions & 114 deletions

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Added
11+
- Workload drill-down (#194): `Enter` on a graph workload group opens the
12+
workload list; `Enter` on a workload opens its detail — rollout status and
13+
replica health, containers with images, a pods table (phase, ready,
14+
restarts, age), and the workload's events. `l` streams a pod's logs
15+
(directly for a single pod, via a pod submenu otherwise), and Back walks
16+
the whole chain in reverse: logs → detail → list → graph. Read-only.
17+
- Submenu filtering and paging (#128): `/` filters `:ctx`/`:skin`/`:logs`
18+
menus with the same keys as the resource list (type to narrow, Enter to
19+
apply, Esc to cancel), PageUp/PageDown (or Ctrl+f/b) page through long
20+
menus, and `:` drops straight into command mode.
21+
22+
### Fixed
23+
- Submenu selections no longer scroll below the visible popup: the scroll is
24+
now reconciled at render time with the popup's actual height instead of a
25+
hardcoded estimate in the key handler.
26+
- Submenus (and the quit dialog) no longer hardcode black backgrounds or
27+
low-contrast title colors — they follow the active skin like every other
28+
overlay, fixing illegible popups across themes.
29+
- `l` now also works from the workload list: it fetches the workload and
30+
continues straight into its pod logs once loaded — and Back from those
31+
logs returns to wherever `l` was pressed (list or detail).
32+
1033
## [0.12.0] - 2026-07-14
1134

1235
### Changes\n- Version bump to 0.12.0

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ A [K9s](https://github.com/derailed/k9s)-inspired terminal UI for monitoring Flu
3333
- **YAML viewing** - Inspect full resource manifests
3434
- **Kubernetes Events** - Per-resource events in the describe view, plus a live `:events` feed for the current namespace or cluster
3535
- **Controller logs** - Stream any Flux controller pod's logs live with `:logs` (follow, search, bounded buffer)
36+
- **Workload drill-down** - Open a graph workload group to walk Deployments/StatefulSets/DaemonSets: rollout status, containers, pods, events, and pod logs
3637
- **Graph visualization** - Visualize resource relationships and dependencies (Kustomization, HelmRelease, etc.)
3738
- **Reconciliation history** - View reconciliation history for resources that track it
3839
- **Favorites** - Mark frequently accessed resources for quick access

docs/content/user-guide/_index.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,8 @@ When you type `:ctx` and press Enter without specifying a context name, flux9s d
138138

139139
The submenu appears as a centered overlay on top of the current view, making it easy to see and select your desired context without needing to remember exact names.
140140

141+
All submenus support **filtering with the same keys as the resource list**: press `/` to start filtering, type to narrow the list, `Enter` to apply the filter, and `Esc` to cancel it (a second `Esc` closes the menu). `PageUp`/`PageDown` (or `Ctrl+f`/`Ctrl+b`) page through long lists, and `:` closes the menu straight into command mode.
142+
141143
#### Theme Submenu (`:skin`)
142144

143145
When you type `:skin` and press Enter without specifying a theme name, flux9s displays an interactive menu of available themes with live preview.
@@ -228,6 +230,7 @@ The graph view displays:
228230
- `j` / `k` (or `` / ``) - Move the highlighted focus between nodes; the view scrolls to keep the focused node visible.
229231
- `Enter` - Open the focused node's resource in the detail view. Aggregate nodes (workload/resource groups) and external upstream URLs aren't directly openable.
230232
- `y` / `d` - View the focused node's YAML or describe output directly, including managed workloads (Deployments, Services, etc.).
233+
- `Enter` on a **workload group** - Drill into the workload list: `Enter` on a workload opens its detail (rollout status, containers and images, pods with restarts, events), and `l` streams a pod's logs. `Esc` walks back up the chain.
231234
- `Esc` / `Backspace` - Return to the graph (when you opened a view from it), then back to the resource list.
232235

233236
Focus starts on the resource you opened the graph from, so you can immediately walk its sources and dependencies.

src/constants.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@ pub const MAX_KUBE_EVENTS: usize = 1000;
1717
/// Cap on the controller log view's line buffer; oldest lines are evicted.
1818
pub const MAX_LOG_LINES: usize = 5000;
1919

20+
/// Selection jump for PageUp/PageDown (and Ctrl+f/Ctrl+b) inside submenus.
21+
/// A fixed jump rather than a "page": the popup's height varies and the
22+
/// scroll self-corrects at render time.
23+
pub const SUBMENU_PAGE_JUMP: usize = 10;
24+
2025
/// How many existing lines the log stream starts with (`tail_lines`) before
2126
/// following new output.
2227
pub const LOG_TAIL_LINES: i64 = 500;

src/kube/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ pub mod events;
1616
pub mod fetch;
1717
pub mod health;
1818
pub mod inventory;
19+
pub mod workloads;
1920

2021
#[allow(unused_imports)] // Public API re-exports used by lib consumers
2122
pub use api::{get_api_resource_with_fallback, get_gvk_for_resource_type};

0 commit comments

Comments
 (0)