Skip to content

Latest commit

 

History

History
132 lines (98 loc) · 4.87 KB

README.md

File metadata and controls

132 lines (98 loc) · 4.87 KB

kn

kn is the Knative command line interface (CLI).

Getting Started

Installing kn

You can grab the latest nightly binary executable for:

Put it on your system path, and make sure it's executable.

Alternatively, check out the client repository, and type:

go install ./cmd/kn

To use the kn container image:

  • Nightly: gcr.io/knative-nightly/knative.dev/client/cmd/kn
  • Latest release: gcr.io/knative-releases/knative.dev/client/cmd/kn

To install kn using Homebrew:

brew tap knative/client
brew install kn

Connecting to your cluster

You'll need a kubectl-style config file to connect to your cluster.

  • Starting minikube writes this file (or gives you an appropriate context in an existing config file)
  • Instructions for Google GKE
  • Instructions for Amazon EKS
  • Instructions for IBM IKS
  • Instructions for Red Hat OpenShift
  • Or contact your cluster administrator

kn will pick up your kubectl config file in the default location of $HOME/.kube/config. You can specify an alternate kubeconfig connection file with --kubeconfig, or the env var $KUBECONFIG, for any command.

Kn Config

There are a set of configuration parameters you can setup to better customize kn. For example, you can specify where your kn plugins are located and how they are found, and you can specify the prefix for your addressable sink objects. The kn configuration file is meant to capture these configuration options. Let's explore this file's location, and the options you are able to change with it.

Location

The default location kn looks for config is under the home directory of the user at $HOME/.config/kn/config.yaml. It is not created for you as part of the kn installation. You can create this file elsewhere and use the --config flag to specify its path.

Options

Below are the options you can specify in the kn config file.

  1. pluginsDir which is the same as the persistent flag --plugins-dir and specifies the kn plugins directory. It defaults to: ~/.config/kn/plugins. By using the persistent flag (when you issue a command) or by specifying the value in the kn config, a user can select which directory to find kn plugins. It can be any directory that is visible to the user.

  2. lookupPluginsInPath which is the same as the persistent flag --lookup-plugins-in-path and specifies if kn should look for plugins anywhere in the specified PATH environment variable. This is a boolean configuration option and the default value is false.

  3. sink defines your prefix to refer to Kubernetes addressable resources. To configure a sink prefix, define following in the config file:

    1. prefix: Prefix you want to describe your sink as. service or svc (serving.knative.dev/v1) and broker (eventing.knative.dev/v1alpha1) are predefined prefixes in kn. These predefined prefixes can be overridden by values in configuration file.
    2. group: The APIGroup of Kubernetes resource.
    3. version: The version of Kubernetes resources.
    4. resource: The plural name of Kubernetes resources (for example: services).

For example, the following kn config will look for kn plugins in the user's PATH and also execute plugin in ~/kn/.config/plugins. It also defines a sink prefix myprefix which refers to brokers in eventing.knative.dev/v1alpha1. With this configuration, you can use myprefix:default to describe a Broker default in kn command line.

cat ~/.config/kn/config.yaml
lookupPluginsInPath: true
pluginsdir: ~/.config/kn/plugins
sink:
- prefix: myprefix
  group: eventing.knative.dev
  version: v1alpha1
  resource: brokers

Commands

Plugins

Kn supports plugins, which allow you to extend the functionality of your kn installation with custom commands as well as shared commands that are not part of the core distribution of kn. See the plugins documentation for more information.

More information on kn: