Context
This release focuses on improvements to kftui
Users needed to manually recreate port forwarding configurations each time they switched projects since kftui required setup through the TUI interface. Sharing configurations between team members meant exporting JSON files manually or using the desktop app's GitHub sync feature.
New Features
Added CLI arguments for managing forward configurations and implemented inline and stdin configuration support to handle configuration loading without the interactive TUI. The implementation supports multiple configuration sources and includes memory mode for temporary setups.
CLI now accepts configurations from files, GitHub repositories, inline JSON, and standard input. GitHub integration works with both public and private repositories.
# Load from local file
kftui --configs-path config.json --auto-start
# Load from GitHub repository
kftui --github-url https://github.com/user/repo --configs-path configs/dev.json --auto-start
# Pass configurations inline
kftui --json '[{"service":"web","local_port":8080,"remote_port":80}]' --auto-start
# Pipe from other tools
curl -s https://api.example.com/configs | kftui --stdin --auto-start
Configuration Management
Configurations can run temporarily in memory mode or persist with the --save
flag. Memory mode activates when using configuration sources without --save
, keeping setups temporary without modifying local state.
# Save configurations for future use
kftui --configs-path config.json --save --auto-start
# Run temporarily without saving to kftray configs
kftui --json '[{"service":"api","local_port":3000}]' --auto-start
# Load and save GitHub configurations locally
kftui --github-url https://github.com/team/configs --configs-path k8s/prod.json --save
How It Works
The CLI validates configuration sources and determines whether to use memory or file mode based on the --save
flag. After loading configurations, port forwards can be managed through the TUI interface or run automatically with --auto-start
.
# Load temporary configs from json and start
kftui --github-url https://github.com/company/k8s-configs --configs-path project-a/dev.json --auto-start
# Load temporary configs from stdin and start
echo '$CONFIG_JSON' | kftui --stdin --auto-start
# Or
kftui --json '[
{"service":"api","local_port":8080,"remote_port":80,"namespace":"dev"},
{"service":"db","local_port":5432,"remote_port":5432,"namespace":"dev"}
]' --auto-start
The previous workflow of configuring through the interface continues to work as before.