ckt114 / kubeswitch

Kubernetes context and namspace switcher.
Apache License 2.0
16 stars 1 forks source link

Kubeswitch

Kubernetes context and namespace switching with style. Inspired by Kubie with additional features that Kubie lacks.

Prerequisites

Installation

Download

You can download Kubeswitch from releases page.

MacOS

$ brew install ckt114/tap/kubeswitch

Build

You can build Kubeswitch by running the following commands.

$ git clone https://github.com/ckt114/kubeswitch
$ cd kubeswitch
$ make
$ sudo make install

Default Configuration

Install default configuation to as $HOME/.kubeswitch.yaml.

$ make install-config

Shell Completion

Bash

$ make bash-completion

ZSH

$ make zsh-completion

Fish

$ make fish-completion

Usage

Without Shell Completion

# Switching context. Use context or ctx commands.
$ kubeswitch ctx [ENTER]
? Select context. / to search:
    aws-east1
    aws-west1
    k3s
  ▸ kind

# Switching namespace. Use namespace or ns commands.
(kind|default) $ kubeswitch ns [ENTER]
? Select namespace. / to search:
    argocd
    default
  ▸ jenkins
    kube-node-lease
    kube-public
    kube-system
(kind|jenkins) $

With Shell Completion

# Switching context. Use context or ctx commands.
$ kubeswitch ctx [TAB]
aws-east1  aws-west1   k3s  kind

# Switching namespace. Use namespace or ns commands.
(kind|default) $ kubeswitch ns [TAB]
argocd  default  jenkins  kube-node-lease  kube-public  kube-system

Configuration

Kubeswitch default config file is $HOME/.kubeswitch.yaml. Use -c or --config flags or KUBESWITCH_CONFIG environment variable to override default config file. The following keys are used by Kubeswitch

Shell Prompt

Using shell prompt integration will greatly help knowing which Kubernetes context and namespace you're currently interacting with.

Bash and ZSH

Fish