Introduction to plugin development
If you are looking to start developing plugins for
kubectl, read the
on this topic.
To summarize the documentation, the procedure is to:
- Create an executable binary, named
kubectl-foo (for example) to have a plugin that can be
- Place the executable in a directory that is listed in the user’s
variable. (You don’t have to do this for plugins distributed with Krew).
- You can’t overwrite a built-in
kubectl command with a plugin.
Note: If you are writing a plugin in Go, consider using the cli-runtime project,
which is designed to provide the same command-line arguments, kubeconfig
parser, Kubernetes API REST client, and printing logic. Look at
sample-cli-plugin for an example of a kubectl plugin.
Also, see the unofficial GitHub template
repo for a Krew plugin
in Go that implements some best practices covered later in this guide, and helps
you automate releases using GoReleaser to create a release when a tag is pushed.
When developing your own plugins, make sure you check out:
After you develop a plugin with a good name following the best practices, you
can develop a Krew plugin manifest and
submit your plugin to Krew.