1. Deploy the jaeger-all-in-one-opentelemetry helm chart on AWS EKS

    TypeScript

    To deploy the jaeger-all-in-one-opentelemetry Helm chart on AWS EKS using Pulumi, you would follow these general steps:

    1. Create an EKS cluster: You need an EKS cluster to run your Kubernetes workloads. We'll use the eks.Cluster resource from the Pulumi EKS package which is a high-level component to simplify the creation of the EKS cluster.
    2. Deploy the Helm chart: Once you have a cluster, you can deploy the Helm chart to the cluster. We'll use the Chart resource from the Pulumi Kubernetes package to specify and deploy the Helm chart.

    Let's start with the Pulumi program that accomplishes this:

    import * as eks from "@pulumi/eks"; import * as k8s from "@pulumi/kubernetes"; // Step 1: Create an EKS cluster const cluster = new eks.Cluster("my-cluster", { desiredCapacity: 2, minSize: 1, maxSize: 2, storageClasses: "gp2", deployDashboard: false, }); // Export the cluster's kubeconfig. export const kubeconfig = cluster.kubeconfig; // Step 2: Deploy the Jaeger Helm chart const jaegerChart = new k8s.helm.v3.Chart("jaeger", { chart: "jaeger-all-in-one-opentelemetry", version: "jaeger-version", // specify the chart version you wish to deploy fetchOpts:{ repo: "https://jaegertracing.github.io/helm-charts", }, }, { provider: cluster.provider }); // Export the Helm chart name export const jaegerChartName = jaegerChart.id;

    This program does the following:

    • EKS Cluster Creation: We create an instance of eks.Cluster, which sets up the necessary resources for an EKS cluster. This example assumes you want a small cluster with GPU-based instances (modify desiredCapacity, minSize, and maxSize as needed for your workload).

      You can find more details in the EKS Cluster documentation.

    • Kubeconfig Export: We export the kubeconfig which you will need to interact with your Kubernetes cluster using kubectl and other tools.

    • Jaeger Helm Chart Deployment: We use the Chart resource to deploy the jaeger-all-in-one-opentelemetry Helm chart from its repository. You should specify the exact chart version you want using the version property.

      Chart documentation is available here.

    Additionally, to run the above Pulumi code:

    • You need to have Pulumi CLI installed and configured for use with AWS.
    • Install the necessary Pulumi packages by running npm install @pulumi/eks @pulumi/kubernetes.
    • Save the code in a file with a .ts extension, for example, deploy-jaeger.ts.
    • You can execute this code with the pulumi up command, which will provision the resources as per the configuration. Make sure to review the plan before confirming the deployment.

    Remember, deploying Kubernetes clusters and Helm charts on cloud providers will incur costs, and proper permissions are required. Ensure you have these before proceeding with the deployment.