# "k"
## TLDR;
Install the "k" by either doing:
pip install agentk
(Yes, ^^ it is written in python and your OS needs to have recent version 2 or 3)
or copying it in some bin folder on your PATH and running `pip install -r requirements.txt`
---
> "A person is smart. People are dumb, panicky, dangerous animals, and you know it." -- Agent K
#### "AGENT" K is a complete minimalistic kubectl "doner"-wrap
Obviously, as a short-hand wrapper, **k** can do everything **kubectl** already can, but it is (a) shorter and (b) adds few tricks like merging configs and switching contexts .. (k) feeds back to the *kubectl* command-line those args which it does not want to intercept or handle.
## Usage
The following is equivalent:
kubectl get pods --all-namespaces
k get pods -A
k p -A
### Switching context
Argument-free invocation prompts for context switch options between multiple cluster contexts found in `~/.kube/config`:
k
### Switching namespaces
One can change the default namespace on the currently active context (`namespace` key in `~/.kube/config`) using either of two equivalent commands:
kubectl config set-context $(kubectl config current-context) --namespace foo
k sn foo
The last command is a `k` shortcut.
### Shortcuts to get resources
You can find the full list of shortcuts defined as the dictionary inside the `k` script. In particular that would be:
# resource
"ev": "event",
"ep": "endpoints",
"p": "pod",
"s": "service",
"v": "volume",
"n": "node",
"dp": "deployment",
"st": "statefulset",
"in": "ingress",
"ns": "namespace",
At the end of the list there are one letter action-shortcuts:
# actions
"c": "create",
"a": "apply",
"d": "delete",
This means that the following is equivalent:
kubectl apply -f <foo-k8s-manifest.yaml>
k a -f <foo-k8s-manifest.yaml>
## Develop
To remind, you can do `pip install -e .` in order to utilize developer mode.
## Installation in the cloud
If you work with `kubectl` without a privileged or super-user access, for example inside a corporate network or in a cloud-shell (but you still have access to python), then your installation will look like:
pip install --user agentk
This will install the script in your local `$HOME` folder.
Don't forget to append your `~/.bashrc` or `~/bash_profile` or other shell-rc file with:
export PATH="$HOME/.local/bin:$PATH"
## Command completion
You can put this into your `.bashrc` to get alias and auto completion for `k` similar as for `kubectl`:
```
source <(kubectl completion bash | sed s/kubectl/k/g)
```
Similar works well for **zsh**.