Skip to content

Kn plugins should have configurable prefix #288

@maximilien

Description

@maximilien

In what area(s)?

Kn plugins

/kind feature
/kind proposal

Describe the feature:

Currently Kn plugins (when PR #249 is merged) requires that plugins are named with kn prefix. So for a list of plugins:

➜  client git:(kn-plugins4) ./kn --lookup-plugins-in-path=true plugin list
Using kn config file: /Users/maximilien/.kn/config.yaml
The following compatible plugins are available, using options:
  - plugins dir: '~/.kn/plugins'
  - lookup plugins in path: 'true'

/Users/maximilien/.kn/plugins/kn-hello
/usr/local/bin/kn-foo-bar
/usr/local/bin/kn-foo_bar
/usr/local/bin/kn-hello
  - warning: /usr/local/bin/kn-hello is overshadowed by a similarly named plugin: /Users/maximilien/.kn/plugins/kn-hello
/usr/local/bin/kn-kn
/usr/local/bin/kn-knctl

error: one plugin warning was foun

All the plugins files have kn- as a prefix.

It would be valuable to allow plugins to have either no prefixes when in the --plugins-dir or a different prefix, e.g., google or ibm. We could achieve this by having a configurable --kn-plugins-prefixes flag. So listing plugins would be something like:

➜  client git:(kn-plugins4) ./kn --no-kn-plugins-prefix plugin list
Using kn config file: /Users/maximilien/.kn/config.yaml
The following compatible plugins are available, using options:
  - plugins dir: '~/.kn/plugins'
  - lookup plugins in path: 'true'

/Users/maximilien/.kn/plugins/hello

and

➜  client git:(kn-plugins4) ./kn --lookup-plugins-in-path=true --kn-plugins-prefixes=kn,ibm plugin list
Using kn config file: /Users/maximilien/.kn/config.yaml
The following compatible plugins are available, using options:
  - plugins dir: '~/.kn/plugins'
  - lookup plugins in path: 'true'

/Users/maximilien/.kn/plugins/kn-hello
/usr/local/bin/kn-foo-bar
/usr/local/bin/ibm-foo-bar

Initially suggested by @sixolet

Metadata

Metadata

Assignees

Labels

kind/featureNew feature or requestkind/proposalIssues or PRs related to proposals.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions