diff --git a/docs/plugins.md b/docs/plugins.md index c14063cf8..e826afd29 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -118,6 +118,32 @@ There are some strategies for working with plugin commands: Helm will use `usage` and `description` for `helm help` and `helm help myplugin`, but will not handle `helm myplugin --help`. +## Downloader Plugins +By default, Helm is able to fetch Charts using HTTP/S. As of Helm 2.4.0, plugins +can have a special capability to download Charts from arbitrary sources. + +Plugins shall declare this special capability in the `plugin.yaml` file (top level): + +``` +downloaders: +- command: "bin/mydownloader" + protocols: + - "myprotocol" + - "myprotocols" +``` + +If such plugin is installed, Helm can interact with the repository using the specified +protocol scheme by invoking the `command`. The special repository shall be added +similarily to the regular ones: `helm repo add favorite myprotocol://example.com/` +The rules for the special repos are the same to the regular ones: Helm must be able +to download the `index.yaml` file in order to discover and cache the list of +available Charts. + +The defined command will be invoked with the following scheme: +`command certFile keyFile caFile full-URL`. The SSL credentials are coming from the +repo definition, stored in `$HELM_HOME/repository/repositories.yaml`. Downloader +plugin is expected to dump the raw content to stdout and report errors on stderr. + ## Environment Variables When Helm executes a plugin, it passes the outer environment to the plugin, and