mirror of
https://github.com/lukaszraczylo/kportal.git
synced 2026-06-30 05:44:37 +00:00
62483f9475
docs/index.html (kportal.raczylo.com):
- Features grid gains Bulk Generate, Sensitive Header Redaction,
Verified Installer cards; Headless card subtext clarified to
'logs to stderr'.
- Keybindings: 'a' -> 'n' for Add (matches real binding).
- Quick Install card notes SHA-256 + optional cosign verification
and DRY_RUN / SKIP_COSIGN env vars.
- New Bulk Generate usage tile with --dry-run hint; Headless tile
redirects stderr.
- HTTP Traffic Logging card mentions automatic header redaction
and the wizard 'h' toggle.
README.md:
- install.sh note expanded with DRY_RUN/SKIP_COSIGN table.
- HTTP Traffic Logging section gains 'Toggling per-forward
logging', 'Header redaction', and 'Advanced configuration'
examples.
- Headless mode clarified to log to stderr (2>kportal.log).
- Troubleshooting note on accepted context-name characters.
WIZARD_USAGE.md:
- Add binding corrected from 'a' to 'n'; 'e' (edit) row added.
- 'h' httpLog toggle and Tab focus switch documented.
- New 'Edit Forward Wizard' section noting same-port allowed and
advanced httpLog preserved.
- Esc-cancels-delete behaviour clarified.
CHANGELOG.md: [Unreleased] populated with Added / Changed / Fixed
entries for this session's user-facing work, dated 2026-05-06.
.kportal.yaml example: inline 'httpLog: true' comment on one
forward as a usage hint.
116 lines
2.8 KiB
Markdown
116 lines
2.8 KiB
Markdown
# Interactive Wizards
|
||
|
||
kportal includes wizards for adding, editing, and removing port forwards from the running UI.
|
||
|
||
## ⌨️ Quick Reference
|
||
|
||
| Key | Action |
|
||
|-----|--------|
|
||
| `n` | Add new forward |
|
||
| `e` | Edit selected forward |
|
||
| `d` | Delete forwards |
|
||
|
||
## ➕ Add Forward Wizard
|
||
|
||
Press `n` from the main view to start the wizard.
|
||
|
||
### Steps
|
||
|
||
1. **Context** - Select Kubernetes context
|
||
2. **Namespace** - Select namespace
|
||
3. **Resource Type** - Choose pod (prefix), pod (selector), or service
|
||
4. **Resource** - Enter prefix, selector, or select service
|
||
5. **Remote Port** - Enter port on the resource
|
||
6. **Local Port** - Enter local port (validates availability)
|
||
7. **Confirm** - Review, optionally add an alias, and toggle HTTP logging
|
||
|
||
### Navigation
|
||
|
||
| Key | Action |
|
||
|-----|--------|
|
||
| `↑↓` / `j/k` | Navigate options |
|
||
| `Enter` | Confirm and proceed |
|
||
| `Esc` | Go back / Cancel |
|
||
| `Ctrl+C` | Cancel immediately |
|
||
| `h` | Toggle HTTP traffic logging (confirmation step, when alias not focused) |
|
||
| `Tab` | Switch focus between alias field and buttons (confirmation step) |
|
||
|
||
## ✏️ Edit Forward Wizard
|
||
|
||
Press `e` on a selected row to edit it. The wizard reuses the add flow with values
|
||
pre-filled. The local-port availability check skips the forward being edited, so
|
||
keeping the same local port is always allowed. Advanced `httpLog` settings
|
||
(`logFile`, `includeHeaders`, `maxBodySize`, `filterPath`) defined in YAML are
|
||
preserved when toggling `httpLog` with `h`.
|
||
|
||
## 🗑️ Delete Forward Wizard
|
||
|
||
Press `d` from the main view.
|
||
|
||
### Navigation
|
||
|
||
| Key | Action |
|
||
|-----|--------|
|
||
| `↑↓` / `j/k` | Navigate |
|
||
| `Space` | Toggle selection |
|
||
| `a` | Select all |
|
||
| `n` | Deselect all |
|
||
| `Enter` | Confirm deletion |
|
||
| `Esc` | Cancel (does not confirm deletion) |
|
||
|
||
## 🎯 Resource Selection
|
||
|
||
### Pod by Prefix
|
||
|
||
Enter app name prefix to match pods:
|
||
- `nginx` matches `nginx-deployment-abc123`
|
||
- `postgres` matches `postgres-statefulset-0`
|
||
|
||
### Pod by Selector
|
||
|
||
Use Kubernetes label syntax:
|
||
- `app=nginx`
|
||
- `app=nginx,env=prod`
|
||
|
||
Matching pods are shown in real-time.
|
||
|
||
### Service
|
||
|
||
Select from discovered services in the namespace.
|
||
|
||
## 🔄 Auto Hot-Reload
|
||
|
||
Changes are applied automatically:
|
||
1. Wizard writes to `.kportal.yaml` atomically
|
||
2. File watcher detects change (~100ms)
|
||
3. Manager reloads and starts forward
|
||
4. UI updates
|
||
|
||
## Error Handling
|
||
|
||
The wizards handle:
|
||
- Cluster unreachable - allows manual entry
|
||
- Port conflicts - shows which process is using the port
|
||
- Invalid selectors - real-time validation
|
||
- Duplicate ports - prevents conflicts
|
||
|
||
## 🐛 Troubleshooting
|
||
|
||
### Wizard not appearing
|
||
|
||
Verify cluster connectivity:
|
||
```bash
|
||
kubectl cluster-info
|
||
```
|
||
|
||
### Port validation delayed
|
||
|
||
Port checks run asynchronously. Wait briefly after typing.
|
||
|
||
### Changes not visible
|
||
|
||
Check:
|
||
1. `.kportal.yaml` was written correctly
|
||
2. No validation errors in file
|
||
3. kportal process is running
|