Metadata-Version: 2.3
Name: agentk
Version: 0.3.2
Summary: "AGENT" K is a complete minimalistic kubectl "doner"-wrap
License: MIT
Keywords: kubectl,tool,kubernetes
Author: Yauhen Yakimovich
Author-email: eugeny.yakimovitch@gmail.com
Requires-Python: >=3.6,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: PyYAML (>=5.1.2)
Requires-Dist: clint (>=0.5.1)
Requires-Dist: pbs (==0.110) ; platform_system == "Windows"
Requires-Dist: pick (>=0.6.4)
Requires-Dist: sh (>=1.12.13)
Requires-Dist: windows-curses (>=2.0) ; platform_system == "Windows"
Project-URL: Homepage, https://gitlab.com/kubic-ci/k
Project-URL: Repository, https://gitlab.com/kubic-ci/k
Description-Content-Type: text/markdown

# "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**.

