diff --git a/docs/README.md b/docs/README.md index 57e777e90..2435296b8 100644 --- a/docs/README.md +++ b/docs/README.md @@ -42,13 +42,13 @@ There are a set of configuration parameters you can setup to better customize `k ### Location -The default location `kn` looks for config is under the home directory of the user at `$HOME/.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. +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: `~/.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. +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 specficies 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`. @@ -58,13 +58,13 @@ Below are the options you can specify in the `kn` config file. 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/plugins`. +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 ~/.kn/config.yaml +cat ~/.config/kn/config.yaml lookupPluginsInPath: true -pluginsdir: ~/.kn/plugins +pluginsdir: ~/.config/kn/plugins sink: - prefix: myprefix group: eventing.knative.dev diff --git a/docs/cmd/kn.md b/docs/cmd/kn.md index 0298879a1..b25f5100d 100644 --- a/docs/cmd/kn.md +++ b/docs/cmd/kn.md @@ -12,12 +12,12 @@ Manage your Knative building blocks: ### Options ``` - --config string kn config file (default is $HOME/.kn/config.yaml) + --config string kn config file (default is ~/.config/kn/config.yaml) -h, --help help for kn - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic --lookup-plugins look for kn plugins in $PATH - --plugins-dir string kn plugins directory (default "~/.kn/plugins") + --plugins-dir string kn plugins directory (default "~/.config/kn/plugins") ``` ### SEE ALSO diff --git a/docs/cmd/kn_completion.md b/docs/cmd/kn_completion.md index 054ec57c6..2e6daa73e 100644 --- a/docs/cmd/kn_completion.md +++ b/docs/cmd/kn_completion.md @@ -36,8 +36,8 @@ kn completion [SHELL] [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_plugin.md b/docs/cmd/kn_plugin.md index 4a9652abf..f3b8f521e 100644 --- a/docs/cmd/kn_plugin.md +++ b/docs/cmd/kn_plugin.md @@ -18,14 +18,14 @@ kn plugin [flags] ``` -h, --help help for plugin --lookup-plugins look for kn plugins in $PATH - --plugins-dir string kn plugins directory (default "~/.kn/plugins") + --plugins-dir string kn plugins directory (default "~/.config/kn/plugins") ``` ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_plugin_list.md b/docs/cmd/kn_plugin_list.md index e9f37cb01..3fde1fe27 100644 --- a/docs/cmd/kn_plugin_list.md +++ b/docs/cmd/kn_plugin_list.md @@ -9,7 +9,7 @@ List all installed plugins. Available plugins are those that are: - executable - begin with "kn-" -- Kn's plugin directory ~/.kn/plugins +- Kn's plugin directory ~/.config/kn/plugins - Anywhere in the execution $PATH (if lookupInPath config variable is enabled) ``` @@ -22,15 +22,15 @@ kn plugin list [flags] -h, --help help for list --lookup-plugins look for kn plugins in $PATH --name-only If true, display only the binary name of each plugin, rather than its full path - --plugins-dir string kn plugins directory (default "~/.kn/plugins") + --plugins-dir string kn plugins directory (default "~/.config/kn/plugins") --verbose verbose output ``` ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_revision.md b/docs/cmd/kn_revision.md index 9e86a8788..07e85c765 100644 --- a/docs/cmd/kn_revision.md +++ b/docs/cmd/kn_revision.md @@ -19,8 +19,8 @@ kn revision [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_revision_delete.md b/docs/cmd/kn_revision_delete.md index 1a46f6582..037e941ad 100644 --- a/docs/cmd/kn_revision_delete.md +++ b/docs/cmd/kn_revision_delete.md @@ -28,8 +28,8 @@ kn revision delete NAME [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_revision_describe.md b/docs/cmd/kn_revision_describe.md index 1ebed05d1..48a6b2c58 100644 --- a/docs/cmd/kn_revision_describe.md +++ b/docs/cmd/kn_revision_describe.md @@ -24,8 +24,8 @@ kn revision describe NAME [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_revision_list.md b/docs/cmd/kn_revision_list.md index f132d72af..368305817 100644 --- a/docs/cmd/kn_revision_list.md +++ b/docs/cmd/kn_revision_list.md @@ -43,8 +43,8 @@ kn revision list [name] [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_route.md b/docs/cmd/kn_route.md index 172968870..98439f616 100644 --- a/docs/cmd/kn_route.md +++ b/docs/cmd/kn_route.md @@ -19,8 +19,8 @@ kn route [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_route_describe.md b/docs/cmd/kn_route_describe.md index 9e3966481..87e58af6b 100644 --- a/docs/cmd/kn_route_describe.md +++ b/docs/cmd/kn_route_describe.md @@ -24,8 +24,8 @@ kn route describe NAME [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_route_list.md b/docs/cmd/kn_route_list.md index 351423ad7..e9aa390d0 100644 --- a/docs/cmd/kn_route_list.md +++ b/docs/cmd/kn_route_list.md @@ -39,8 +39,8 @@ kn route list NAME [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_service.md b/docs/cmd/kn_service.md index 9ba670df3..28b0741e6 100644 --- a/docs/cmd/kn_service.md +++ b/docs/cmd/kn_service.md @@ -19,8 +19,8 @@ kn service [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_service_create.md b/docs/cmd/kn_service_create.md index 041a0767e..dd8ab5be0 100644 --- a/docs/cmd/kn_service_create.md +++ b/docs/cmd/kn_service_create.md @@ -78,8 +78,8 @@ kn service create NAME --image IMAGE [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_service_delete.md b/docs/cmd/kn_service_delete.md index eef536e55..971fd9314 100644 --- a/docs/cmd/kn_service_delete.md +++ b/docs/cmd/kn_service_delete.md @@ -34,8 +34,8 @@ kn service delete NAME [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_service_describe.md b/docs/cmd/kn_service_describe.md index 90762e73a..7d2e862e6 100644 --- a/docs/cmd/kn_service_describe.md +++ b/docs/cmd/kn_service_describe.md @@ -24,8 +24,8 @@ kn service describe NAME [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_service_list.md b/docs/cmd/kn_service_list.md index 7b416dbd6..6e7c92a7d 100644 --- a/docs/cmd/kn_service_list.md +++ b/docs/cmd/kn_service_list.md @@ -39,8 +39,8 @@ kn service list [name] [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_service_update.md b/docs/cmd/kn_service_update.md index 2898a2d7a..ed7fbb0ec 100644 --- a/docs/cmd/kn_service_update.md +++ b/docs/cmd/kn_service_update.md @@ -76,8 +76,8 @@ kn service update NAME [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source.md b/docs/cmd/kn_source.md index 60aa5102f..6e2f49eb4 100644 --- a/docs/cmd/kn_source.md +++ b/docs/cmd/kn_source.md @@ -19,8 +19,8 @@ kn source [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source_apiserver.md b/docs/cmd/kn_source_apiserver.md index 5ef124569..c252364de 100644 --- a/docs/cmd/kn_source_apiserver.md +++ b/docs/cmd/kn_source_apiserver.md @@ -19,8 +19,8 @@ kn source apiserver [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source_apiserver_create.md b/docs/cmd/kn_source_apiserver_create.md index 4483d5f24..d8328665f 100644 --- a/docs/cmd/kn_source_apiserver_create.md +++ b/docs/cmd/kn_source_apiserver_create.md @@ -35,8 +35,8 @@ kn source apiserver create NAME --resource RESOURCE --service-account ACCOUNTNAM ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source_apiserver_delete.md b/docs/cmd/kn_source_apiserver_delete.md index 3faff99fa..a21c5dd0a 100644 --- a/docs/cmd/kn_source_apiserver_delete.md +++ b/docs/cmd/kn_source_apiserver_delete.md @@ -28,8 +28,8 @@ kn source apiserver delete NAME [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source_apiserver_describe.md b/docs/cmd/kn_source_apiserver_describe.md index 0af143998..1477f0d46 100644 --- a/docs/cmd/kn_source_apiserver_describe.md +++ b/docs/cmd/kn_source_apiserver_describe.md @@ -29,8 +29,8 @@ kn source apiserver describe NAME [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source_apiserver_list.md b/docs/cmd/kn_source_apiserver_list.md index a1249d9d9..ff2c9c000 100644 --- a/docs/cmd/kn_source_apiserver_list.md +++ b/docs/cmd/kn_source_apiserver_list.md @@ -36,8 +36,8 @@ kn source apiserver list [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source_apiserver_update.md b/docs/cmd/kn_source_apiserver_update.md index f6c561685..45ff4ba35 100644 --- a/docs/cmd/kn_source_apiserver_update.md +++ b/docs/cmd/kn_source_apiserver_update.md @@ -35,8 +35,8 @@ kn source apiserver update NAME --resource RESOURCE --service-account ACCOUNTNAM ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source_binding.md b/docs/cmd/kn_source_binding.md index e2edf9fe7..e934818c3 100644 --- a/docs/cmd/kn_source_binding.md +++ b/docs/cmd/kn_source_binding.md @@ -19,8 +19,8 @@ kn source binding [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source_binding_create.md b/docs/cmd/kn_source_binding_create.md index 6d8552c1e..91fba1d1b 100644 --- a/docs/cmd/kn_source_binding_create.md +++ b/docs/cmd/kn_source_binding_create.md @@ -31,8 +31,8 @@ kn source binding create NAME --subject SCHEDULE --sink SINK --ce-override KEY=V ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source_binding_delete.md b/docs/cmd/kn_source_binding_delete.md index a21bd8ff9..cb4e6e28a 100644 --- a/docs/cmd/kn_source_binding_delete.md +++ b/docs/cmd/kn_source_binding_delete.md @@ -28,8 +28,8 @@ kn source binding delete NAME [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source_binding_describe.md b/docs/cmd/kn_source_binding_describe.md index 10480edbe..e40ac69aa 100644 --- a/docs/cmd/kn_source_binding_describe.md +++ b/docs/cmd/kn_source_binding_describe.md @@ -29,8 +29,8 @@ kn source binding describe NAME [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source_binding_list.md b/docs/cmd/kn_source_binding_list.md index dc5966e5b..29af0ffaa 100644 --- a/docs/cmd/kn_source_binding_list.md +++ b/docs/cmd/kn_source_binding_list.md @@ -36,8 +36,8 @@ kn source binding list [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source_binding_update.md b/docs/cmd/kn_source_binding_update.md index 199a5c826..d889047c7 100644 --- a/docs/cmd/kn_source_binding_update.md +++ b/docs/cmd/kn_source_binding_update.md @@ -31,8 +31,8 @@ kn source binding update NAME --subject SCHEDULE --sink SINK --ce-override OVERR ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source_cronjob.md b/docs/cmd/kn_source_cronjob.md index 19d79407d..e8c097154 100644 --- a/docs/cmd/kn_source_cronjob.md +++ b/docs/cmd/kn_source_cronjob.md @@ -19,8 +19,8 @@ kn source cronjob [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source_cronjob_create.md b/docs/cmd/kn_source_cronjob_create.md index 847116791..161eddc7e 100644 --- a/docs/cmd/kn_source_cronjob_create.md +++ b/docs/cmd/kn_source_cronjob_create.md @@ -31,8 +31,8 @@ kn source cronjob create NAME --schedule SCHEDULE --sink SINK --data DATA [flags ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source_cronjob_delete.md b/docs/cmd/kn_source_cronjob_delete.md index 7d867abf1..b0e22edf1 100644 --- a/docs/cmd/kn_source_cronjob_delete.md +++ b/docs/cmd/kn_source_cronjob_delete.md @@ -28,8 +28,8 @@ kn source cronjob delete NAME [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source_cronjob_describe.md b/docs/cmd/kn_source_cronjob_describe.md index 9f8ee7578..69a8eb74a 100644 --- a/docs/cmd/kn_source_cronjob_describe.md +++ b/docs/cmd/kn_source_cronjob_describe.md @@ -29,8 +29,8 @@ kn source cronjob describe NAME [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source_cronjob_list.md b/docs/cmd/kn_source_cronjob_list.md index 14ea35c4d..a06b9634a 100644 --- a/docs/cmd/kn_source_cronjob_list.md +++ b/docs/cmd/kn_source_cronjob_list.md @@ -36,8 +36,8 @@ kn source cronjob list [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source_cronjob_update.md b/docs/cmd/kn_source_cronjob_update.md index c3ebf204f..caa9767ab 100644 --- a/docs/cmd/kn_source_cronjob_update.md +++ b/docs/cmd/kn_source_cronjob_update.md @@ -31,8 +31,8 @@ kn source cronjob update NAME --schedule SCHEDULE --sink SERVICE --data DATA [fl ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_source_list-types.md b/docs/cmd/kn_source_list-types.md index 3c749a725..f5e119b42 100644 --- a/docs/cmd/kn_source_list-types.md +++ b/docs/cmd/kn_source_list-types.md @@ -35,8 +35,8 @@ kn source list-types [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_trigger.md b/docs/cmd/kn_trigger.md index f1f4037e7..9ff2c3989 100644 --- a/docs/cmd/kn_trigger.md +++ b/docs/cmd/kn_trigger.md @@ -19,8 +19,8 @@ kn trigger [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_trigger_create.md b/docs/cmd/kn_trigger_create.md index f087b1818..f0211d7c4 100644 --- a/docs/cmd/kn_trigger_create.md +++ b/docs/cmd/kn_trigger_create.md @@ -31,8 +31,8 @@ kn trigger create NAME --broker BROKER --filter KEY=VALUE --sink SINK [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_trigger_delete.md b/docs/cmd/kn_trigger_delete.md index 652fd4ab4..b610cf040 100644 --- a/docs/cmd/kn_trigger_delete.md +++ b/docs/cmd/kn_trigger_delete.md @@ -28,8 +28,8 @@ kn trigger delete NAME [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_trigger_describe.md b/docs/cmd/kn_trigger_describe.md index ba17848b3..e6bdf8b40 100644 --- a/docs/cmd/kn_trigger_describe.md +++ b/docs/cmd/kn_trigger_describe.md @@ -29,8 +29,8 @@ kn trigger describe NAME [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_trigger_list.md b/docs/cmd/kn_trigger_list.md index 1c7d5a6e4..16ca65127 100644 --- a/docs/cmd/kn_trigger_list.md +++ b/docs/cmd/kn_trigger_list.md @@ -36,8 +36,8 @@ kn trigger list [name] [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_trigger_update.md b/docs/cmd/kn_trigger_update.md index 8cfc77d2a..3ac46d6ba 100644 --- a/docs/cmd/kn_trigger_update.md +++ b/docs/cmd/kn_trigger_update.md @@ -38,8 +38,8 @@ kn trigger update NAME --filter KEY=VALUE --sink SINK [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/docs/cmd/kn_version.md b/docs/cmd/kn_version.md index e5f76fea3..089e4a09e 100644 --- a/docs/cmd/kn_version.md +++ b/docs/cmd/kn_version.md @@ -19,8 +19,8 @@ kn version [flags] ### Options inherited from parent commands ``` - --config string kn config file (default is $HOME/.kn/config.yaml) - --kubeconfig string kubectl config file (default is $HOME/.kube/config) + --config string kn config file (default is ~/.config/kn/config.yaml) + --kubeconfig string kubectl config file (default is ~/.kube/config) --log-http log http traffic ``` diff --git a/pkg/kn/commands/plugin/list.go b/pkg/kn/commands/plugin/list.go index a317c9a8a..a2280e5d0 100644 --- a/pkg/kn/commands/plugin/list.go +++ b/pkg/kn/commands/plugin/list.go @@ -42,7 +42,7 @@ func NewPluginListCommand(p *commands.KnParams) *cobra.Command { Available plugins are those that are: - executable - begin with "kn-" -- Kn's plugin directory ~/.kn/plugins +- Kn's plugin directory ` + commands.Cfg.DefaultPluginDir + ` - Anywhere in the execution $PATH (if lookupInPath config variable is enabled)`, RunE: func(cmd *cobra.Command, args []string) error { return listPlugins(cmd, plFlags) diff --git a/pkg/kn/commands/plugin/plugin.go b/pkg/kn/commands/plugin/plugin.go index 580dca4ac..211b3d78f 100644 --- a/pkg/kn/commands/plugin/plugin.go +++ b/pkg/kn/commands/plugin/plugin.go @@ -40,7 +40,7 @@ Please refer to the documentation and examples for more information about how wr // AddPluginFlags plugins-dir and lookup-plugins to cmd func AddPluginFlags(cmd *cobra.Command) { - cmd.Flags().StringVar(&commands.Cfg.PluginsDir, "plugins-dir", "~/.kn/plugins", "kn plugins directory") + cmd.Flags().StringVar(&commands.Cfg.PluginsDir, "plugins-dir", commands.Cfg.DefaultPluginDir, "kn plugins directory") cmd.Flags().BoolVar(commands.Cfg.LookupPlugins, "lookup-plugins", false, "look for kn plugins in $PATH") } @@ -49,6 +49,6 @@ func BindPluginsFlagToViper(cmd *cobra.Command) { viper.BindPFlag("plugins-dir", cmd.Flags().Lookup("plugins-dir")) viper.BindPFlag("lookup-plugins", cmd.Flags().Lookup("lookup-plugins")) - viper.SetDefault("plugins-dir", "~/.kn/plugins") + viper.SetDefault("plugins-dir", commands.Cfg.DefaultPluginDir) viper.SetDefault("lookup-plugins", false) } diff --git a/pkg/kn/commands/plugin/plugin_test.go b/pkg/kn/commands/plugin/plugin_test.go index ee4c4e995..fb34cfb59 100644 --- a/pkg/kn/commands/plugin/plugin_test.go +++ b/pkg/kn/commands/plugin/plugin_test.go @@ -38,10 +38,10 @@ Available Commands: Flags: -h, --help help for plugin --lookup-plugins look for kn plugins in $PATH - --plugins-dir string kn plugins directory (default "~/.kn/plugins") + --plugins-dir string kn plugins directory (default "~/.config/kn/plugins") Global Flags: - --config string kn config file (default is $HOME/.kn/config.yaml) + --config string kn config file (default is $HOME/.config/kn/config.yaml) --kubeconfig string kubectl config file (default is $HOME/.kube/config) Use "kn plugin [command] --help" for more information about a command.` diff --git a/pkg/kn/commands/testing_helper.go b/pkg/kn/commands/testing_helper.go index a0eed6346..9dd7ff0d9 100644 --- a/pkg/kn/commands/testing_helper.go +++ b/pkg/kn/commands/testing_helper.go @@ -177,16 +177,16 @@ Eventing: Manage event subscriptions and channels. Connect up event sources.`, if params.Output != nil { rootCmd.SetOutput(params.Output) } - rootCmd.PersistentFlags().StringVar(&CfgFile, "config", "", "config file (default is $HOME/.kn/config.yaml)") + rootCmd.PersistentFlags().StringVar(&CfgFile, "config", "", "config file (default is ~/.config/kn/config.yaml)") rootCmd.PersistentFlags().StringVar(¶ms.KubeCfgPath, "kubeconfig", "", "kubectl config file (default is $HOME/.kube/config)") - rootCmd.Flags().StringVar(&Cfg.PluginsDir, "plugins-dir", "~/.kn/plugins", "kn plugins directory") + rootCmd.Flags().StringVar(&Cfg.PluginsDir, "plugins-dir", "~/.config/kn/plugins", "kn plugins directory") rootCmd.Flags().BoolVar(Cfg.LookupPlugins, "lookup-plugins", false, "look for kn plugins in $PATH") viper.BindPFlag("plugins-dir", rootCmd.Flags().Lookup("plugins-dir")) viper.BindPFlag("lookup-plugins", rootCmd.Flags().Lookup("lookup-plugins")) - viper.SetDefault("plugins-dir", "~/.kn/plugins") + viper.SetDefault("plugins-dir", "~/.config/kn/plugins") viper.SetDefault("lookup-plugins", false) rootCmd.AddCommand(subCommand) diff --git a/pkg/kn/commands/types.go b/pkg/kn/commands/types.go index 1ddaee181..e604948b7 100644 --- a/pkg/kn/commands/types.go +++ b/pkg/kn/commands/types.go @@ -40,15 +40,19 @@ var CfgFile string // Cfg is Kn's configuration values var Cfg Config = Config{ - PluginsDir: "", - LookupPlugins: newBoolP(false), + DefaultConfigDir: "~/.config/kn", + DefaultPluginDir: "~/.config/kn/plugins", + PluginsDir: "", + LookupPlugins: newBoolP(false), } // Config contains the variables for the Kn config type Config struct { - PluginsDir string - LookupPlugins *bool - SinkPrefixes []SinkPrefixConfig + DefaultConfigDir string + DefaultPluginDir string + PluginsDir string + LookupPlugins *bool + SinkPrefixes []SinkPrefixConfig } // SinkPrefixConfig is the struct of sink prefix config in kn config diff --git a/pkg/kn/core/root.go b/pkg/kn/core/root.go index d85813650..f705afeef 100644 --- a/pkg/kn/core/root.go +++ b/pkg/kn/core/root.go @@ -19,7 +19,8 @@ import ( "fmt" "io" "os" - "path" + "path/filepath" + "runtime" "strconv" "strings" @@ -139,8 +140,9 @@ func NewKnCommand(params ...commands.KnParams) *cobra.Command { } // Persistent flags - rootCmd.PersistentFlags().StringVar(&commands.CfgFile, "config", "", "kn config file (default is $HOME/.kn/config.yaml)") - rootCmd.PersistentFlags().StringVar(&p.KubeCfgPath, "kubeconfig", "", "kubectl config file (default is $HOME/.kube/config)") + rootCmd.PersistentFlags().StringVar(&commands.CfgFile, "config", "", "kn config file (default is "+ + filepath.Join(commands.Cfg.DefaultConfigDir, "config.yaml")+")") + rootCmd.PersistentFlags().StringVar(&p.KubeCfgPath, "kubeconfig", "", "kubectl config file (default is ~/.kube/config)") flags.AddBothBoolFlags(rootCmd.PersistentFlags(), &p.LogHTTP, "log-http", "", false, "log http traffic") plugin.AddPluginFlags(rootCmd) @@ -208,15 +210,13 @@ func initConfig() { // Use config file from the flag. viper.SetConfigFile(commands.CfgFile) } else { - // Find home directory. - home, err := homedir.Dir() + configDir, err := defaultConfigDir() if err != nil { - fmt.Fprintf(os.Stderr, "%v\n", err) - os.Exit(1) + // Deprecated path warning message & continue + fmt.Fprintf(os.Stderr, "\n%v\n\n", err) } - // Search config in home directory with name ".kn" (without extension) - viper.AddConfigPath(path.Join(home, ".kn")) + viper.AddConfigPath(configDir) viper.SetConfigName("config") } @@ -229,6 +229,42 @@ func initConfig() { } } +func defaultConfigDir() (string, error) { + home, err := homedir.Dir() + if err != nil { + fmt.Fprintf(os.Stderr, "%v\n", err) + os.Exit(1) + } + // Check the deprecated path first and fallback to it, add warning to error message + if configHome := filepath.Join(home, ".kn"); dirExists(configHome) { + migrationPath := filepath.Join(home, ".config", "kn") + if runtime.GOOS == "windows" { + migrationPath = filepath.Join(os.Getenv("APPDATA"), "kn") + } + return configHome, fmt.Errorf("WARNING: deprecated kn config directory detected. "+ + "Please move your configuration to: %s", migrationPath) + } + // Respect %APPDATA% on MS Windows + // C:\Documents and Settings\username\Application Data + if runtime.GOOS == "windows" { + return filepath.Join(os.Getenv("APPDATA"), "kn"), nil + } + // Respect XDG_CONFIG_HOME if set + if xdgHome := os.Getenv("XDG_CONFIG_HOME"); xdgHome != "" { + return filepath.Join(xdgHome, "kn"), nil + } + // Fallback to XDG default for both Linux and macOS + // ~/.config/kn + return filepath.Join(home, ".config", "kn"), nil +} + +func dirExists(path string) bool { + if _, err := os.Stat(path); !os.IsNotExist(err) { + return true + } + return false +} + func initConfigFlags() error { if viper.IsSet("plugins-dir") { commands.Cfg.PluginsDir = viper.GetString("plugins-dir") @@ -253,7 +289,14 @@ func initConfigFlags() error { } func extractKnPluginFlags(args []string) (string, bool, error) { - pluginsDir := "~/.kn/plugins" + // Deprecated default path, fallback to it when exist + home, _ := homedir.Dir() + pluginsDir := filepath.Join(home, ".kn", "plugins") + if !dirExists(pluginsDir) { + configDir, _ := defaultConfigDir() + pluginsDir = filepath.Join(configDir, "plugins") + } + lookupPluginsInPath := false dirFlag := "--plugins-dir"