Helm Install

helm install

install a chart

Synopsis

This command installs a chart archive.

The install argument must be a chart reference, a path to a packaged chart, a path to an unpacked chart directory or a URL.

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 a string value use ‘—set-string’. You can use ‘—set-file’ to set individual values from a file when the value itself is too long for the command line or is dynamically generated. You can also use ‘—set-json’ to set json values (scalars/objects/arrays) from the command line.

  1. $ helm install -f myvalues.yaml myredis ./redis

or

  1. $ helm install --set name=prod myredis ./redis

or

  1. $ helm install --set-string long_int=1234567890 myredis ./redis

or

  1. $ helm install --set-file my_script=dothings.sh myredis ./redis

or

  1. $ helm install --set-json 'master.sidecars=[{"name":"sidecar","image":"myImage","imagePullPolicy":"Always","ports":[{"name":"portname","containerPort":1234}]}]' myredis ./redis

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 contained a key called ‘Test’, the value set in override.yaml would take precedence:

  1. $ helm install -f myvalues.yaml -f override.yaml myredis ./redis

You can specify the ‘—set’ flag multiple times. The priority will be given to the last (right-most) set specified. For example, if both ‘bar’ and ‘newbar’ values are set for a key called ‘foo’, the ‘newbar’ value would take precedence:

  1. $ helm install --set foo=bar --set foo=newbar myredis ./redis

Similarly, in the following example ‘foo’ is set to ‘[“four”]‘:

  1. $ helm install --set-json='foo=["one", "two", "three"]' --set-json='foo=["four"]' myredis ./redis

And in the following example, ‘foo’ is set to ‘{“key1”:”value1”,”key2”:”bar”}’:

  1. $ helm install --set-json='foo={"key1":"value1","key2":"value2"}' --set-json='foo.key2="bar"' myredis ./redis

To check the generated manifests of a release without installing the chart, the ‘—debug’ and ‘—dry-run’ flags can be combined.

If —verify is set, the chart MUST have a provenance file, and the provenance file MUST pass all verification steps.

There are six different ways you can express the chart you want to install:

  1. By chart reference: helm install mymaria example/mariadb
  2. By path to a packaged chart: helm install mynginx ./nginx-1.2.3.tgz
  3. By path to an unpacked chart directory: helm install mynginx ./nginx
  4. By absolute URL: helm install mynginx https://example.com/charts/nginx-1.2.3.tgz
  5. By chart reference and repo url: helm install —repo https://example.com/charts/ mynginx nginx
  6. By OCI registries: helm install mynginx —version 1.2.3 oci://example.com/charts/nginx

CHART REFERENCES

A chart reference is a convenient way of referencing a chart in a chart repository.

When you use a chart reference with a repo prefix (‘example/mariadb’), Helm will look in the local configuration for a chart repository named ‘example’, and will then look for a chart in that repository whose name is ‘mariadb’. It will install the latest stable version of that chart until you specify ‘—devel’ flag to also include development version (alpha, beta, and release candidate releases), or supply a version number with the ‘—version’ flag.

To see the list of chart repositories, use ‘helm repo list’. To search for charts in a repository, use ‘helm search’.

  1. helm install [NAME] [CHART] [flags]

