K8sHelmRelease
K8sHelmRelease installs or upgrades a Helm chart on the target cluster. Supports custom values, version pinning, chart repositories, and server-side apply with pruning.
Config
Section titled “Config”| Property | Type | Required | Description |
|---|---|---|---|
cluster |
KubernetesCluster | string |
✅ | Target cluster |
namespace |
K8sNamespace | string |
❌ | Namespace to install into |
dependsOn |
string[] |
❌ | Explicit dependency ordering |
chart |
string |
✅ | Chart name (e.g., nginx-ingress, ./local-chart) |
repo |
string |
❌ | Helm repository URL (e.g., https://charts.bitnami.com/bitnami) |
version |
string |
❌ | Chart version constraint (e.g., ^4.0.0) |
values |
Record<string, unknown> |
❌ | Inline values (merged with any values file) |
valuesFile |
string |
❌ | Path to a values YAML file |
prune |
boolean |
❌ | Remove resources not in the chart (defaults to true) |
forceConflicts |
boolean |
❌ | Force apply on resource conflicts (defaults to true) |
Example
Section titled “Example”const nginxIngress = new K8sHelmRelease({ name: 'nginx-ingress', cluster: myCluster, namespace: 'ingress-nginx', chart: 'ingress-nginx', repo: 'https://kubernetes.github.io/ingress-nginx', version: '4.10.0', values: { controller: { replicaCount: 2, service: { type: 'LoadBalancer' }, }, },})
// Local chart with values fileconst app = new K8sHelmRelease({ name: 'my-app', cluster: myCluster, chart: './charts/my-app', valuesFile: './values/production.yaml', values: { image: { tag: '1.2.3' }, },})Provider support
Section titled “Provider support”| Provider | Supported |
|---|---|
| Kubernetes | ✅ |
| Hetzner | ❌ |
| DigitalOcean | ❌ |
| AWS | ❌ |
| GCP | ❌ |