Deploy the litmus-core helm chart on AWS EKS
TypeScriptTo deploy the
litmus-core
helm chart on an AWS EKS cluster using Pulumi, you'll need to perform a few high-level steps:-
Set up an EKS cluster: You'll need a running EKS cluster to deploy your helm charts. Pulumi provides an EKS component resource which simplifies creating and configuring an EKS cluster.
-
Deploy the Helm chart: Once you have your EKS cluster up and running, you can use Pulumi's Helm chart resource to deploy
litmus-core
onto the cluster.
Let's dive into the code. Make sure you have Pulumi installed and configured with your AWS account credentials before running the below program.
import * as eks from "@pulumi/eks"; import * as pulumi from "@pulumi/pulumi"; import * as k8s from "@pulumi/kubernetes"; // Create an EKS cluster const cluster = new eks.Cluster("litmus-cluster", { // Specify the desired settings for the EKS cluster (instance size, node count, etc.) instanceType: "t2.medium", desiredCapacity: 2, // Minimum recommended size for Litmus minSize: 1, maxSize: 3, }); // Export the cluster's kubeconfig. export const kubeconfig = cluster.kubeconfig; // Create a Kubernetes provider instance that uses the EKS cluster's kubeconfig. const provider = new k8s.Provider("k8s-provider", { kubeconfig: cluster.kubeconfig.apply(JSON.stringify), }); // Deploy the litmus-core Helm chart to the EKS cluster const litmusCoreChart = new k8s.helm.v3.Chart("litmus-core", { chart: "litmus", version: "<chart version>", // Specify the version of the litmus-core chart you want to deploy fetchOpts: { repo: "https://litmuschaos.github.io/litmus-helm/", // The repository where the litmus-core chart is hosted }, // You can specify additional Helm values here if necessary }, { provider: provider }); // Export the cluster's name and kubeconfig export const clusterName = cluster.eksCluster.name;
This program does the following:
- It imports the necessary Pulumi packages.
- It declares a new EKS cluster with the name
litmus-cluster
and sets some basic configuration including the desired node size and count. - It exports the
kubeconfig
of the EKS cluster which is required to communicate with your cluster. - It sets up a K8s provider which is important to interact with the Kubernetes API of your EKS cluster.
- It deploys the
litmus-core
Helm chart from thelitmuschaos
Helm repository to your EKS cluster using the created K8s provider.
Before running this program, you need to install
@pulumi/eks
and@pulumi/kubernetes
packages usingnpm
if you haven't done that already:npm install @pulumi/eks @pulumi/kubernetes
To run this Pulumi program, you would navigate to the directory containing the
index.ts
file (this typescript program) and use the Pulumi CLI:pulumi up
This will prompt Pulumi to start creating the resources as defined in the program. The CLI will display the progress and any messages regarding the deployment steps.
Please ensure you've selected the right Helm chart version for
litmus-core
. If unsure, you can look it up at the helm chart's repository mentioned in the program.Remember, running the
pulumi up
command may result in AWS charges for the resources created, so make sure to clean up resources withpulumi destroy
if they are no longer needed to avoid ongoing charges.-