@ -53,7 +53,7 @@ An issue that we are not sure we will be doing will not be added to any mileston
A milestone (and hence release) is considered done when all outstanding issues/PRs have been closed or moved to another milestone.
A milestone (and hence release) is considered done when all outstanding issues/PRs have been closed or moved to another milestone.
## Semver
## Semantic Versioning
Helm maintains a strong commitment to backward compatibility. All of our changes to protocols and formats are backward compatible from Helm 2.0 until Helm 3.0. No features, flags, or commands are removed or substantially modified (other than bug fixes).
Helm maintains a strong commitment to backward compatibility. All of our changes to protocols and formats are backward compatible from Helm 2.0 until Helm 3.0. No features, flags, or commands are removed or substantially modified (other than bug fixes).
f.BoolVar(&inst.replace,"replace",false,"re-use the given name, even if that name is already used. This is unsafe in production")
f.BoolVar(&inst.replace,"replace",false,"re-use the given name, even if that name is already used. This is unsafe in production")
f.StringArrayVar(&inst.values,"set",[]string{},"set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
f.StringArrayVar(&inst.values,"set",[]string{},"set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
f.StringArrayVar(&inst.stringValues,"set-string",[]string{},"set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
f.StringArrayVar(&inst.stringValues,"set-string",[]string{},"set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
f.StringArrayVar(&inst.fileValues,"set-file",[]string{},"set values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)")
f.StringVar(&inst.nameTemplate,"name-template","","specify template used to name the release")
f.StringVar(&inst.nameTemplate,"name-template","","specify template used to name the release")
f.BoolVar(&inst.verify,"verify",false,"verify the package before installing it")
f.BoolVar(&inst.verify,"verify",false,"verify the package before installing it")
f.StringVar(&inst.keyring,"keyring",defaultKeyring(),"location of public keys used for verification")
f.StringVar(&inst.keyring,"keyring",defaultKeyring(),"location of public keys used for verification")
cmd.Flags().VarP(&l.valueFiles,"values","f","specify values in a YAML file (can specify multiple)")
cmd.Flags().VarP(&l.valueFiles,"values","f","specify values in a YAML file (can specify multiple)")
cmd.Flags().StringArrayVar(&l.values,"set",[]string{},"set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
cmd.Flags().StringArrayVar(&l.values,"set",[]string{},"set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
cmd.Flags().StringArrayVar(&l.sValues,"set-string",[]string{},"set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
cmd.Flags().StringArrayVar(&l.sValues,"set-string",[]string{},"set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
cmd.Flags().StringArrayVar(&l.fValues,"set-file",[]string{},"set values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)")
cmd.Flags().StringVar(&l.namespace,"namespace","default","namespace to put the release into")
cmd.Flags().StringVar(&l.namespace,"namespace","default","namespace to put the release into")
cmd.Flags().BoolVar(&l.strict,"strict",false,"fail on lint warnings")
cmd.Flags().BoolVar(&l.strict,"strict",false,"fail on lint warnings")
f.BoolVar(&rollback.disableHooks,"no-hooks",false,"prevent hooks from running during rollback")
f.BoolVar(&rollback.disableHooks,"no-hooks",false,"prevent hooks from running during rollback")
f.Int64Var(&rollback.timeout,"timeout",300,"time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks)")
f.Int64Var(&rollback.timeout,"timeout",300,"time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks)")
f.BoolVar(&rollback.wait,"wait",false,"if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful. It will wait for as long as --timeout")
f.BoolVar(&rollback.wait,"wait",false,"if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful. It will wait for as long as --timeout")
f.StringVar(&rollback.description,"description","","specify a description for the release")
f.StringVar(&t.namespace,"namespace","","namespace to install the release into")
f.StringVar(&t.namespace,"namespace","","namespace to install the release into")
f.StringArrayVar(&t.values,"set",[]string{},"set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
f.StringArrayVar(&t.values,"set",[]string{},"set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
f.StringArrayVar(&t.stringValues,"set-string",[]string{},"set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
f.StringArrayVar(&t.stringValues,"set-string",[]string{},"set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
f.StringArrayVar(&t.fileValues,"set-file",[]string{},"set values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)")
f.StringVar(&t.nameTemplate,"name-template","","specify template used to name the release")
f.StringVar(&t.nameTemplate,"name-template","","specify template used to name the release")
f.StringVar(&t.kubeVersion,"kube-version",defaultKubeVersion,"kubernetes version used as Capabilities.KubeVersion.Major/Minor")
f.StringVar(&t.kubeVersion,"kube-version",defaultKubeVersion,"kubernetes version used as Capabilities.KubeVersion.Major/Minor")
f.StringVar(&t.outputDir,"output-dir","","writes the executed templates to files in output-dir instead of stdout")
f.StringVar(&t.outputDir,"output-dir","","writes the executed templates to files in output-dir instead of stdout")
f.BoolVar(&upgrade.force,"force",false,"force resource update through delete/recreate if needed")
f.BoolVar(&upgrade.force,"force",false,"force resource update through delete/recreate if needed")
f.StringArrayVar(&upgrade.values,"set",[]string{},"set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
f.StringArrayVar(&upgrade.values,"set",[]string{},"set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
f.StringArrayVar(&upgrade.stringValues,"set-string",[]string{},"set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
f.StringArrayVar(&upgrade.stringValues,"set-string",[]string{},"set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
f.StringArrayVar(&upgrade.fileValues,"set-file",[]string{},"set values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)")
f.BoolVar(&upgrade.disableHooks,"disable-hooks",false,"disable pre/post upgrade hooks. DEPRECATED. Use no-hooks")
f.BoolVar(&upgrade.disableHooks,"disable-hooks",false,"disable pre/post upgrade hooks. DEPRECATED. Use no-hooks")
{{ if eq .Values.favorite.drink "coffee" }}mug: true{{ end }}
{{ if (.Values.favorite.drink) and eq .Values.favorite.drink "coffee" }}mug: true{{ end }}
```
```
Since we commented out `drink: coffee` in our last example, the output should not include a `mug: true` flag. But if we add that line back into our `values.yaml` file, the output should look like this:
Note that `.Values.favorite.drink` must be defined or else it will throw an error when comparing it to "coffee". Since we commented out `drink: coffee` in our last example, the output should not include a `mug: true` flag. But if we add that line back into our `values.yaml` file, the output should look like this:
@ -183,8 +183,7 @@ deterministic executing order. Weights are defined using the following annotatio
```
```
Hook weights can be positive or negative numbers but must be represented as
Hook weights can be positive or negative numbers but must be represented as
strings. When Tiller starts the execution cycle of hooks of a particular Kind it
strings. When Tiller starts the execution cycle of hooks of a particular kind (ex. the `pre-install` hooks or `post-install` hooks, etc.) it will sort those hooks in ascending order.
will sort those hooks in ascending order.
It is also possible to define policies that determine when to delete corresponding hook resources. Hook deletion policies are defined using the following annotation:
It is also possible to define policies that determine when to delete corresponding hook resources. Hook deletion policies are defined using the following annotation:
The above will render the template when .Values.foo is defined, but will fail
The above will render the template when .Values.foo is defined, but will fail
to render and exit when .Values.foo is undefined.
to render and exit when .Values.foo is undefined.
## Using the 'tpl' Function
The `tpl` function allows developers to evaluate strings as templates inside a template.
This is useful to pass a template string as a value to a chart or render external configuration files.
Syntax: `{{ tpl TEMPLATE_STRING VALUES }}`
Examples:
```
# values
template: "{{ .Values.name }}"
name: "Tom"
# template
{{ tpl .Values.template . }}
# output
Tom
```
Rendering a external configuration file:
```
# external configuration file conf/app.conf
firstName={{ .Values.firstName }}
lastName={{ .Values.lastName }}
# values
firstName: Peter
lastName: Parker
# template
{{ tpl (.Files.Get "conf/app.conf") . }}
# output
firstName=Peter
lastName=Parker
```
## Creating Image Pull Secrets
## Creating Image Pull Secrets
Image pull secrets are essentially a combination of _registry_, _username_, and _password_. You may need them in an application you are deploying, but to create them requires running _base64_ a couple of times. We can write a helper template to compose the Docker configuration file for use as the Secret's payload. Here is an example:
Image pull secrets are essentially a combination of _registry_, _username_, and _password_. You may need them in an application you are deploying, but to create them requires running _base64_ a couple of times. We can write a helper template to compose the Docker configuration file for use as the Secret's payload. Here is an example:
You can specify the '--values'/'-f' flag multiple times. The priority will be given to the
You can specify the '--values'/'-f' flag multiple times. The priority will be given to the
last (right-most) file specified. For example, if both myvalues.yaml and override.yaml
last (right-most) file specified. For example, if both myvalues.yaml and override.yaml
contained a key called 'Test', the value set in override.yaml would take precedence:
contained a key called 'Test', the value set in override.yaml would take precedence:
@ -77,6 +82,7 @@ helm install [CHART]
--ca-file string verify certificates of HTTPS-enabled servers using this CA bundle
--ca-file string verify certificates of HTTPS-enabled servers using this CA bundle
--cert-file string identify HTTPS client using this SSL certificate file
--cert-file string identify HTTPS client using this SSL certificate file
--dep-up run helm dependency update before installing the chart
--dep-up run helm dependency update before installing the chart
--description string specify a description for the release
--devel use development versions, too. Equivalent to version '>0.0.0-0'. If --version is set, this is ignored.
--devel use development versions, too. Equivalent to version '>0.0.0-0'. If --version is set, this is ignored.
--dry-run simulate an install
--dry-run simulate an install
--key-file string identify HTTPS client using this SSL key file
--key-file string identify HTTPS client using this SSL key file
@ -90,6 +96,7 @@ helm install [CHART]
--replace re-use the given name, even if that name is already used. This is unsafe in production
--replace re-use the given name, even if that name is already used. This is unsafe in production
--repo string chart repository url where to locate the requested chart
--repo string chart repository url where to locate the requested chart
--set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--set-file stringArray set values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)
--set-string stringArray set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--set-string stringArray set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--timeout int time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks) (default 300)
--timeout int time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks) (default 300)
--username string chart repository username where to locate the requested chart
--username string chart repository username where to locate the requested chart
@ -106,6 +113,7 @@ helm install [CHART]
--home string location of your Helm config. Overrides $HELM_HOME (default "~/.helm")
--home string location of your Helm config. Overrides $HELM_HOME (default "~/.helm")
--host string address of Tiller. Overrides $HELM_HOST
--host string address of Tiller. Overrides $HELM_HOST
--kube-context string name of the kubeconfig context to use
--kube-context string name of the kubeconfig context to use
--kubeconfig string absolute path to the kubeconfig file to use
--tiller-connection-timeout int the duration (in seconds) Helm will wait to establish a connection to tiller (default 300)
--tiller-connection-timeout int the duration (in seconds) Helm will wait to establish a connection to tiller (default 300)
--tiller-namespace string namespace of Tiller (default "kube-system")
--tiller-namespace string namespace of Tiller (default "kube-system")
--tls enable TLS connection between Helm and Tiller
--tls enable TLS connection between Helm and Tiller
--namespace string namespace to put the release into (default "default")
--namespace string namespace to put the release into (default "default")
--set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--set-file stringArray set values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)
--set-string stringArray set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--set-string stringArray set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--strict fail on lint warnings
--strict fail on lint warnings
-f, --values valueFiles specify values in a YAML file (can specify multiple) (default [])
-f, --values valueFiles specify values in a YAML file (can specify multiple) (default [])
@ -35,6 +36,7 @@ helm lint [flags] PATH
--home string location of your Helm config. Overrides $HELM_HOME (default "~/.helm")
--home string location of your Helm config. Overrides $HELM_HOME (default "~/.helm")
--host string address of Tiller. Overrides $HELM_HOST
--host string address of Tiller. Overrides $HELM_HOST
--kube-context string name of the kubeconfig context to use
--kube-context string name of the kubeconfig context to use
--kubeconfig string absolute path to the kubeconfig file to use
--tiller-connection-timeout int the duration (in seconds) Helm will wait to establish a connection to tiller (default 300)
--tiller-connection-timeout int the duration (in seconds) Helm will wait to establish a connection to tiller (default 300)
--tiller-namespace string namespace of Tiller (default "kube-system")
--tiller-namespace string namespace of Tiller (default "kube-system")
--tls enable TLS connection between Helm and Tiller
--tls enable TLS connection between Helm and Tiller
--description string specify a description for the release
--force force resource update through delete/recreate if needed
--dry-run simulate a rollback
--no-hooks prevent hooks from running during rollback
--force force resource update through delete/recreate if needed
--recreate-pods performs pods restart for the resource if applicable
--no-hooks prevent hooks from running during rollback
--timeout int time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks) (default 300)
--recreate-pods performs pods restart for the resource if applicable
--wait if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful. It will wait for as long as --timeout
--timeout int time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks) (default 300)
--wait if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful. It will wait for as long as --timeout
--output-dir string writes the executed templates to files in output-dir instead of stdout
--output-dir string writes the executed templates to files in output-dir instead of stdout
--set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--set-file stringArray set values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)
--set-string stringArray set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--set-string stringArray set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
-f, --values valueFiles specify values in a YAML file (can specify multiple) (default [])
-f, --values valueFiles specify values in a YAML file (can specify multiple) (default [])
```
```
@ -45,6 +46,7 @@ helm template [flags] CHART
--home string location of your Helm config. Overrides $HELM_HOME (default "~/.helm")
--home string location of your Helm config. Overrides $HELM_HOME (default "~/.helm")
--host string address of Tiller. Overrides $HELM_HOST
--host string address of Tiller. Overrides $HELM_HOST
--kube-context string name of the kubeconfig context to use
--kube-context string name of the kubeconfig context to use
--kubeconfig string absolute path to the kubeconfig file to use
--tiller-connection-timeout int the duration (in seconds) Helm will wait to establish a connection to tiller (default 300)
--tiller-connection-timeout int the duration (in seconds) Helm will wait to establish a connection to tiller (default 300)
--tiller-namespace string namespace of Tiller (default "kube-system")
--tiller-namespace string namespace of Tiller (default "kube-system")
--tls enable TLS connection between Helm and Tiller
--tls enable TLS connection between Helm and Tiller
@ -14,8 +14,10 @@ a packaged chart, or a fully qualified URL. For chart references, the latest
version will be specified unless the '--version' flag is set.
version will be specified unless the '--version' flag is set.
To override values in a chart, use either the '--values' flag and pass in a file
To override values in a chart, use either the '--values' flag and pass in a file
or use the '--set' flag and pass configuration from the command line, to force string
or use the '--set' flag and pass configuration from the command line. To force string
values, use '--set-string'.
values in '--set', use '--set-string' instead. In case a value is large and therefore
you want not to use neither '--values' nor '--set', use '--set-file' to read the
single large value from file.
You can specify the '--values'/'-f' flag multiple times. The priority will be given to the
You can specify the '--values'/'-f' flag multiple times. The priority will be given to the
last (right-most) file specified. For example, if both myvalues.yaml and override.yaml
last (right-most) file specified. For example, if both myvalues.yaml and override.yaml
@ -39,6 +41,7 @@ helm upgrade [RELEASE] [CHART]
```
```
--ca-file string verify certificates of HTTPS-enabled servers using this CA bundle
--ca-file string verify certificates of HTTPS-enabled servers using this CA bundle
--cert-file string identify HTTPS client using this SSL certificate file
--cert-file string identify HTTPS client using this SSL certificate file
--description string specify the description to use for the upgrade, rather than the default
--devel use development versions, too. Equivalent to version '>0.0.0-0'. If --version is set, this is ignored.
--devel use development versions, too. Equivalent to version '>0.0.0-0'. If --version is set, this is ignored.
--dry-run simulate an upgrade
--dry-run simulate an upgrade
--force force resource update through delete/recreate if needed
--force force resource update through delete/recreate if needed
@ -53,6 +56,7 @@ helm upgrade [RELEASE] [CHART]
--reset-values when upgrading, reset the values to the ones built into the chart
--reset-values when upgrading, reset the values to the ones built into the chart
--reuse-values when upgrading, reuse the last release's values and merge in any overrides from the command line via --set and -f. If '--reset-values' is specified, this is ignored.
--reuse-values when upgrading, reuse the last release's values and merge in any overrides from the command line via --set and -f. If '--reset-values' is specified, this is ignored.
--set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--set-file stringArray set values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)
--set-string stringArray set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--set-string stringArray set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--timeout int time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks) (default 300)
--timeout int time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks) (default 300)
--username string chart repository username where to locate the requested chart
--username string chart repository username where to locate the requested chart
@ -69,6 +73,7 @@ helm upgrade [RELEASE] [CHART]
--home string location of your Helm config. Overrides $HELM_HOME (default "~/.helm")
--home string location of your Helm config. Overrides $HELM_HOME (default "~/.helm")
--host string address of Tiller. Overrides $HELM_HOST
--host string address of Tiller. Overrides $HELM_HOST
--kube-context string name of the kubeconfig context to use
--kube-context string name of the kubeconfig context to use
--kubeconfig string absolute path to the kubeconfig file to use
--tiller-connection-timeout int the duration (in seconds) Helm will wait to establish a connection to tiller (default 300)
--tiller-connection-timeout int the duration (in seconds) Helm will wait to establish a connection to tiller (default 300)
--tiller-namespace string namespace of Tiller (default "kube-system")
--tiller-namespace string namespace of Tiller (default "kube-system")
--tls enable TLS connection between Helm and Tiller
--tls enable TLS connection between Helm and Tiller
@ -16,6 +16,7 @@ or [pull request](https://github.com/kubernetes/helm/pulls).
- [GitLab, Consumer Driven Contracts, Helm and Kubernetes](https://medium.com/@enxebre/gitlab-consumer-driven-contracts-helm-and-kubernetes-b7235a60a1cb#.xwp1y4tgi)
- [GitLab, Consumer Driven Contracts, Helm and Kubernetes](https://medium.com/@enxebre/gitlab-consumer-driven-contracts-helm-and-kubernetes-b7235a60a1cb#.xwp1y4tgi)
- [Writing a Helm Chart](https://www.influxdata.com/packaged-kubernetes-deployments-writing-helm-chart/)
- [Writing a Helm Chart](https://www.influxdata.com/packaged-kubernetes-deployments-writing-helm-chart/)
- [Creating a Helm Plugin in 3 Steps](http://technosophos.com/2017/03/21/creating-a-helm-plugin.html)
- [Creating a Helm Plugin in 3 Steps](http://technosophos.com/2017/03/21/creating-a-helm-plugin.html)
- [Awesome Helm](https://github.com/cdwv/awesome-helm) - List of awesome Helm resources
## Video, Audio, and Podcast
## Video, Audio, and Podcast
@ -38,6 +39,7 @@ or [pull request](https://github.com/kubernetes/helm/pulls).
- [helm-secrets](https://github.com/futuresimple/helm-secrets) - Plugin to manage and store secrets safely
- [helm-secrets](https://github.com/futuresimple/helm-secrets) - Plugin to manage and store secrets safely
- [helm-edit](https://github.com/mstrzele/helm-edit) - Plugin for editing release's values
- [helm-edit](https://github.com/mstrzele/helm-edit) - Plugin for editing release's values
- [helm-gcs](https://github.com/nouney/helm-gcs) - Plugin to manage repositories on Google Cloud Storage
- [helm-gcs](https://github.com/nouney/helm-gcs) - Plugin to manage repositories on Google Cloud Storage
- [helm-cos](https://github.com/imroc/helm-cos) - Plugin to manage repositories on Tencent Cloud Object Storage
- [helm-github](https://github.com/sagansystems/helm-github) - Plugin to install Helm Charts from Github repositories
- [helm-github](https://github.com/sagansystems/helm-github) - Plugin to install Helm Charts from Github repositories
- [helm-monitor](https://github.com/ContainerSolutions/helm-monitor) - Plugin to monitor a release and rollback based on Prometheus/ElasticSearch query
- [helm-monitor](https://github.com/ContainerSolutions/helm-monitor) - Plugin to monitor a release and rollback based on Prometheus/ElasticSearch query
- [helm-k8comp](https://github.com/cststack/k8comp) - Plugin to create Helm Charts from hiera using k8comp
- [helm-k8comp](https://github.com/cststack/k8comp) - Plugin to create Helm Charts from hiera using k8comp
@ -43,7 +43,7 @@ carefully curated and maintained charts. This chart repository is named
You can see which charts are available by running `helm search`:
You can see which charts are available by running `helm search`:
```
```console
$ helm search
$ helm search
NAME VERSION DESCRIPTION
NAME VERSION DESCRIPTION
stable/drupal 0.3.2 One of the most versatile open source content m...
stable/drupal 0.3.2 One of the most versatile open source content m...
@ -56,7 +56,7 @@ stable/mysql 0.1.0 Chart for MySQL
With no filter, `helm search` shows you all of the available charts. You
With no filter, `helm search` shows you all of the available charts. You
can narrow down your results by searching with a filter:
can narrow down your results by searching with a filter:
```
```console
$ helm search mysql
$ helm search mysql
NAME VERSION DESCRIPTION
NAME VERSION DESCRIPTION
stable/mysql 0.1.0 Chart for MySQL
stable/mysql 0.1.0 Chart for MySQL
@ -69,7 +69,7 @@ Why is
`mariadb` in the list? Because its package description relates it to
`mariadb` in the list? Because its package description relates it to
MySQL. We can use `helm inspect chart` to see this:
MySQL. We can use `helm inspect chart` to see this:
```
```console
$ helm inspect stable/mariadb
$ helm inspect stable/mariadb
Fetched stable/mariadb to mariadb-0.5.1.tgz
Fetched stable/mariadb to mariadb-0.5.1.tgz
description: Chart for MariaDB
description: Chart for MariaDB
@ -91,7 +91,7 @@ package you want to install, you can use `helm install` to install it.
To install a new package, use the `helm install` command. At its
To install a new package, use the `helm install` command. At its
simplest, it takes only one argument: The name of the chart.
simplest, it takes only one argument: The name of the chart.
```
```console
$ helm install stable/mariadb
$ helm install stable/mariadb
Fetched stable/mariadb-0.3.0 to /Users/mattbutcher/Code/Go/src/k8s.io/helm/mariadb-0.3.0.tgz
Fetched stable/mariadb-0.3.0 to /Users/mattbutcher/Code/Go/src/k8s.io/helm/mariadb-0.3.0.tgz
happy-panda
happy-panda
@ -139,7 +139,7 @@ may take a long time to install into the cluster.
To keep track of a release's state, or to re-read configuration
To keep track of a release's state, or to re-read configuration
information, you can use `helm status`:
information, you can use `helm status`:
```
```console
$ helm status happy-panda
$ helm status happy-panda
Last Deployed: Wed Sep 28 12:32:28 2016
Last Deployed: Wed Sep 28 12:32:28 2016
Namespace: default
Namespace: default
@ -227,7 +227,7 @@ There are two ways to pass configuration data during install:
- `--values` (or `-f`): Specify a YAML file with overrides. This can be specified multiple times
- `--values` (or `-f`): Specify a YAML file with overrides. This can be specified multiple times
and the rightmost file will take precedence
and the rightmost file will take precedence
- `--set`: Specify overrides on the command line.
- `--set` (and its variants `--set-string` and `--set-file`): Specify overrides on the command line.
If both are used, `--set` values are merged into `--values` with higher precedence.
If both are used, `--set` values are merged into `--values` with higher precedence.
Overrides specified with `--set` are persisted in a configmap. Values that have been
Overrides specified with `--set` are persisted in a configmap. Values that have been
@ -304,6 +304,35 @@ Deeply nested data structures can be difficult to express using `--set`. Chart
designers are encouraged to consider the `--set` usage when designing the format
designers are encouraged to consider the `--set` usage when designing the format
of a `values.yaml` file.
of a `values.yaml` file.
Helm will cast certain values specified with `--set` to integers.
For example, `--set foo=true` results Helm to cast `true` into an int64 value.
In case you want a string, use a `--set`'s variant named `--set-string`. `--set-string foo=true` results in a string value of `"true"`.
`--set-file key=filepath` is another variant of `--set`.
It reads the file and use its content as a value.
An example use case of it is to inject a multi-line text into values without dealing with indentation in YAML.
Say you want to create a [brigade](https://github.com/Azure/brigade) project with certain value containing 5 lines JavaScript code, you might write a `values.yaml` like:
```yaml
defaultScript: |
const { events, Job } = require("brigadier")
function run(e, project) {
console.log("hello default script")
}
events.on("run", run)
```
Being embedded in a YAML, this makes it harder for you to use IDE features and testing framework and so on that supports writing code.
Instead, you can use `--set-file defaultScript=brigade.js` with `brigade.js` containing:
```javascript
const { events, Job } = require("brigadier")
function run(e, project) {
console.log("hello default script")
}
events.on("run", run)
```
### More Installation Methods
### More Installation Methods
The `helm install` command can install from several sources:
The `helm install` command can install from several sources:
@ -392,14 +421,14 @@ is not a full list of cli flags. To see a description of all flags, just run
When it is time to uninstall or delete a release from the cluster, use
When it is time to uninstall or delete a release from the cluster, use
the `helm delete` command:
the `helm delete` command:
```
```console
$ helm delete happy-panda
$ helm delete happy-panda
```
```
This will remove the release from the cluster. You can see all of your
This will remove the release from the cluster. You can see all of your
currently deployed releases with the `helm list` command:
currently deployed releases with the `helm list` command:
fs.StringVar(&s.TillerNamespace,"tiller-namespace","kube-system","namespace of Tiller")
fs.StringVar(&s.TillerNamespace,"tiller-namespace","kube-system","namespace of Tiller")
fs.Int64Var(&s.TillerConnectionTimeout,"tiller-connection-timeout",int64(300),"the duration (in seconds) Helm will wait to establish a connection to tiller")
fs.Int64Var(&s.TillerConnectionTimeout,"tiller-connection-timeout",int64(300),"the duration (in seconds) Helm will wait to establish a connection to tiller")
returnresp,fmt.Errorf("No such release: %s",rlsName)
returnresp,storage.ErrReleaseNotFound(rlsName)
}
}
// ReleaseHistory returns a release's revision history.
// ReleaseHistory returns a release's revision history.
@ -206,11 +228,12 @@ metadata:
// MockReleaseOptions allows for user-configurable options on mock release objects.
// MockReleaseOptions allows for user-configurable options on mock release objects.
typeMockReleaseOptionsstruct{
typeMockReleaseOptionsstruct{
Namestring
Namestring
Versionint32
Versionint32
Chart*chart.Chart
Chart*chart.Chart
StatusCoderelease.Status_Code
StatusCoderelease.Status_Code
Namespacestring
Namespacestring
Descriptionstring
}
}
// ReleaseMock creates a mock release object based on options set by MockReleaseOptions. This function should typically not be used outside of testing.
// ReleaseMock creates a mock release object based on options set by MockReleaseOptions. This function should typically not be used outside of testing.