Deploy the rke2-metrics-server helm chart on AWS EKS
TypeScriptTo deploy the
rke2-metrics-server
Helm chart on AWS EKS (Elastic Kubernetes Service) using Pulumi, you'll complete several steps:- Create an EKS Cluster: Use Pulumi's EKS package to create a new cluster. This package creates the necessary AWS resources for a functioning EKS cluster.
- Deploy the rke2-metrics-server Helm Chart: Once the EKS Cluster is running, you can deploy Helm charts to it using Pulumi's Kubernetes package.
Here's a Pulumi TypeScript program demonstrating how this can be accomplished. This program assumes that you have
kubectl
configured for your EKS cluster. Also, ensure you have the necessary AWS credentials set up for Pulumi to communicate with AWS.import * as eks from "@pulumi/eks"; import * as pulumi from "@pulumi/pulumi"; import * as k8s from "@pulumi/kubernetes"; // Create a new EKS cluster. const cluster = new eks.Cluster("my-cluster", { instanceType: "t2.medium", desiredCapacity: 2, minSize: 1, maxSize: 3, storageClasses: "gp2", deployDashboard: false, }); // Export the cluster's kubeconfig. export const kubeconfig = cluster.kubeconfig; // Create a Kubernetes provider instance that uses our EKS cluster from above. const provider = new k8s.Provider("provider", { kubeconfig: cluster.kubeconfig.apply(JSON.stringify), }); // Deploy the rke2-metrics-server Helm chart. const metricsServerChart = new k8s.helm.v3.Chart("rke2-metrics-server", { chart: "rke2-metrics-server", fetchOpts: { repo: "https://helm.rancher.io", }, }, { provider }); // Export the Helm chart resources. export const metricsServerResources = metricsServerChart.resources;
Explanation:
- We import the necessary Pulumi libraries:
@pulumi/eks
for EKS-related operations,@pulumi/pulumi
as the core library, and@pulumi/kubernetes
to work with Kubernetes resources. - We create an EKS cluster with a desired size and instance types using
eks.Cluster
. - We export the
kubeconfig
as a Pulumi output, which you can use to communicate with your cluster fromkubectl
. - We create a Pulumi Kubernetes provider that's wired to the new EKS cluster using
kubeconfig
. - Using the Pulumi Kubernetes provider, we deploy the
rke2-metrics-server
Helm chart by pointing to its repository and specifying the chart name. We also pass the provider to ensure it uses the correct EKS cluster. - Lastly, we export the resources created by the Helm chart for reference.
Running the Program:
To run this program:
- Save the code in a file named
index.ts
. - Run
pulumi up
within the directory where the file resides. This will start the deployment process. - Pulumi prompts you to confirm the deployment, show you what resources will be created, and proceed with the deployment.
- Once completed, you can use the exported
kubeconfig
to manage your cluster usingkubectl
.
Remember to replace chart values or configurations according to your
rke2-metrics-server
chart's requirements if needed.