Hi dear SIG CLI,
I'm the maintainer & co-creator of the
Krew project by Google. Krew is a plugin
manager for kubectl. (For the uninitiated, here's a
recording of a previous SIG
CLI demo where I presented krew.)
I wanted to drop this note ahead of next week's discussion in the SIG meeting
and give some background.
We've developed krew to make it dead easy to:
- package and distribute plugins (for plugin devs), and
- discover, install and upgrade plugins (for kubectl users).
So far krew is achieving both of these goals very well.
Today, most of the kubectl plugins on GitHub are distributed through krew. (As
of writing there are
30 plugins available on krew.) It has become the default
destination for the developers writing and distributing plugins.
There's a big uptick in new plugin development in the past month or so. This is
great for the kubectl user/developer communities.
With this, we're presented with several challenges:
and enforce
criteria for which plugins are "appropritate". This has caused
some heated debates already. (It's the top priority work in the queue to allow
other GitHub repos to be plugin discovery sources.)
* Krew is owned/managed by Google: (And when I say that, it's pretty much just
me.) I'm glad this project has stimulated growth of plugin ecosystem, but it's
not sustainable. Krew is receiving multiple new plugin submissions
every week,
and ideally the community should decide what deserves to be in the centralized
repo. Similarly, the community deserves more maintainers on a tool they use.
* What's next for Krew: Back in summer'18 we've submitted a
KEP to make it the
official "kubectl plugin" command. But I think the project should mature a lot
more for that discussion to happen.
We should discuss this in Wednesday's meeting more. I'd love to hear the SIG's
thoughts on how we can further improve this plugin manager, set up better
maintainance/governance, and serve the plugin ecosystem better.
-Ahmet