Skip to content

HelmChart

Source: src/AWS/EKS/HelmChart.ts

Renders a Helm chart and converges its objects onto an AWS.EKS.Cluster via server-side apply.

The chart is rendered locally with the helm CLI (helm template — install helm on the deploying machine, like Docker for image builds); the rendered objects then flow through the same apply machinery as AWS.EKS.Manifest: Alchemy owns the object lifecycle, corrects drift on every deploy, prunes objects that drop out of the render, and deletes everything on destroy. There is no in-cluster Helm release record and no kubeconfig step — cluster access uses your AWS credentials.

Helm install/upgrade hooks are not executed (objects are applied, not helm installed); charts that depend on hooks for correctness should be installed with Helm directly.

Chart from a repository

const ingress = yield* AWS.EKS.HelmChart("IngressNginx", {
cluster,
chart: "ingress-nginx",
repo: "https://kubernetes.github.io/ingress-nginx",
version: "4.11.2",
namespace: "ingress-nginx",
createNamespace: true,
values: {
controller: { replicaCount: 2 },
},
});

OCI chart

const karpenter = yield* AWS.EKS.HelmChart("Karpenter", {
cluster,
chart: "oci://public.ecr.aws/karpenter/karpenter",
version: "1.0.6",
namespace: "kube-system",
});

Local chart directory

const app = yield* AWS.EKS.HelmChart("App", {
cluster,
chart: "./charts/app",
values: { image: { tag: "v1.2.3" } },
});