-
Notifications
You must be signed in to change notification settings - Fork 263
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
kn plugin management #1386
Comments
/kind proposal |
This is interesting. An alternative proposal is to incorporate |
This issue is stale because it has been open for 90 days with no |
/remove-lifecycle stale |
This issue is stale because it has been open for 90 days with no |
/remove-lifecycle stale I like @lionelvillard idea of reusing krew as well. Either should support all use cases I've listed. |
I think using krew has the downside of being harder to productize. We already do the disconnected installations with container images, by mirroring the registries. If we choose to go with krew path, the vendors would essentially need to provide their own download service to work in disconnected installations, that could be mirrored, and will serve krew index, and plugin downloads. Am I right, @lionelvillard? |
@cardil I think so, though I'm not sure I understand what you mean by to work in disconnected installations. Do you mean GitHub is not reachable? |
Yes. The disconnected installation may range in meaning, but essentially, we should be able to operate in the network of limited or no external connectivity. |
ok, just making sure we are on the same page.
backed by git: https://krew.sigs.k8s.io/docs/developer-guide/custom-indexes/ I wonder how hard it would be to extend krew to support OCI registries. Maybe fork krew, replace git by container registry and call it |
That maybe a good idea. We could propose to change the krew to operate on container images instead of git repositories. That could make krew much more "cloud native" IMHO (the container images are easier to handle, mirror, etc.). |
This issue is stale because it has been open for 90 days with no |
/remove-lifecycle stale |
An FT Knative Catalog has been opened to hold the metadata that plugin management commands could leverage. Maybe not directly, but I can imagine some automatic job that would create a single plugin descriptor file that this downloadable for a central place that a |
Feature request
I think kn CLI should provide an easy way to manage and discover plugins for itself. By this, I think of adding a couple of sub commands to
kn plugin
.My idea for this is to rely on container images as transport layer. I imagine a kn to have configurable list of plugin index images, by default equal to (can be configured by
kn config
command):Such container image will contain just a file database (format TBD, SQLite maybe?!? YAML files?!?) of plugins metadata. We can set up this in the way that every PR merge to repo like https://github.com/knative-sandbox/client-plugins will build and publish new index image, so users will see new content.
This index database will contain information such as plugin name, version, container image, description, maturity level, keywords as well as previous releases of given plugin.
Using the information in such index container, the
kn plugin search
will perform its operations, as well askn plugin install
Such operation is cross-platform, and don't rely on any external tooling to be installed on user's machine (see: github.com/containers/image/v5 as example implementation).
Use cases
UI Examples
Searching plugins
$ kn plugin search event NAME DESCRIPTION VERSION MATURITY PLATFORM event Build, send & listen to cloud events v0.3.0 alpha amd64
Installing plugins from index
Installing custom plugins (Ad hoc)
NOTE: by configuring custom plugin index, vendors and corporate users can utilize previous method as well.
Updating single plugin
Updating all installed plugins
Removing installed plugin
The text was updated successfully, but these errors were encountered: