From 9521f47377e70eafdaec1e8ae4df2ea3c879c6a9 Mon Sep 17 00:00:00 2001 From: Stefan Koelle Date: Sun, 9 Aug 2026 22:32:27 +0200 Subject: [PATCH] Fix SPEC.md and README.md for current codebase - SPEC.md: Windows is now a fully supported platform (not secondary) - SPEC.md: Remove outdated 'manual pane handling' claim for Windows - SPEC.md: Update non-functional requirements (Linux/macOS/Windows) - README.md: Remove duplicate 'This downloads...' paragraph - README.md: Use --namespace instead of -n in k9s examples --- README.md | 7 ++----- SPEC.md | 19 +++++++++---------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index b9f244f..67e1586 100644 --- a/README.md +++ b/README.md @@ -42,9 +42,9 @@ See [SPEC.md](SPEC.md) for the full requirements and design rationale, and | -> 1) Quit 2) beta 3) prod | | each with: a) Secrets sync b) Redeploy | +--------------------------------------------------+ -| k9s --context -n | +| k9s --context --namespace --command pods | +--------------------------------------------------+ -| k9s --context -n | +| k9s --context --namespace --command pods | +--------------------------------------------------+ ``` @@ -95,9 +95,6 @@ curl -fsSL https://raw.githubusercontent.com/skoelle/kctl-tui/main/install.sh | irm https://raw.githubusercontent.com/skoelle/kctl-tui/main/install.ps1 | iex ``` -This downloads the latest release binary for your architecture from -GitHub Releases and installs it to your PATH. - This downloads the latest release binary for your OS/architecture from GitHub Releases and installs it to `/usr/local/bin/kctl-tui`. diff --git a/SPEC.md b/SPEC.md index 577f95a..08154cc 100644 --- a/SPEC.md +++ b/SPEC.md @@ -7,9 +7,10 @@ work, bundling the most common workflows currently done via long `kubectl`/`k9s`/`aws-cli` commands, operable through a text UI (arrow keys, Esc) instead of long typed commands. -Target platform: **Linux / WSL** (primary usage scenario, since split -panes require a real terminal multiplexer). Native Windows (without WSL) -is possible but with reduced split-view functionality (see 3.6). +Target platform: **Linux / WSL / Windows** (primary usage scenario, since +split panes require a real terminal multiplexer). On Windows, use +[psmux](https://github.com/marlocarlo/psmux) as tmux-compatible +multiplexer. **Technology decision: Go + Bubble Tea** (see section 5). @@ -177,11 +178,11 @@ Alternatively, run kctl-tui inside WSL with standard `tmux`. ## 4. Non-functional requirements -- **Primary platform Linux/WSL**, secondary native Windows (via psmux). +- **Platforms**: Linux, macOS, Windows (via psmux or WSL). - **Single-binary distribution** without external runtime dependency (Go provides this natively). -- **External dependencies**: `kubectl` mandatory; `tmux`, `k9s`, `aws-cli` - depending on the action used. +- **External dependencies**: `kubectl` mandatory; `tmux`/`psmux`, `k9s`, + `aws-cli` depending on the action used. - **Low startup time**, noticeably faster than the current `kubens` experience. - **No destructive actions without confirmation** (redeploy, force-sync). @@ -243,16 +244,14 @@ Rejected options (see discussion history): - These fixes are a prerequisite before the tool can be meaningfully tested, since it builds directly on `kubectl config`. -## 8. Open items / out of scope (v1) +## 8. Open items / out of scope - No automatic label setup for namespaces (migration is a separate, one-time task). -- Split view v1 fixed at 2 status panes + 1 control pane (3 panes total). +- Split view fixed at 2 status panes + 1 control pane (3 panes total). - No RBAC/permission checks before executing sensitive actions — the tool assumes existing kubectl permissions. - Configuration file format (`config.yaml`) is defined and implemented; concrete label keys, context names, and namespace names are project-specific and belong exclusively in the user's local, unversioned configuration, not in this document or the source code. -- Native Windows (without WSL) remains a secondary platform with manual - pane handling instead of an automated tmux lifecycle.