---
page_title: "helm: helm_template"
sidebar_current: "docs-helm-template"
description: |-
---
# Data Source: helm_template
Render chart templates locally.
`helm_template` renders chart templates locally and exposes the rendered manifests in the data source attributes. `helm_template` mimics the functionality of the `helm template` command.
The arguments aim to be identical to the `helm_release` resource.
For further details on the `helm template` command, refer to the [Helm documentation](https://helm.sh/docs/helm/helm_template/).
## Schema
### Required
- `chart` (String) Chart name to be installed. A path may be used.
- `name` (String) Release name.
### Optional
- `api_versions` (List of String) Kubernetes api versions used for Capabilities.APIVersions
- `atomic` (Boolean) If set, installation process purges chart on fail. The wait flag will be set automatically if atomic is used. Defaults to `false`.
- `crds` (List of String) List of rendered CRDs from the chart.
- `create_namespace` (Boolean) Create the namespace if it does not exist. Defaults to `false`.
- `dependency_update` (Boolean) Run helm dependency update before installing the chart. Defaults to `false`.
- `description` (String) Add a custom description
- `devel` (Boolean) Use chart development versions, too. Equivalent to version '>0.0.0-0'. If `version` is set, this is ignored
- `disable_openapi_validation` (Boolean) If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema.Defaults to `false`.
- `disable_webhooks` (Boolean) Prevent hooks from running.Defaults to `300` seconds.
- `include_crds` (Boolean) Include CRDs in the templated output
- `is_upgrade` (Boolean) Set .Release.IsUpgrade instead of .Release.IsInstall
- `keyring` (String) Location of public keys used for verification. Used only if `verify` is true. Defaults to `/.gnupg/pubring.gpg` in the location set by `home`.
- `kube_version` (String) Kubernetes version used for Capabilities.KubeVersion
- `manifest` (String) Concatenated rendered chart templates. This corresponds to the output of the `helm template` command.
- `manifests` (Map of String) Map of rendered chart templates indexed by the template name.
- `namespace` (String) Namespace to install the release into. Defaults to `default`.
- `notes` (String) Rendered notes if the chart contains a `NOTES.txt`.
- `pass_credentials` (Boolean) Pass credentials to all domains. Defaults to `false`.
- `postrender` (Block List, Max: 1) Postrender command configuration. (see [below for nested schema](#nestedblock--postrender))
- `render_subchart_notes` (Boolean) If set, render subchart notes along with the parent. Defaults to `true`.
- `replace` (Boolean) Re-use the given name, even if that name is already used. This is unsafe in production. Defaults to `false`.
- `repository` (String) Repository where to locate the requested chart. If is a URL the chart is installed without installing the repository.
- `repository_ca_file` (String) The Repositories CA File
- `repository_cert_file` (String) The repositories cert file
- `repository_key_file` (String) The repositories cert key file
- `repository_password` (String, Sensitive) Password for HTTP basic authentication
- `repository_username` (String) Username for HTTP basic authentication
- `reset_values` (Boolean) When upgrading, reset the values to the ones built into the chart.Defaults to `false`.
- `reuse_values` (Boolean) When upgrading, reuse the last release's values and merge in any overrides. If 'reset_values' is specified, this is ignored. Defaults to `false`.
- `set` (Block Set) Custom values to be merged with the values. (see [below for nested schema](#nestedblock--set))
- `set_list` (Block List) Custom list values to be merged with the values. (see [below for nested schema](#nestedblock--set_list))
- `set_sensitive` (Block Set) Custom sensitive values to be merged with the values. (see [below for nested schema](#nestedblock--set_sensitive))
- `set_string` (Block Set, Deprecated) Custom string values to be merged with the values. (see [below for nested schema](#nestedblock--set_string))
- `show_only` (List of String) Only show manifests rendered from the given templates
- `skip_crds` (Boolean) If set, no CRDs will be installed. By default, CRDs are installed if not already present. Defaults to `false`.
- `skip_tests` (Boolean) If set, tests will not be rendered. By default, tests are rendered. Defaults to `false`.
- `timeout` (Number) Time in seconds to wait for any individual kubernetes operation. Defaults to `300` seconds.
- `validate` (Boolean) Validate your manifests against the Kubernetes cluster you are currently pointing at. This is the same validation performed on an install
- `values` (List of String) List of values in raw yaml format to pass to helm.
- `verify` (Boolean) Verify the package before installing it.Defaults to `false`.
- `version` (String) Specify the exact chart version to install. If this is not specified, the latest version is installed.
- `wait` (Boolean) Will wait until all resources are in a ready state before marking the release as successful.Defaults to `true`.
### Read-Only
- `id` (String) The ID of this resource.
### Nested Schema for `postrender`
Required:
- `binary_path` (String) The command binary path.
### Nested Schema for `set`
Required:
- `name` (String)
Optional:
- `type` (String)
- `value` (String)
### Nested Schema for `set_list`
Required:
- `name` (String)
- `value` (List of String)
### Nested Schema for `set_sensitive`
Required:
- `name` (String)
- `value` (String, Sensitive)
Optional:
- `type` (String)
### Nested Schema for `set_string`
Required:
- `name` (String)
- `value` (String)
## Example Usage
### Render all chart templates
The following example renders all templates of the `mariadb` chart of the official Helm stable repository. Concatenated manifests are exposed as output variable `mariadb_instance_manifest`.
```terraform
data "helm_template" "mariadb_instance" {
name = "mariadb-instance"
namespace = "default"
repository = "https://charts.helm.sh/stable"
chart = "mariadb"
version = "7.1.0"
set = [
{
name = "service.port"
value = "13306"
}
]
set_sensitive = [
{
name = "rootUser.password"
value = "s3cr3t!"
}
]
}
resource "local_file" "mariadb_manifests" {
for_each = data.helm_template.mariadb_instance.manifests
filename = "./${each.key}"
content = each.value
}
output "mariadb_instance_manifest" {
value = data.helm_template.mariadb_instance.manifest
}
output "mariadb_instance_manifests" {
value = data.helm_template.mariadb_instance.manifests
}
output "mariadb_instance_notes" {
value = data.helm_template.mariadb_instance.notes
}
```
### Render selected chart templates
The following example renders only the templates `master-statefulset.yaml` and `master-svc.yaml` of the `mariadb` chart of the official Helm stable repository.
```terraform
data "helm_template" "mariadb_instance" {
name = "mariadb-instance"
namespace = "default"
repository = "https://charts.helm.sh/stable"
chart = "mariadb"
version = "7.1.0"
show_only = [
"templates/master-statefulset.yaml",
"templates/master-svc.yaml",
]
set = [
{
name = "service.port"
value = "13306"
}
]
set_sensitive = [
{
name = "rootUser.password"
value = "s3cr3t!"
}
]
}
resource "local_file" "mariadb_manifests" {
for_each = data.helm_template.mariadb_instance.manifests
filename = "./${each.key}"
content = each.value
}
output "mariadb_instance_manifest" {
value = data.helm_template.mariadb_instance.manifest
}
output "mariadb_instance_manifests" {
value = data.helm_template.mariadb_instance.manifests
}
output "mariadb_instance_notes" {
value = data.helm_template.mariadb_instance.notes
}
```