Skip to content

A Collection of Plugins for kubectl Integration (context switching, ssh / exec as any user, etc).

License

Notifications You must be signed in to change notification settings

jalberti/kubectl-plugins

 
 

Repository files navigation

kubectl-plugins

A collection of plugins for kubectl integration (for Kubectl versions >= 1.12.0)

Note
  • These plugins are for kubectl versions at or above 1.12.0 only. Check your version via kubectl version
  • For versions below 1.12.0, use the 1.11.0 branch.
  • To upgrade your kubectl version via homebrew: brew upgrade kubectl, or via gcloud: gcloud components update
  • Some plugins require jq ( brew/apt/yum install jq )
  • All coding was written to maintain compatibility across both BSD and GNU.

Install on Linux/Mac

git clone https://github.com/jordanwilson230/kubectl-plugins.git
cd kubectl-plugins
./install-plugins.sh
source ~/.bash_profile

To Uninstall

rm -rf ~/.kube/plugins/jordanwilson230
ex '+g/jordanwilson230/d' -cwq ~/.bash_profile

Remove the image plugin:

ex '+g/IMG_REGISTRY=/d' -cwq ~/.bash_profile

Remove the prompt plugin:

ex '+g/function kubectl()/d' -cwq ~/.bash_profile
ex '+g/KUBECTL_\(.*\)_PROMPT/d' -cwq ~/.bash_profile

kubectl ssh

kapssh

  • Like kubectl exec, but offers a --user flag to exec as root (or any other user)
  • 'ssh' is a misnomer (it works by mounting a docker socket as a volume), but it's easier to work with as a command.
  • You must be in the same namespace as the target pod (passing -n namespace is not currently allowed).
  • Kudos to mikelorant for thinking of the docker socket! :)
Option Required Description Example
-h N Show usage kubectl ssh -h
-p Y Pod name. The -p flag can be omitted if no other flags are passed (i.e., kubectl ssh kafka-0) kubectl -p kafka-0
-u N User to exec as. Defaults to root kubectl ssh -u kafka -p kafka-0
-c N Specify container within pod kubectl ssh -c burrow-metrics -p kafka-0
-- N Pass an optional command. Defaults to /bin/sh kubectl ssh kafka -- ls /etc/burrow

kubectl switch

switch

  • View current namespace: kubectl switch
  • Switch namespace: kubectl switch preprod
  • Switch cluster: kubectl switch cluster staging
  • List and select from all available clusters: kubeclt switch cluster -l
Option Required Description Example
-l N List available clusters and prompts for selection. Can only be used when cluster is passed. kubNctl switch cluster -l
-h N Show usage kubectl switch -h

kubectl prompt

prompt

  • Displays a warning prompt when issuing commands in a flagged cluster or namespace
  • Commands that trigger the prompt include create, scale, delete, apply, etc.,
  • Flag a namespace: kubectl prompt add -n production
  • Flag a cluster: kubectl prompt add -c my-cluster
  • List flagged environments: kubectl prompt list
  • Clear flagged environments: kubectl prompt remove
  • View description: kubectl prompt

kubectl image

image

  • Search for Docker images
  • If you have a Google Container Registry, run kubectl image -c to set it as the default for future searches.
  • If not configured with -c, searches will use Docker Hub by default.
  • Adding -p will search Docker Hub, regardless of any default.
  • Sorts Docker Hub images by number of stars.
  • Sorts GCR images by upload date.

Example: kubectl image kafka

kubectl ip

kap_ip

  • Outputs the node name, node IP, and Pod IP for a given resource. Search is performed against common labels (defaults to app, name, component)

Example: kubectl ip cassandra

kubectl uptime

kap_uptime

  • Displays total uptime for pods/statefulsets in the current namespace.

Example: kubectl uptime

About

A Collection of Plugins for kubectl Integration (context switching, ssh / exec as any user, etc).

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 91.9%
  • Ruby 8.1%