Skip to main content

CLI tool to switch between multiple versions of istioctl

Project description

istioswitch

A cross-platform CLI tool for Windows, Linux, and macOS to switch between multiple versions of istioctl binaries easily. Inspired by tfswitch.

Features

  • Cross-Platform: Native support for Windows (x64), Linux (amd64, arm64), and macOS (Intel, Apple Silicon).
  • Standalone Binaries: No Python required! Download the executable and run it directly.
  • Automated Downloads: Fetches binaries directly from official Istio GitHub releases.
  • Auto-Detection: Detects the required Istio version from your current Kubernetes cluster (istiod image).
  • Shim Management: Automatically manages wrapper scripts injected into your PATH.
  • Caching: Caches downloaded versions locally to avoid repeated downloads.

Installation

Option 1: Download Standalone Binary (Recommended)

You can download the pre-compiled binary for your OS directly from the GitHub Releases page.

  1. Download the executable:
    • Windows: istioswitch-windows-amd64.exe (rename it to istioswitch.exe)
    • Linux: istioswitch-linux-amd64 (rename to istioswitch and chmod +x istioswitch)
    • macOS: istioswitch-darwin-amd64 (rename to istioswitch and chmod +x istioswitch)
  2. Place the executable in a directory that is in your system's PATH.

Option 2: Install via pip

If you prefer using Python, you can install the tool via pip:

pip install istioswitch

(Note: If not published on PyPI yet, clone the repo and run pip install .)

Post-installation Setup (Shim configuration)

To allow istioswitch to switch istioctl versions on the fly, it creates a "shim" (a small wrapper script) that needs to be accessible globally. You must add its bin directory to your PATH:

  • Windows (PowerShell):
    $env:PATH += ";$env:USERPROFILE\.istioswitch\bin"
    [System.Environment]::SetEnvironmentVariable("PATH", $env:PATH, [System.EnvironmentVariableTarget]::User)
    
  • Linux/macOS:
    export PATH="$HOME/.istioswitch/bin:$PATH"
    

(Add the Linux/macOS line to your ~/.bashrc or ~/.zshrc to make it persistent).

Usage

List available and cached versions:

istioswitch list

Install a specific version without switching to it:

istioswitch install 1.25.3

Use a specific version (will download and install it if missing):

istioswitch use 1.25.3

Show the currently active version:

istioswitch current

Detect Istio version from the current Kubernetes context and use it:

istioswitch detect

(Tip: You can pass a specific context using istioswitch detect --context my-cluster-ctx)

Uninstall a cached version to free up disk space:

istioswitch uninstall 1.24.6

Contributing

We follow GitHub Flow:

  • main is always stable.
  • Open a PR for any features/fixes from a feature/* or hotfix/* branch.
  • Squash merges are preferred to maintain a clean history.
  • Ensure all tests pass (pytest --cov). We maintain an 80% coverage minimum.

GitHub Branch Protection Rules (For Admins)

  • Require a Pull Request before merging to main.
  • Require status checks to pass (CI workflows).
  • Require at least 1 approving review.
  • No force pushes allowed on main.

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

istioswitch-0.3.1.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

istioswitch-0.3.1-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file istioswitch-0.3.1.tar.gz.

File metadata

  • Download URL: istioswitch-0.3.1.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for istioswitch-0.3.1.tar.gz
Algorithm Hash digest
SHA256 dbb14ea9fc98ae3e290781d4682f4ffff61bd8fe1fd44225c2a02cbe5b9651bc
MD5 7cc3c4157a9f4eb8b1f257002fd6a9f0
BLAKE2b-256 c5d5b676804c82ed51c904e3f2f98aaf51417d6b390d895c822d18d14fa6d210

See more details on using hashes here.

Provenance

The following attestation bundles were made for istioswitch-0.3.1.tar.gz:

Publisher: release-please.yml on crux85/istioswitch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file istioswitch-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: istioswitch-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for istioswitch-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0eb0868036492b0cdb1346538c1e7fb4b13b6936f9ad9531ea698d44b361dba7
MD5 a67630dd67554f7255dfb7e1047274c6
BLAKE2b-256 71db9866c4dedd302a38797e8ccb9ad8b4d533c1f4593a22e967340888403c58

See more details on using hashes here.

Provenance

The following attestation bundles were made for istioswitch-0.3.1-py3-none-any.whl:

Publisher: release-please.yml on crux85/istioswitch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page