Deploy the inferenceservices-controller helm chart on AWS EKS
TypeScriptTo deploy the
inferenceservices-controller
Helm chart on AWS EKS using Pulumi, you'll first need an EKS cluster. If you haven't already created an EKS cluster, the program will include a definition for an EKS cluster as well. After the cluster setup, we will use the Helm chart resource from the Pulumi Kubernetes provider to deploy theinferenceservices-controller
.The following TypeScript program includes:
- Setting up an AWS EKS cluster using the
eks.Cluster
class from the Pulumi EKS package. - Creating a Kubernetes provider that connects to the EKS cluster.
- Deploying the
inferenceservices-controller
Helm chart using theChart
resource from the Pulumi Kubernetes provider.
In this program, we will create an EKS cluster with some default configurations, which you may adjust according to your needs such as
desiredCapacity
,minSize
, andmaxSize
.Please note that for a specific
inferenceservices-controller
Helm chart, you might need to provide additional configuration parameters or specify the correct Helm repository. This program assumes that the chart is publicly available in a Helm repository. If it's not available, you would need to add the Helm repository using thehelm repo add
command before using this Pulumi program.Here is the comprehensive Pulumi TypeScript program that achieves 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'; // Create an EKS cluster. const cluster = new eks.Cluster('my-cluster', { // Specify the desired number of cluster nodes. desiredCapacity: 2, minSize: 1, maxSize: 3, // Pulumi EKS Cluster documentation: https://www.pulumi.com/registry/packages/eks/api-docs/cluster/ }); // Create a Kubernetes provider instance that uses our EKS cluster. const k8sProvider = new k8s.Provider('k8s-provider', { kubeconfig: cluster.kubeconfig.apply(JSON.stringify), }); // Deploy the 'inferenceservices-controller' Helm chart to the EKS cluster. const inferenceservicesControllerChart = new k8s.helm.v3.Chart('inferenceservices-controller', { chart: 'inferenceservices-controller', // If your Helm chart is in a specific repository, specify the 'repo' property. // repo: "https://example.com/helm", // You can pass custom values to the Helm chart by using 'values' property. // values: { /* Custom values here */ }, // Kubernetes Helm Chart documentation: https://www.pulumi.com/registry/packages/kubernetes/api-docs/helm.sh/v3/chart/ }, { provider: k8sProvider }); // Export the cluster's kubeconfig and the Helm chart's status. export const kubeconfig = cluster.kubeconfig; export const chartStatus = inferenceservicesControllerChart.status;
In this program:
- We first define our EKS cluster with minimal configuration required for a quick setup.
- We then create a Kubernetes provider that knows how to communicate with our EKS cluster using the
kubeconfig
output. - We deploy the
inferenceservices-controller
Helm chart using theChart
resource from the@pulumi/kubernetes
package.
Make sure you have Pulumi installed and AWS credentials configured. If you are new to Pulumi, you can follow their Getting Started guide.
Please remember that deploying cloud resources with Pulumi can incur costs. Always review the pricing details for the resources created and ensure that you clean up resources with
pulumi destroy
if they are no longer needed.- Setting up an AWS EKS cluster using the