Options

  1. --atomic if set, the installation process deletes the installation on failure. The --wait flag will be set automatically if --atomic is used
  2. --ca-file string verify certificates of HTTPS-enabled servers using this CA bundle
  3. --cert-file string identify HTTPS client using this SSL certificate file
  4. --create-namespace create the release namespace if not present
  5. --dependency-update update dependencies if they are missing before installing the chart
  6. --description string add a custom description
  7. --devel use development versions, too. Equivalent to version '>0.0.0-0'. If --version is set, this is ignored
  8. --disable-openapi-validation if set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema
  9. --dry-run string[="client"] simulate an install. If --dry-run is set with no option being specified or as '--dry-run=client', it will not attempt cluster connections. Setting '--dry-run=server' allows attempting cluster connections.
  10. --enable-dns enable DNS lookups when rendering templates
  11. --force force resource updates through a replacement strategy
  12. -g, --generate-name generate the name (and omit the NAME parameter)
  13. -h, --help help for install
  14. --insecure-skip-tls-verify skip tls certificate checks for the chart download
  15. --key-file string identify HTTPS client using this SSL key file
  16. --keyring string location of public keys used for verification (default "~/.gnupg/pubring.gpg")
  17. -l, --labels stringToString Labels that would be added to release metadata. Should be divided by comma. (default [])
  18. --name-template string specify template used to name the release
  19. --no-hooks prevent hooks from running during install
  20. -o, --output format prints the output in the specified format. Allowed values: table, json, yaml (default table)
  21. --pass-credentials pass credentials to all domains
  22. --password string chart repository password where to locate the requested chart
  23. --plain-http use insecure HTTP connections for the chart download
  24. --post-renderer postRendererString the path to an executable to be used for post rendering. If it exists in $PATH, the binary will be used, otherwise it will try to look for the executable at the given path
  25. --post-renderer-args postRendererArgsSlice an argument to the post-renderer (can specify multiple) (default [])
  26. --render-subchart-notes if set, render subchart notes along with the parent
  27. --replace re-use the given name, only if that name is a deleted release which remains in the history. This is unsafe in production
  28. --repo string chart repository url where to locate the requested chart
  29. --set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
  30. --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)
  31. --set-json stringArray set JSON values on the command line (can specify multiple or separate values with commas: key1=jsonval1,key2=jsonval2)
  32. --set-literal stringArray set a literal STRING value on the command line
  33. --set-string stringArray set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
  34. --skip-crds if set, no CRDs will be installed. By default, CRDs are installed if not already present
  35. --timeout duration time to wait for any individual Kubernetes operation (like Jobs for hooks) (default 5m0s)
  36. --username string chart repository username where to locate the requested chart
  37. -f, --values strings specify values in a YAML file or a URL (can specify multiple)
  38. --verify verify the package before using it
  39. --version string specify a version constraint for the chart version to use. This constraint can be a specific tag (e.g. 1.1.1) or it may reference a valid range (e.g. ^2.0.0). If this is not specified, the latest version is used
  40. --wait if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment, StatefulSet, or ReplicaSet are in a ready state before marking the release as successful. It will wait for as long as --timeout
  41. --wait-for-jobs if set and --wait enabled, will wait until all Jobs have been completed before marking the release as successful. It will wait for as long as --timeout

Options inherited from parent commands

  1. --burst-limit int client-side default throttling limit (default 100)
  2. --debug enable verbose output
  3. --kube-apiserver string the address and the port for the Kubernetes API server
  4. --kube-as-group stringArray group to impersonate for the operation, this flag can be repeated to specify multiple groups.
  5. --kube-as-user string username to impersonate for the operation
  6. --kube-ca-file string the certificate authority file for the Kubernetes API server connection
  7. --kube-context string name of the kubeconfig context to use
  8. --kube-insecure-skip-tls-verify if true, the Kubernetes API server's certificate will not be checked for validity. This will make your HTTPS connections insecure
  9. --kube-tls-server-name string server name to use for Kubernetes API server certificate validation. If it is not provided, the hostname used to contact the server is used
  10. --kube-token string bearer token used for authentication
  11. --kubeconfig string path to the kubeconfig file
  12. -n, --namespace string namespace scope for this request
  13. --registry-config string path to the registry config file (default "~/.config/helm/registry/config.json")
  14. --repository-cache string path to the file containing cached repository indexes (default "~/.cache/helm/repository")
  15. --repository-config string path to the file containing repository names and URLs (default "~/.config/helm/repositories.yaml")

SEE ALSO

  • helm - The Helm package manager for Kubernetes.
Auto generated by spf13/cobra on 27-Sep-2023