An interactive kubernetes client featuring auto-complete using go-prompt.
Clone or download
Latest commit dc4d67c Sep 6, 2018

README.md

kube-prompt

Software License Go Report Card

An interactive kubernetes client featuring auto-complete using go-prompt.

demo

kube-prompt accepts the same commands as the kubectl, except you don't need to provide the kubectl prefix. So it doesn't require the additional cost to use this cli.

And you can integrate other commands via pipe (|).

>>> get pod | grep web
web-1144924021-2spbr        1/1     Running     4       25d
web-1144924021-5r1fg        1/1     Running     4       25d
web-1144924021-pqmfq        1/1     Running     4       25d

Looking for co-maintainers

I'm looking for one or more co-maintainers that can help me. If you are interested, please reply to this issue.

Installation

Downloading standalone binary

Binaries are available from github release.

# macOS (darwin)
wget https://github.com/c-bata/kube-prompt/releases/download/v1.0.4/kube-prompt_v1.0.4_darwin_amd64.zip
unzip kube-prompt_v1.0.4_darwin_amd64.zip

# Linux
wget https://github.com/c-bata/kube-prompt/releases/download/v1.0.4/kube-prompt_v1.0.4_linux_amd64.zip
unzip kube-prompt_v1.0.4_linux_amd64.zip

# After that please put executable to your PATH:
chmod +x kube-prompt
sudo mv ./kube-prompt /usr/local/bin/kube-prompt

Using Homebrew (macOS)

$ brew tap c-bata/kube-prompt
$ brew install kube-prompt

Building from source

$ go get -u github.com/golang/dep/cmd/dep
$ dep ensure # download dependency package
$ go build .

To create a multi-platform binary, use the cross command via make:

$ make cross

Goal

Hopefully support following commands enough to operate kubernetes.

  • get Display one or many resources
  • describe Show details of a specific resource or group of resources
  • create Create a resource by filename or stdin
  • replace Replace a resource by filename or stdin.
  • patch Update field(s) of a resource using strategic merge patch.
  • delete Delete resources by filenames, stdin, resources and names, or by resources and label selector.
  • edit Edit a resource on the server
  • apply Apply a configuration to a resource by filename or stdin
  • namespace SUPERSEDED: Set and view the current Kubernetes namespace
  • logs Print the logs for a container in a pod.
  • rolling-update Perform a rolling update of the given ReplicationController.
  • scale Set a new size for a Deployment, ReplicaSet, Replication Controller, or Job.
  • cordon Mark node as unschedulable
  • drain Drain node in preparation for maintenance
  • uncordon Mark node as schedulable
  • attach Attach to a running container.
  • exec Execute a command in a container.
  • port-forward Forward one or more local ports to a pod.
  • proxy Run a proxy to the Kubernetes API server
  • run Run a particular image on the cluster.
  • expose Take a replication controller, service, or pod and expose it as a new Kubernetes Service
  • autoscale Auto-scale a Deployment, ReplicaSet, or ReplicationController
  • rollout rollout manages a deployment
  • label Update the labels on a resource
  • annotate Update the annotations on a resource
  • config config modifies kubeconfig files
  • cluster-info Display cluster info
  • api-versions Print the supported API versions on the server, in the form of "group/version".
  • version Print the client and server version information.
  • explain Documentation of resources.
  • convert Convert config files between different API versions
  • top Display Resource (CPU/Memory/Storage) usage

Author

Masashi Shibata

LICENSE

This software is licensed under the MIT License (See LICENSE).