Now with OpenShift support
This repository provides both kubectx
and kubens
tools for working with kubernetes clusters, and octx
and ocns
tools for working with OpenShift clusters.
kubectx
helps you switch between clusters back and forth:
kubens
helps you switch between Kubernetes namespaces smoothly:
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 <NEW_NAME>=. : rename current-context to <NEW_NAME>
kubectx -d <NAME> : delete context <NAME> ('.' for current-context)
(this command won't delete the user/cluster entry
that is used by the context)
$ 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 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 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.
octx is an utility to manage and switch between oc(1) contexts.
USAGE:
octx : list the contexts
octx <NAME> : switch to context <NAME>
octx - : switch to the previous context
octx <NEW_NAME>=<NAME> : rename context <NAME> to <NEW_NAME>
octx <NEW_NAME>=. : rename current-context to <NEW_NAME>
octx -d <NAME> : delete context <NAME> ('.' for current-context)
(this command won't delete the user/cluster entry
that is used by the context)
$ octx minishift
Switched to context "minishift".
$ octx -
Switched to context "oregon".
$ octx -
Switched to context "minishift".
$ octx dublin=gke_ahmetb_europe-west1-b_dublin
Context "dublin" set.
Aliased "gke_ahmetb_europe-west1-b_dublin" as "dublin".
octx
supports Tab completion on bash/zsh/fish shells to help with
long context names. You don't have to remember full context names anymore.
ocns is an utility to switch between OpenShift namespaces.
USAGE:
ocns : list the namespaces
ocns <NAME> : change the active namespace
ocns - : switch to the previous namespace
$ ocns kube-system
Context "test" set.
Active namespace is "kube-system".
$ ocns -
Context "test" set.
Active namespace is "default".
ocns
also supports Tab completion on bash/zsh/fish shells.
🎊 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 nameskctx
andkns
to prevent prefix collision withkubectl
name. -
If you like to add context/namespace info to your shell prompt (
$PS1
), I recommend trying out kube-ps1.
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
, andkubens
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 yourPATH
, like/usr/local/bin
- save them all to somewhere in your
- Make
kubectx
andkubens
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
An unofficial AUR package kubectx
is available. Install instructions can be found on the Arch
wiki.
Available as a Debian package for Debian Buster (testing), Sid (unstable) (note: if you are unfamiliar with Debian release process and how to enable testing/unstable repos, check the Debian Wiki):
sudo apt install kubectx
If you like to customize the colors indicating the current namespace or context, set the environment variables KUBECTX_CURRENT_FGCOLOR
and KUBECTX_CURRENT_BGCOLOR
(refer color codes here):
export KUBECTX_CURRENT_FGCOLOR=$(tput setaf 6) # blue text
export KUBECTX_CURRENT_BGCOLOR=$(tput setaf 7) # white background
Colors in the output can be disabled by setting the
NO_COLOR
environment variable.
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 mykubectl-aliases
project, too.
Disclaimer: This is not an official Google product.