Knative developer experience, docs, reference Knative CLI implementation
Go to file
dr.max 59b2855d04 Implements Kn plugins re-using some code from kubectl plugins. (#249)
This version contains the following:

1. wraps the main root Kn command to support plugin
2. plugins are any executable in kn's config new pluginDir
   variable which defaults to $PATH
3. plugins must have name kn-*
4. 'kn plugin list' sub-command to list found kn plugins
5. skips any kn plugins found with name that match core
   commands, e.g., kn-service would be ignored
6. can execute any valid kn plugins found, e.g.,
   `kn valid` where the plugin file `kn-valid` is in path
   specified in 2.
7. unit tests (using gotest.tools)

And is missing:

1. integration tests
2. plugin install command
3. plugin repository command
4. plugin / Knative server version negotiation
5. anything else we agree on in plugin req doc

I plan to create issues for the things missing so we don't
end up with an even bigger PR. It's already big as is but is a
good MVP as per plugins requirement doc.
2019-07-26 13:29:48 -07:00
.github Adds Github issue and pull request templates (#242) 2019-07-10 00:36:03 -07:00
cmd/kn Implements Kn plugins re-using some code from kubectl plugins. (#249) 2019-07-26 13:29:48 -07:00
config Add the support to build container image for kn (#152) 2019-06-06 17:30:40 -07:00
conventions Move client conventions doc from Serving, adjusted to account for revision names (#299) 2019-07-25 14:57:37 -07:00
docs Implements Kn plugins re-using some code from kubectl plugins. (#249) 2019-07-26 13:29:48 -07:00
hack chore(build): Refactor to simplify and add dedicated test mode (#268) 2019-07-22 11:29:35 -07:00
pkg Implements Kn plugins re-using some code from kubectl plugins. (#249) 2019-07-26 13:29:48 -07:00
test test(service): Add e2e tests for min, max scale options (#300) 2019-07-26 13:02:49 -07:00
vendor Implements Kn plugins re-using some code from kubectl plugins. (#249) 2019-07-26 13:29:48 -07:00
.gitignore chore: Update dependencies (#68) 2019-04-30 09:48:33 -07:00
CHANGELOG.adoc feature(service): Wait on update for service to become ready. (#271) 2019-07-22 10:52:35 -07:00
DEVELOPMENT.md fix(build): Minor build optimizations (#265) 2019-07-15 13:21:27 -07:00
LICENSE Initial commit 2018-12-12 16:45:51 -08:00
OWNERS Add rhuss and maximilien to OWNERS to increase approver speed. (#209) 2019-06-26 16:32:05 -07:00
README.md Small grammatical correction for README.md (#237) 2019-07-07 23:41:33 -07:00
go.mod refactor(serving): KnClient interface for single point of cluster access (#134) 2019-07-08 10:08:34 -07:00
go.sum fix(build): Minor build optimizations (#265) 2019-07-15 13:21:27 -07:00

README.md

Knative Client

This section outlines best practices for the Knative developer experience, is a reference for Knative CLI implementation, and a reference for Knative client libraries.

The goals of the Knative Client are to:

  1. Follow the Knative serving and eventing APIs
  2. Be scriptable to allow users to create different Knative workflows
  3. Expose useful Golang packages to allow integration into other programs or CLIs or plugins
  4. Use consistent verbs, nouns, and flags for various commands
  5. Be easily extended via a plugin mechanism (similar to kubectl) to allow for experimentation and customization

Docs

Start with the user's guide to learn more. You can read about common use cases, get detailed documentation on each command, and learn how to extend the kn CLI. For more information, access the following links:

Bash auto completion:

Run the following command to enable BASH auto-completion:

$ source <(kn completion)

Use TAB to list available sub-commands:

$ kn <TAB>
completion revision service version

$ kn revision <TAB>
describe get

Developers

If you would like to contribute, please see CONTRIBUTING for more information.

To build kn, see our Development guide.