Deploy the amundsen helm chart on AWS EKS
TypeScriptTo deploy the Amundsen Helm chart on AWS EKS, you'll need to perform a series of steps. Firstly, you'll have to set up an EKS cluster on AWS. Pulumi provides a higher-level EKS package that simplifies this process. Once the cluster is set up, you can install the Helm chart for Amundsen into your EKS cluster.
Here are the steps you'll need to perform in your Pulumi program:
- Set up an EKS cluster using
eks.Cluster
from the@pulumi/eks
package. This will create the necessary AWS resources like an EC2 instance group or Fargate profiles, depending on your preference. - Once the EKS cluster is ready, use
kubernetes.helm.v3.Chart
from the@pulumi/kubernetes
package to deploy the Amundsen Helm chart to your cluster.
Detailed Pulumi Program (TypeScript)
import * as eks from "@pulumi/eks"; import * as k8s from "@pulumi/kubernetes"; // Create an EKS cluster. const cluster = new eks.Cluster("amundsen-cluster", { // Options are preconfigured for cost and ease-of-use. A real use case would necessitate configuration. desiredCapacity: 2, minSize: 1, maxSize: 2, instanceType: "t2.medium", // Choose an instance type suitable for your workload }); // Export the cluster's kubeconfig. export const kubeconfig = cluster.kubeconfig; // Once the EKS cluster is created, we can use pulumi-kubernetes to deploy the Amundsen Helm chart. const amundsenHelmChart = new k8s.helm.v3.Chart( "amundsen", { chart: "amundsen", // The name of the chart to deploy version: "x.x.x", // Specify the version of the chart you want to deploy. fetchOpts: { repo: "https://helm-repository-containing-amundsen.com", // The repository URL where the Amundsen chart is hosted }, namespace: "amundsen", // The target Kubernetes namespace for the Amundsen deployment }, { provider: cluster.provider }, ); // Optionally, you could export URLs or other information from the deployed chart.
Explanation
eks.Cluster
creates an AWS Elastic Kubernetes Service cluster. You define the minimum, maximum, and desired capacity for auto-scaling purposes, along with the instance type. This snippet uses t2.medium instances for demonstration purposes.kubeconfig
is exported to allow you to interact with your cluster using thekubectl
CLI tool on your local machine.k8s.helm.v3.Chart
is a Pulumi resource that represents a Helm chart deployment on your Kubernetes cluster. Thechart
andversion
properties specify the Helm chart to deploy and the version of the chart you want to use.
Please ensure that you replace
"x.x.x"
with the actual version of the Amundsen Helm chart you wish to deploy andhttps://helm-repository-containing-amundsen.com
with the actual Helm repository URL.For this program to run, be sure to have installed Pulumi CLI, have AWS credentials configured, and install necessary Pulumi packages using the following commands:
npm install @pulumi/eks @pulumi/kubernetes
This Pulumi program should work out of the box to deploy Amundsen on EKS as long as the chart version and repository URL are provided correctly. The
kubeconfig
output allows you to connect to your EKS cluster viakubectl
to manage your Kubernetes resources further.Note that managing cloud resources with Pulumi will incur costs based on the resources you provision; be sure to check AWS's pricing information.
- Set up an EKS cluster using