1. Deploy the filebot-executor helm chart on AWS EKS


    To deploy the filebot-executor Helm chart on AWS EKS using Pulumi, we start by creating an EKS cluster using the @pulumi/eks package, which provides a high-level component to create and manage EKS clusters easily. After the cluster is set up, we then use the @pulumi/kubernetes package to deploy a Helm chart to the cluster.

    First, we'll install the needed Pulumi packages. Ensure you have already installed Pulumi CLI and configured your AWS credentials. Then run:

    $ npm install @pulumi/eks @pulumi/kubernetes

    Next, we'll write a Pulumi program in TypeScript:

    import * as eks from '@pulumi/eks'; import * as k8s from '@pulumi/kubernetes'; // Create an EKS cluster. const cluster = new eks.Cluster("filebot-cluster", { // Specify the desired settings for the cluster here: // instanceType, desiredCapacity, minSize, maxSize, vpcId, subnetIds, etc. }); // 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("k8s-provider", { kubeconfig: cluster.kubeconfig, }); // Deploy the `filebot-executor` Helm chart. const filebotChart = new k8s.helm.v3.Chart("filebot-executor", { chart: "filebot-executor", // You'll need the correct repo and chart values here. // e.g. values: { key: value }, // If the chart is not from a public repo, you'll need to specify the repo or a local path. }, { provider }); // Export the Helm chart resources. export const filebotResources = filebotChart.resources;

    This program performs the following actions:

    • It initializes a new EKS cluster with the eks.Cluster resource. You can customize the cluster by changing its settings, like the instance type, desired capacity, and the specific VPC and subnets if required.
    • It exports the generated kubeconfig which can be used to access the Kubernetes cluster with tools like kubectl.
    • It sets up a Pulumi Kubernetes provider that knows how to communicate with the EKS cluster.
    • It deploys the specified Helm chart using the Chart resource from the Pulumi Kubernetes provider, assuming filebot-executor is the chart's name and it's available in a Helm repository or a local path.

    You'll need to replace the placeholder values in the Helm chart deployment, such as chart, repo, and values, with the appropriate values for the filebot-executor Helm chart that you want to deploy.

    Once you have the above TypeScript code in a file (e.g., index.ts), you can run it using the Pulumi CLI:

    $ pulumi up

    This will provision the EKS cluster and deploy the Helm chart as specified. For any changes in the future, you can simply modify the program and run pulumi up again to apply the changes.