mirror of https://github.com/knative/client.git
126 lines
4.8 KiB
Markdown
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)
|