46 lines
1.4 KiB
Markdown
46 lines
1.4 KiB
Markdown
# ktx
|
|
|
|
> Plant a Tree, Have a Baby, Build a k8s context switcher
|
|
|
|
|
|
## Motivation
|
|
Like every good YAML Engineer, I'm constantly switching between half a dozen k8s clusters with a big list of namespaces in each of them. This gets cumbersume with just plain kubectl, so a big ecosystem of context switchers has evolved. I tried some of them, but I had at least one problem with each of them, so I started my own to fullfill my needs. My personal requirements for a context switcher are:
|
|
* When opening a new shell I want to be in the context I used last
|
|
* When switching context or namespace in one shell, all other shells should not be affected
|
|
|
|
## Installation
|
|
|
|
Requirements:
|
|
* kubectl, fzf and jq are installed
|
|
* Your global k8s config is in ~/.kube/config
|
|
|
|
Setup:
|
|
|
|
```shell
|
|
# Clone the repo somewhere
|
|
cd ~/repos && git clone https://git.rainbownerds.de/fleaz/ktx
|
|
|
|
# Source the ktx script in your shell config
|
|
echo "source ~/repos/ktx/ktx" >> .zshrc
|
|
|
|
# Create the required directory
|
|
mkdir ~/.kube/ktx
|
|
```
|
|
|
|
Now open a new shell and you should have `ktx` and `kn` available
|
|
|
|
## Usage
|
|
|
|
```shell
|
|
# ktx alone to get a list of all your contexts to choose from
|
|
ktx
|
|
# ktx with the name of a context to directly switch to it
|
|
ktx prod-ams1
|
|
# ktx with the name of a context and a namespace
|
|
ktx prod-ams1 monitoring
|
|
|
|
# kn alone to get a list of all namespaces in the current cluster
|
|
kn
|
|
# kn with the name of a namespace to directly switch to it
|
|
```
|
|
|