# atmos helm template

Render a Helm chart to Kubernetes manifests without touching a cluster.
`template` resolves the stack's `values`, `values_files`, chart reference, and
version, then renders the chart in-process with the Helm Go SDK (equivalent to
`helm template`). Output goes to stdout, to files, or to a provision target.

`atmos helm render` is an alias for this command.

## Usage

```shell
atmos helm template <component> --stack <stack> [options]
```

By default, `template` writes a multi-document YAML stream to stdout:

```shell
atmos helm template monitoring -s plat-ue2-dev
```

Write a single multi-document YAML file:

```shell
atmos helm template monitoring -s plat-ue2-dev --output rendered/monitoring.yaml
```

Write one file per object:

```shell
atmos helm template monitoring -s plat-ue2-dev --output-dir rendered/monitoring --split
```

Deliver the rendered manifests to a provision target (e.g. a Git/ArgoCD repo):

```shell
atmos helm template monitoring -s plat-ue2-dev --target deployment-repo
```

Render all or affected Helm components in dependency order:

```shell
atmos helm template --all -s plat-ue2-dev
atmos helm template --affected --base origin/main
```

Render components filtered by tags or labels (composes with `--all`/`--affected` to narrow the selected set further):

```shell
atmos helm template --all --tags production,tier-1
atmos helm template --affected --labels cost-center=platform

# Combine multiple selectors in one comma-separated --labels value
atmos helm template --affected --labels cost-center=platform,compliance=sox
```

`--output` and `--output-dir` are only supported when rendering one component.

Use Helm-compatible invocation-only value overrides when rendering:

```shell
atmos helm template monitoring -s plat-ue2-dev -f preview-values.yaml --set image.tag=2026.09.09
```

## Flags

- **`--stack`, `-s` (required)** — Atmos stack.
- **`--output` (optional)** — Write rendered manifests to a single multi-document YAML file.
- **`--output-dir` (optional)** — Write rendered manifests to a directory. Without `--split`, Atmos writes `manifest.yaml` in that directory.
- **`--split` (optional)** — Write one YAML file per object. Requires `--output-dir`.
- **`--dependency-update` (optional)** — Fetch declared chart dependencies when they are missing. This may access dependency repositories and update the chart's charts/ directory and lock file.
- **`-f` / `--values`, `--set`, `--set-string`, `--set-file`, `--set-json`, `--set-literal` (optional)** — Repeatable Helm-compatible value overrides for this render. They override stack-resolved values without changing configuration. See runtime value overrides.
- **`--all` (optional)** — Render all Helm components in dependency order.
- **`--affected` (optional)** — Render affected Helm components and their dependencies.
- **`--include-dependents` (optional)** — With `--affected`, include dependent Helm components.
- **`--tags` (optional)** — Filter by tags (comma-separated, matches any): `--tags=production,tier-1`. Composes with `--all`/`--affected` to narrow the selected set further; cannot be combined with a single component argument.
- **`--labels` (optional)** — Filter by labels (comma-separated `key=value` or `key:value` pairs in one flag value, matches all): `--labels=cost-center=platform,compliance=sox`. Composes with `--all`/`--affected`/`--tags`; cannot be combined with a single component argument.

:::note
`render` is accepted as an alias for `template`.
:::

## Try it out

### helm

Copy the example into a new directory and make it your own:

```shell
atmos init examples/helm
cd helm
```

Render the included local chart without contacting a cluster.

```shell
atmos helm template demo -s dev
```

- [Installation guide](/install)
- [Explore the example](/examples/helm)
- [Initialization and repository settings](/cli/commands/init#examples-and-source-directories)
