talswitcher
is a command-line tool for managing and switching between different Talos contexts. It simplifies the process of selecting a Talos context from multiple talosconfig files and updates the active configuration.
Precompiled binaries are available for various platforms. You can download the latest release from the GitHub Releases page.
Download the appropriate binary for your system and extract the archive.
Make the extracted binary executable:
chmod +x talswitcher
Move the binary to a directory in your PATH:
mv talswitcher /usr/local/bin/
talswitcher
is also available as a Docker container:
docker pull ghcr.io/mirceanton/talswitcher
Add the tap
brew tap mirceanton/taps
Install talswitcher
brew install talswitcher
Clone the repository:
git clone https://github.com/mirceanton/talswitcher
cd talswitcher
Build the tool:
If you have Taskfile installed, run:
task build
Otherwise, simply run the go build
command:
go build -o talswitcher
talswitcher
can be used both interactively and non-interactively.
If no context name is provided, talswitcher
will list all available contexts and prompt you to choose one:
talswitcher --talosconfig-dir /path/to/talosconfigs
You can also specify a context name directly:
talswitcher my-context --talosconfig-dir /path/to/talosconfigs
This will switch to my-context
immediately.
You can configure talswitcher
using environment variables or CLI flags. The following table outlines the available options:
Environment Variable | CLI Flag | Description | Acceptable Values | Default Value |
---|---|---|---|---|
TALSWITCHER_LOG_LEVEL |
--log-level |
Controls the logging verbosity level. | panic , fatal , error , warn , info , debug , trace |
info |
TALSWITCHER_LOG_FORMAT |
--log-format |
Controls the log output format. | json , text |
text |
TALOSCONFIG_DIR |
--talosconfig-dir |
Directory containing your talosconfig files. | Any valid directory path | N/A |
TALOSCONFIG |
N/A |
Path where the selected talosconfig will be copied. | Any valid file path | ~/.talos/config |
When both the environment variable and CLI flag are set, the CLI flag takes precedence.
Contributions are welcome! Please fork the repository, make your changes, and submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for more details.