1. Deploy the turbonomic-importer helm chart on AWS EKS


    To deploy the turbonomic-importer Helm chart on AWS EKS, we need to follow several steps:

    1. Set up an EKS cluster: Firstly, we need to provision an Amazon EKS cluster using Pulumi. We will use the awsx package because it provides higher-level abstractions which simplify EKS cluster setup.

    2. Deploy the Helm chart: After setting up the EKS cluster, we'll employ Pulumi's Kubernetes provider to deploy the turbonomic-importer Helm chart onto the cluster.

    Let's begin by setting up the EKS cluster:

    import * as awsx from "@pulumi/awsx"; import * as k8s from "@pulumi/kubernetes"; // Create an EKS cluster with the default configuration. const cluster = new awsx.eks.Cluster("my-cluster"); // Deploy the turbonomic-importer Helm chart to the cluster. const turbonomicImporterChart = new k8s.helm.v3.Chart( "turbonomic-importer", { // Specify the Helm chart repository and chart name here. // You need to replace `REPO_URL` with the actual repository URL // and `CHART_VERSION` with the version of the chart you want to deploy. repo: "REPO_URL", // e.g., "https://charts.turbonomic.com" chart: "turbonomic-importer", version: "CHART_VERSION", }, { provider: cluster.provider, // Use the EKS cluster's Kubernetes provider. } ); // Export the cluster's kubeconfig and the service endpoint of the application. export const kubeconfig = cluster.kubeconfig; export const turbonomicImporterServiceEndpoint = turbonomicImporterChart.getResourceProperty("v1/Service", "turbonomic-importer", "status").apply(status => status.loadBalancer.ingress[0].hostname);

    In the code above:

    • We import the awsx and kubernetes packages from the Pulumi library. These packages contain the classes and functions required to create resources on AWS and Kubernetes, respectively.
    • We create an EKS cluster using the awsx.eks.Cluster class (documentation). This will provision the resources needed for an EKS cluster with default configurations, such as VPCs, subnets, and node groups.
    • After we have the cluster setup, we create a Helm chart resource using the k8s.helm.v3.Chart class (documentation), which represents a Helm chart deployment in a Kubernetes cluster. You will need to replace REPO_URL with the URL of the Helm chart repository and CHART_VERSION with the version of the turbonomic-importer chart you want to deploy.
    • We export the kubeconfig that can be used to access our EKS cluster with tools like kubectl and a potential service endpoint from the turbonomic-importer Helm chart if it's exposing any services.

    Please replace REPO_URL and CHART_VERSION with the actual values for the turbonomic-importer Helm chart. You may also need to provide additional values in the Chart constructor if the chart requires custom configuration.

    Before running this Pulumi program, make sure you are logged into the AWS CLI and have set your desired AWS region. Additionally, ensure that Pulumi and Node.js are installed, and Pulumi CLI is properly authenticated. Once you're ready, run pulumi up in your CLI to deploy these resources.