Knative developer experience, docs, reference Knative CLI implementation
Go to file
Roland Huß b916a5b3ed
Add grouping for help message + streamlined help messages (#887)
* Add grouping for help message + streamlined help messages

The top-level looks like

kn is the command line interface for managing Knative Serving and Eventing objects

 Find more information about Knative at: https://knative.dev

Serving Commands:
  service     Manage Knative services
  revision    Manage service revisions
  route       List and show service routes

Eventing Commands:
  source      Manage event sources
  trigger     Manage event triggers

Other Commands:
  plugin      Manage kn plugins
  completion  Output shell completion code
  version     Show the version of this client

Use "kn <command> --help" for more information about a given command.
Use "kn options" for a list of global command-line options (applies to all commands).

The following changes have been applied:

* Add CommandGroups for grouping commands together
* Add flexible templating for the help messages
* Moved global options to an own command ('kn options', much like 'kubectl options')
* Aligned wording and typography of help messages

These features has been highly inspired by kubectl grouping & help templating but has been considerably been stripped down to the needs of kn.

Signed-off-by: Roland Huß <roland@ro14nd.de>

* chore: Add missing file

* Update pkg/templates/command_groups.go

Co-authored-by: Matt Moore <mattmoor@vmware.com>

* chore: Add some test for error messages

* fix formatting

* chore: Add test

* moar tests

* Update pkg/kn/commands/completion/completion.go

Co-authored-by: Navid Shaikh <nshaikh@redhat.com>

* Update pkg/kn/commands/source/apiserver/delete.go

Co-authored-by: Navid Shaikh <nshaikh@redhat.com>

* Update pkg/kn/commands/service/list.go

Co-authored-by: Navid Shaikh <nshaikh@redhat.com>

* Update pkg/kn/commands/route/route.go

Co-authored-by: Navid Shaikh <nshaikh@redhat.com>

* Update pkg/kn/commands/revision/delete.go

Co-authored-by: Navid Shaikh <nshaikh@redhat.com>

* Update pkg/kn/commands/plugin/plugin.go

Co-authored-by: Navid Shaikh <nshaikh@redhat.com>

* Update pkg/kn/commands/service/delete.go

Co-authored-by: Navid Shaikh <nshaikh@redhat.com>

* Update pkg/kn/commands/revision/delete.go

Co-authored-by: Navid Shaikh <nshaikh@redhat.com>

* Update pkg/kn/commands/service/delete.go

Co-authored-by: Navid Shaikh <nshaikh@redhat.com>

* regen docs

* chore: Update conventions doc

* Move some direct configuration of rootcmd to NewRootCommand()

* Moved CaptureOutput to "test" package for reuse

Co-authored-by: Matt Moore <mattmoor@vmware.com>
Co-authored-by: Navid Shaikh <nshaikh@redhat.com>
2020-06-18 00:06:25 -07:00
.github correct typo in pull request template (#826) 2020-05-05 09:11:44 -07:00
cmd/kn Add grouping for help message + streamlined help messages (#887) 2020-06-18 00:06:25 -07:00
config Use ko's strict mode for better errors messages (#706) 2020-03-07 12:11:27 -08:00
conventions Add grouping for help message + streamlined help messages (#887) 2020-06-18 00:06:25 -07:00
docs Add grouping for help message + streamlined help messages (#887) 2020-06-18 00:06:25 -07:00
hack Refactor main flow and introduce explicit plugin and config handling (#877) 2020-06-15 09:15:24 -07:00
lib/test Add grouping for help message + streamlined help messages (#887) 2020-06-18 00:06:25 -07:00
pkg Add grouping for help message + streamlined help messages (#887) 2020-06-18 00:06:25 -07:00
scripts/test-infra chore: Move from Eventing v1alpha1 to v1beta1 (#878) 2020-06-08 05:42:19 -07:00
test Refactor main flow and introduce explicit plugin and config handling (#877) 2020-06-15 09:15:24 -07:00
vendor Refactor main flow and introduce explicit plugin and config handling (#877) 2020-06-15 09:15:24 -07:00
.gitignore Explicit name for serving client (#537) 2019-12-08 23:42:44 -08:00
CHANGELOG.adoc Return Error Message from Using --untag with Nonexistent Tag (#880) 2020-06-10 23:22:23 -07:00
LICENSE Initial commit 2018-12-12 16:45:51 -08:00
OWNERS Adds Navid (@navidshaikh) to approvers list (#321) 2019-07-31 13:59:43 -07:00
README.md Add badges in README (#780) 2020-04-07 16:26:00 -07:00
go.mod Refactor main flow and introduce explicit plugin and config handling (#877) 2020-06-15 09:15:24 -07:00
go.sum bump k8s packages to 1.17.6 (#881) 2020-06-08 15:30:32 -07:00

README.md

Kn

go.dev reference Go Report Card Releases LICENSE Slack Status

The Knative client kn is your door to the Knative world. It allows you to create Knative resources interactively from the command line or from within Shell scripts.

kn offers you:

  • Full support for managing all features of Knative Serving (services, revisions, traffic splits)
  • Growing support Knative eventing, closely following its development (managing of sources & triggers)
  • A plugin architecture similar to that of kubectl plugins
  • A thin client-specific API in golang which helps in tasks like synchronously waiting on Knative service write operations.
  • An easy integration of Knative into Tekton Pipelines by using kn in a Tekton Task.

This client uses the Knative Serving and Knative Eventing API exclusively so that it will work with any Knative installation, even those that are not Kubernetes based. It does not help in installing Knative itself though. Please refer to the various Knative installation options for how to install Knative with its prerequisites.

Documentation

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, have a look at:

  • User guide
    • Installation - How to install kn and run on your machine
    • Examples - Use case based examples
    • FAQ (to come.)
  • Reference Manual - all possible commands and options with usage examples

Developers

We love contributions! Please refer to CONTRIBUTING for more information on how to best contributed to contribute to Knative.

For code contributions it as easy as picking an issue (look out for "kind/good-first-issue"), briefly comment that you would like to work on it, code, test, code and finally submit a PR which will trigger the review process.

More details on how to build and test can be found in the Developer guide.