A Vim/Neovim plugin to manipulate Kubernetes resources.
This plugin is a kubectl wrapper providing commands and mappings to perform actions on Kubernetes resources.
The following has been implemented so far:
- Fetch and view lists of kubernetes resources
- Edit resource manifests in YAML form
- Apply any file or buffer to the cluster
- Delete resources
- Switch namespace
- Switch contexts
- View kubernetes resource manuals
This plugin follows the standard runtime path structure, you can install it with your favourite plugin manager.
| Plugin Manager | Instructions | 
|---|---|
| NeoBundle | NeoBundle 'rottencandy/vimkubectl' | 
| Vundle | Plugin 'rottencandy/vimkubectl' | 
| Plug | Plug 'rottencandy/vimkubectl' | 
| Pathogen | git clone https://github.com/rottencandy/vimkubectl ~/.vim/bundle | 
| Vim 8+ packages | git clone [email protected]:rottencandy/vimkubectl.git ~/.vim/pack/vendor/start/vimkubectl && vim -u NONE -c "helptags ~/.vim/pack/vendor/start/vimkubectl/doc" -c q | 
This plugin assumes your Kubernetes cluster is reachable and logged in with kubectl or oc.(see configuration)
- 
:Kget {resource}Get a list of all objects of type {resource}. If{resource}is not given,podis used.You can also use <Tab>for completion and to cycle through possible resources.- 
ii(think, "insert mode") to open and edit the manifest of the resource under cursor, in the current window(opens inYAMLformat)
- 
isto open in a split.
- 
ivto open in a vertical split.
- 
itto open in a new tab.
- 
ddto delete the resource under cursor. (Prompts for confirmation)
 
- 
- 
:Kedit {resource} {object}Open a split containing the manifest of {object}of type{resource}. Also has<Tab>completion.
- 
The opened manifest can be edited just like a regular file, except that it gets applied on every save. The following mappings are available in these buffers: - 
grto refresh/update the manifest. Note that this will disregard any unsaved local changes.
- 
:Ksave {filename}to save the manifest locally. If{filename}is not given, the resource object name is used.
 
- 
- 
:Kns {name}Change the active namespace to {name}. If{name}is not given, prints the currently used namespace.<Tab>completion can be used to cycle through available namespaces.
- 
:Kctx {name}Change the active context to {name}. If{name}is not given, prints the currently active context.<Tab>completion can be used to cycle through available contexts.
- 
:{range}KapplyApply file contents. When used with a selection(), applies the selected content, else applies the entire file. Can be used on any open buffer. 
- 
:Kdoc {resource}Retrieve documentation on a specific {resource}.You can also use <Tab>for completion and to cycle through possible resources that are manifest on your kubernetes cluster.NOTE: :Kdocwill retrieve manuals for any CRD on the cluster. There doesn't have to be any existing k8s objects on the cluster in order to retrieve the manual.
- 
:KRun any arbitrary kubectlcommand.
- 
g:vimkubectl_commandDefault: 'kubectl' If you are using an alternate Kubernetes client, it can be specified with g:vimkubectl_command.For example to use OpenShift's ocas the command, add this to yourvimrc:let g:vimkubectl_command = 'oc'
- 
g:vimkubectl_timeoutDefault: 5 The maximum time to wait for the cluster to respond to requests. For example, to change the wait time to 10seconds:let g:vimkubectl_timeout = 10
