1. Deploy the amundsen helm chart on AWS EKS

    TypeScript

    To 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:

    1. 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.
    2. 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 the kubectl CLI tool on your local machine.
    • k8s.helm.v3.Chart is a Pulumi resource that represents a Helm chart deployment on your Kubernetes cluster. The chart and version 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 and https://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 via kubectl 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.