# 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.

## 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
```

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

## 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`
  .
- **`--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.

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