This is a Helm plugin which provides the ability to inject additional configuration during Helm release upgrade. It works like
helm upgrade
, but with a --inject
flag.
The default injector is linkerd, but you can specify --injector
to use any other executable in your $PATH with an inject
command such as:
myInjector inject /path/to/file.yaml
Inject linkerd proxy sidecar during Helm upgrade
$ helm inject upgrade [flags]
$ helm inject upgrade --help
upgrade a release including inject
Usage:
inject upgrade [RELEASE] [CHART] [flags]
Flags:
--command string injection command to be used (default "inject")
--debug enable verbose output
--dry-run simulate an upgrade
-h, --help help for upgrade
--inject-flags strings flags to be passed to injector, without leading "--" (can specify multiple). Example: "--inject-flags tls=optional,skip-inbound-ports=25,skip-inbound-ports=26"
--injector string injector to use (must be pre-installed) (default "linkerd")
-i, --install if a release by this name doesn't already exist, run an install
--kubecontext string name of the kubeconfig context to use
--namespace string namespace to install the release into (only used if --install is set). Defaults to the current kube config namespace
--set stringArray set values on the command line (can specify multiple)
--timeout int time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks) (default 300)
--tls enable TLS for request
--tls-cert string path to TLS certificate file (default: $HELM_HOME/cert.pem)
--tls-key string path to TLS key file (default: $HELM_HOME/key.pem)
-f, --values stringArray specify values in a YAML file or a URL (can specify multiple)
$ helm plugin install https://github.com/maorfr/helm-inject
The above will fetch the latest binary release of helm inject
and install it.
If you would like to handle the build yourself, instead of fetching a binary, this is how recommend doing it.
First, set up your environment:
- You need to have Go installed. Make sure to set
$GOPATH
- If you don't have Glide installed, this will install it into
$GOPATH/bin
for you.
Clone this repo into your $GOPATH
. You can use go get -d github.com/maorfr/helm-inject
for that.
$ cd $GOPATH/src/github.com/maorfr/helm-inject
$ make bootstrap build
$ SKIP_BIN_INSTALL=1 helm plugin install $GOPATH/src/github.com/maorfr/helm-inject
That last command will skip fetching the binary install and use the one you built.
- Not all
helm upgrade
flags are added. If you need any other flags fromhelm upgrade
- you are welcome to open an issue, or even submit a PR. - If you want to pass any flags to the injector - use the
--inject-flags
flag. - If you are using the
--kube-context
flag, you need to change it to--kubecontext
, since helm plugins drop this flag.
Check out the first example of a custom executable in the examples section!