ckt114 / kubeswitch

Kubernetes context and namspace switcher.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Kubeswitch

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

Prerequisites

  • go 1.14+
  • make

Installation

Download

You can download Kubeswitch from releases page.

Build

You can build Kubeswitch by running the following commands.

$ git clone https://github.com/trankchung/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

  • kubeConfig - Kubernetes config file to merge into Kubeswitch session file KUBESWITCH_KUBECONFIG
  • configs - Array list of path patterns to search for Kubernetes config files
  • promptSize - Number of items to show for selection promptKUBESWITCH_PROMPTSIZE
  • noPrompt - Don't use selection prompt; print each item per lineKUBESWITCH_NOPROMPT
  • purge
    • days - Number of days to retain Kubeswitch session filesKUBESWITCH_PURGE_DAYS

Shell Prompt

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

Bash and ZSH

Fish

About

Kubernetes context and namspace switcher.

License:Apache License 2.0


Languages

Language:Go 92.3%Language:Makefile 4.8%Language:Shell 2.9%