Plugin Naming Guide
This document describes guidelines for naming your kubectl plugins.
These guidelines are used for reviewing the plugins submitted to Krew.
Use lowercase and hyphens
Plugin names must be all lowercase and separate words with hyphens.
Don’t use camelCase, PascalCase, or snake_case; use
Plugin names should not be verbs or nouns that are generic, already overloaded, or
likely to be used for broader purposes by another plugin.
kubectl login (Too broad)
kubectl ui (Should be used only for Kubernetes Dashboard)
Find a unique name for your plugin that differentiates it from other
plugins that perform a similar function.
kubectl view-logs (Unclear how it is different from the builtin
“logs” command, or many other tools for viewing logs)
kubectl tailer (Unique name, points to the underlying)
Use Verbs and Resource Types
If the name does not make it clear (a) what verb the plugin is doing on a
resource, or (b) what kind of resource it’s doing the action on, consider
clarifying unless it is obvious.
kubectl service (Unclear what this plugin is doing with)
kubectl open (Unclear what the plugin is opening)
kubectl open-svc (It is clear the plugin will open a service)
Prefix Vendor Identifiers
Use vendor-specific strings as prefix, separated with a dash. This makes it
easier to search/group plugins that are about a specific vendor.
kubectl ui-gke (Makes it harder to search or locate in a
kubectl gke-ui (Will show up together with other gke-* plugins)
Avoid repeating kube[rnetes]
Plugin names should not include “kube-” or “kubernetes-” prefixes.
kubectl kube-node-admin (“kubectl " already has “kube” in it)
While it is not recommended to include “kube*” in the plugin command name it
is recommended that the code repository starts with “kubectl-” so plugin
source code can be found outside of krew and the intended use is clear.
Avoid Resource Acronyms and Abbreviations
Using kubectl acronyms for API resources (e.g. svc, ing, deploy, cm) reduces
the readability and discoverability of a plugin, which is more important
than the few keystrokes saved.
kubectl new-ing (Unclear that the plugin is for Ingress)
Note: If you have suggestions for improving this guide, open an issue or send a
pull request, as this is a topic under active development.