client/docs/README.md

126 lines
4.8 KiB
Markdown

# kn
`kn` is the Knative command line interface (CLI).
## Getting Started
### Installing `kn`
You can grab the latest nightly binary executable for:
- [macOS](https://storage.googleapis.com/knative-nightly/client/latest/kn-darwin-amd64)
- [Linux](https://storage.googleapis.com/knative-nightly/client/latest/kn-linux-amd64)
- [Windows](https://storage.googleapis.com/knative-nightly/client/latest/kn-windows-amd64.exe)
Put it on your system path, and make sure it's executable.
Alternatively, check out the client repository, and type:
```bash
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`
### Connecting to your cluster
You'll need a `kubectl`-style config file to connect to your cluster.
- Starting [minikube](https://github.com/kubernetes/minikube) writes this file
(or gives you an appropriate context in an existing config file)
- Instructions for Google
[GKE](https://cloud.google.com/kubernetes-engine/docs/how-to/cluster-access-for-kubectl)
- Instructions for Amazon
[EKS](https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html)
- Instructions for IBM
[IKS](https://cloud.ibm.com/docs/containers?topic=containers-getting-started)
- Instructions for Red Hat
[OpenShift](https://docs.openshift.com/container-platform/4.1/cli_reference/administrator-cli-commands.html#create-kubeconfig)
- 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.
```bash
cat ~/.config/kn/config.yaml
lookupPluginsInPath: true
pluginsdir: ~/.config/kn/plugins
sink:
- prefix: myprefix
group: eventing.knative.dev
version: v1alpha1
resource: brokers
```
---
## Commands
- See the [generated documentation](cmd/kn.md)
- See the documentation on [managing `kn`](operations/management.md)
## 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](plugins/README.md) for more information.
## More information on `kn`:
- [Workflows](workflows/README.md)
- [Operations](operations/README.md)
- [Traffic Splitting](traffic/README.md)