Deploy the chart-test helm chart on AWS EKS
TypeScriptTo deploy the
chart-test
Helm chart on an AWS EKS cluster using Pulumi in TypeScript, you need to perform the following high-level steps:- Create an EKS cluster
- Deploy the Helm chart onto the EKS cluster
We will use the
@pulumi/eks
package to create an Amazon EKS cluster and the@pulumi/kubernetes
package to deploy the Helm chart.Here's how you can do it:
Step 1: Install the required Pulumi packages
Before writing the code, you need to include Pulumi's EKS and Kubernetes packages in your project. Install these using either
npm
oryarn
as follows:npm install @pulumi/eks @pulumi/kubernetes
or
yarn add @pulumi/eks @pulumi/kubernetes
Step 2: Write the Pulumi Program
Create a new file
index.ts
and add the following TypeScript code:import * as pulumi from "@pulumi/pulumi"; import * as eks from "@pulumi/eks"; import * as k8s from "@pulumi/kubernetes"; // Create an EKS cluster with the default configuration const cluster = new eks.Cluster("my-cluster", {}); // Declare the Helm chart for deployment const chart = new k8s.helm.v3.Chart("chart-test", { chart: "chart-test", version: "1.0.0", // Specify the version of the chart if known fetchOpts: { repo: "http://myhelmrepo.org/charts", // Replace with the chart's repository URL }, namespace: "default", // Specify the namespace if necessary }, { provider: cluster.provider }); // Export the cluster kubeconfig and chart resources export const kubeconfig = cluster.kubeconfig; // This will output the kubeconfig which one can use with `kubectl` // to interact with the Kubernetes cluster, once Pulumi has finished deploying.
Explanation:
- We import the necessary Pulumi libraries for EKS and Kubernetes.
- We create a new EKS cluster with the
eks.Cluster
constructor. - We declare a new Helm chart using
k8s.helm.v3.Chart
. - We pass the required parameters such as:
chart
: The name of the chart to deploy.version
: The version of the chart (if known).fetchOpts.repo
: The URL of the Helm chart repository.namespace
: The namespace where the chart will be deployed.
- We ensure that the Helm chart uses the EKS provider.
- We export the
kubeconfig
which you can use to connect to the cluster withkubectl
after the deployment.
Step 3: Deploy the Pulumi Program
To deploy this program:
- Save the above code in
index.ts
. - Run
pulumi up
in the terminal from the same directory. - Pulumi CLI will prompt for confirmation, review the plan and approve it.
Once the deployment is successful, Pulumi will output the
kubeconfig
to connect to your EKS cluster.Step 4: Access the Cluster
After the execution, you can access your EKS cluster using the
kubectl
CLI tool with the generatedkubeconfig
.Note: Ensure your
kubectl
is installed and available in your PATH. You will also need AWS credentials configured locally that Pulumi can use to provision resources in your AWS account.Step 5: Clean Up
When you no longer need the resources, run
pulumi destroy
to clean up all resources created by your Pulumi program, andpulumi stack rm
to remove the stack if desired.Remember to handle your infrastructure with care to avoid unexpected charges and make sure to clear resources you no longer use.