k3s/test
Kubernetes Submit Queue d4ece0abc3 Merge pull request #37499 from fabianofranz/kubectl_plugins
Automatic merge from submit-queue

kubectl binary plugins

**What this PR does / why we need it**:

Introduces the ability to extend `kubectl` by adding third-party plugins that will be exposed through `kubectl`.

Plugins are executable commands written in any language. To be included as a plugin, a binary or script file has to

1. be located under one of the supported plugin path locations:
1.1 `~/.kubectl/plugins` dir
1.2. one or more directory set in the `KUBECTL_PLUGINS_PATH` env var
1.3. the `kubectl/plugins` dir under one or more directory set in the `XDG_DATA_DIRS` env var, which defaults to `/usr/local/share:/usr/share`
2. in any of the plugin path above, have a subfolder with the plugin file(s)
3. in the subfolder, contain at least a `plugin.yaml` file that describes the plugin

Example:

```
$ cat ~/.kube/plugins/myplugin/plugin.yaml
name: "myplugin"
shortDesc: "My plugin's short description"
command: "echo Hello plugins!"

$ kubectl myplugin
Hello plugins!
```

~~In case the plugin declares `tunnel: true`, the plugin engine will pass the `KUBECTL_PLUGIN_API_HOST` env var when calling the plugin binary. Plugins can then access the Kube REST API in "http://$KUBECTL_PLUGIN_API_HOST/api" using the same context currently in use by `kubectl`.~~

Test plugins are provided in `pkg/kubectl/plugins/examples`. Just copy (or symlink) the files to `~/.kube/plugins` to test.

**Which issue this PR fixes**:

Related to the discussions in the proposal document: https://github.com/kubernetes/kubernetes/pull/30086 and https://github.com/kubernetes/community/pull/122.

**Release note**:
```release-note
Introduces the ability to extend kubectl by adding third-party plugins. Developer preview, please refer to the documentation for instructions about how to use it.
```
2017-04-28 12:23:59 -07:00
..
e2e Mark PersistentVolumes as [Feature:Volumes] 2017-04-28 08:19:49 -04:00
e2e_federation Merge pull request #41254 from shashidharatd/federation-service-e2e-1 2017-04-27 17:14:06 -07:00
e2e_node Merge pull request #44983 from caesarxuchao/easy-remove-client-go-api-scheme 2017-04-27 17:14:04 -07:00
fixtures Basic support for kubectl plugins 2017-04-28 01:34:07 -03:00
images Bump to go1.8.1 and remove the edge GOROOT 2017-04-25 23:45:47 +03:00
integration Use storage.v1 instead of v1beta1 2017-04-25 10:13:38 +02:00
kubemark hack/cluster: consolidate cluster/ utils to hack/lib/util.sh 2017-03-30 22:34:46 -05:00
list
soak Cleanup: replace some hardcoded codes and remove unused functions 2017-04-25 09:38:25 +08:00
utils move pkg/api/v1/ref.go and pkg/api/v1/resource.go to subpackages. move some functions in resource.go to pkg/api/v1/node and pkg/api/v1/pod 2017-04-17 11:38:11 -07:00
BUILD
OWNERS add eparis ass approver for test and examples 2017-03-30 11:58:49 -04:00
test_owners.csv [Federation] Convert Daemonset to use the generic sync controller 2017-04-27 08:07:33 -07:00