Deploy the mageai helm chart on AWS EKS
TypeScriptIn this program, we will deploy the
mageai
Helm chart on an AWS EKS (Elastic Kubernetes Service) cluster using Pulumi. We'll create an EKS cluster and then use the Helm package manager to deploy themageai
chart onto the cluster. Throughout the code, you'll find comments explaining each step and the resources used.We will use the following Pulumi resources:
eks.Cluster
: This resource is used to provision an EKS cluster where our Helm chart will be deployed. You can find more information about this resource in the EKS Cluster documentation.helm.v3.Chart
: Although not directly provided in the search results, it's a common resource for deploying Helm charts in Pulumi's Kubernetes package. TheChart
resource wraps Helm deployment logic.
Let's begin with a TypeScript Pulumi program to accomplish this:
import * as pulumi from '@pulumi/pulumi'; import * as aws from '@pulumi/aws'; import * as eks from '@pulumi/eks'; import * as k8s from '@pulumi/kubernetes'; // Step 1: Create an EKS cluster. const cluster = new eks.Cluster("my-eks-cluster", { // Specify the desired capacity and size of the cluster. desiredCapacity: 2, minSize: 1, maxSize: 2, // Optionally, you can customize your cluster further with other properties. }); // Step 2: Deploy the mageai Helm chart into the created EKS cluster. const mageaiChart = new k8s.helm.v3.Chart("mageai", { chart: "mageai", // Specify the chart repository containing the mageai chart. fetchOpts: { repo: "https://mage.github.io/charts/", }, // Here you can define values to override the defaults in the Helm chart. values: { // For example, you can specify the number of replicas, image version etc. }, }, { provider: cluster.provider }); // Export the cluster's kubeconfig and the mageai service URL when complete. export const kubeconfig = cluster.kubeconfig; export const mageaiServiceUrl = mageaiChart.getResourceProperty("v1/Service", "mageai", "status").apply(status => status.loadBalancer.ingress[0].hostname);
This program will do the following:
- Create an AWS EKS cluster named "my-eks-cluster" with a specified minimum, maximum, and desired number of nodes.
- Deploy the
mageai
Helm chart from the specified repository to the EKS cluster. - Provide you with the
kubeconfig
output necessary to manage the Kubernetes cluster with kubectl or other Kubernetes tools. - Export the
mageaiServiceUrl
, which will be the URL you can use to access themageai
deployment's services.
Keep in mind that the actual
values
passed to the Helm chart will need to be tailored to the specific requirements of themageai
Helm chart and your use case. Ensure you have the correct Helm chart name and repository URL. After you run this program withpulumi up
, Pulumi will provision the EKS cluster and deploy the Helm chart, and you can then interact with yourmageai
instance through the exported service URL.