Faster way to switch between clusters and namespaces in kubectl
Go to file
Ahmet Alp Balkan 0141d66224
Support "kubectx NAME=." to rename current-context
Fixes #24.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2018-04-02 23:52:18 -07:00
completion Add fish completions for kubectx and kubens 2018-01-17 23:23:53 -08:00
img Add GIFs to README.md 2017-10-24 12:32:22 -07:00
CONTRIBUTING.md Add {README,CONTRIBUTING}.md 2017-03-29 00:30:12 -07:00
kubectx Support "kubectx NAME=." to rename current-context 2018-04-02 23:52:18 -07:00
kubens separate local declarations and function calls 2018-04-02 22:20:35 -07:00
LICENSE Initial import 2017-03-28 17:24:14 -07:00
README.md Merge pull request #32 from shiroyasha/installation-steps-linux 2018-03-30 10:26:18 -07:00

This repository provides both kubectx and kubens tools.

kubectx help you switch between clusters back and forth: kubectx demo GIF

kubens help you switch between Kubernetes namespaces smoothly: kubens demo GIF

kubectx(1)

kubectx is an utility to manage and switch between kubectl(1) contexts.

USAGE:
  kubectx                   : list the contexts
  kubectx <NAME>            : switch to context <NAME>
  kubectx -                 : switch to the previous context
  kubectx <NEW_NAME>=<NAME> : rename context <NAME> to <NEW_NAME>
  kubectx -h,--help         : show this message

Usage

$ kubectx minikube
Switched to context "minikube".

$ kubectx -
Switched to context "oregon".

$ kubectx -
Switched to context "minikube".

$ kubectx dublin=gke_ahmetb_europe-west1-b_dublin
Context "dublin" set.
Aliased "gke_ahmetb_europe-west1-b_dublin" as "dublin".

kubectx supports Tab completion on bash/zsh/fish shells to help with long context names. You don't have to remember full context names anymore.


kubens(1)

kubens is an utility to switch between Kubernetes namespaces.

USAGE:
  kubens                    : list the namespaces
  kubens <NAME>             : change the active namespace
  kubens -                  : switch to the previous namespace
  kubens -h,--help          : show this message

Usage

$ kubens kube-system
Context "test" set.
Active namespace is "kube-system".

$ kubens -
Context "test" set.
Active namespace is "default".

kubens also supports Tab completion on bash/zsh/fish shells.


Installation

macOS:

🎊 Use the Homebrew package manager:

brew install kubectx

This command will set up bash/zsh/fish completion scripts automatically.

  • Running brew install with --with-short-names will install tools with names kctx and kns to prevent prefix collision with kubectl name.

  • If you like to add context/namespace info to your shell prompt ($PS1), I recommend trying out kube-ps1.

Linux:

Since kubectx/kubens are written in Bash, you should be able to instal them to any POSIX environment that has Bash installed.

  • Download the kubectx, and kubens scripts.
  • Either:
    • save them all to somewhere in your PATH,
    • or save them to a directory, then create symlinks to kubectx/kubens from somewhere in your PATH, like /usr/local/bin
  • Make kubectx and kubens executable (chmod +x ...)
  • Figure out how to install bash/zsh/fish completion scripts.

Example installation steps:

sudo git clone https://github.com/ahmetb/kubectx /opt/kubectx
sudo ln -s /opt/kubectx/kubectx /usr/local/bin/kubectx
sudo ln -s /opt/kubectx/kubens /usr/local/bin/kubens

Users

What are others saying about kubectx?
“Thank you for kubectx & kubens - I use them all the time & have them in my k8s toolset to maintain happiness :) ” @pbouwer
“I can't imagine working without kubectx and especially kubens anymore. It's pure gold.” @timoreimann
“I'm liking kubectx from @ahmetb, makes it super-easy to switch #Kubernetes contexts [...]”@lizrice
“Also using it on a daily basis. This and my zsh config that shows me the current k8s context 😉 @puja108
“Lately I've found myself using the kubens command more than kubectx. Both very useful though :-)” @stuartleeks
“yeah kubens rocks!” @embano1
“Special thanks to Ahmet Alp Balkan for creating kubectx, kubens, and kubectl aliases, as these tools made my life better.” @strebeld

If you liked kubectx, you may like my kubectl-aliases project, too.


Disclaimer: This is not an official Google product.

Stargazers over time

Stargazers over time