1. Deploy the cognito-local helm chart on AWS EKS


    To deploy the cognito-local Helm chart on AWS EKS, you will need to perform several steps. This will involve creating an Amazon EKS cluster and then deploying the Helm chart onto the cluster.

    Here's an overview of the process:

    1. Create an EKS Cluster: Use the eks.Cluster resource to provision a new Amazon EKS cluster.
    2. Configure k8s Provider: The kubernetes provider is configured to target the created EKS cluster.
    3. Deploy the Helm Chart: With the kubernetes.helm.v3.Chart resource, we will deploy the cognito-local Helm chart into the EKS cluster.

    To start with, ensure you have Pulumi and AWS CLI set up and properly configured with the necessary IAM permissions. Now, let’s write a Pulumi program in TypeScript to accomplish this task.

    import * as pulumi from '@pulumi/pulumi'; import * as aws from '@pulumi/aws'; 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', { // Specify the desired settings for the cluster instanceType: 't2.medium', desiredCapacity: 2, minSize: 1, maxSize: 2, storageClasses: 'gp2', deployDashboard: false, }); // Step 2: Configure k8s provider to use the kubeconfig from the created EKS cluster const provider = new k8s.Provider('k8s-provider', { kubeconfig: cluster.kubeconfig.apply(JSON.stringify), }); // Step 3: Deploy cognito-local Helm chart const cognitoLocalChart = new k8s.helm.v3.Chart('cognito-local-chart', { // Specify the chart name, version, and any values required chart: 'cognito-local', version: 'x.y.z', // replace with specific chart version // Make sure to add any required repository or specify 'repo' field // If the chart requires custom values, add values here: values: { // ...values }, }, { provider }); // Export the cluster's kubeconfig export const kubeconfig = cluster.kubeconfig; // Export the Helm chart release status export const helmStatus = cognitoLocalChart.status;

    To get started:

    1. Replace 'x.y.z' with the version of the cognito-local chart you'd like to deploy.
    2. Fill in any custom values required by the Helm chart under values.
    3. Deploy the program with Pulumi using the CLI command pulumi up.

    Here's what each step does:

    • The eks.Cluster creates an AWS EKS cluster with the specified instance types and scaling parameters. It is also set not to deploy the Kubernetes dashboard since it is often considered a security risk.

    • The k8s.Provider is set up with the kubeconfig of the newly created EKS cluster to control Kubernetes resources on that cluster.

    • The k8s.helm.v3.Chart represents the Helm chart responsible for the actual deployment of cognito-local on the cluster. It contains configuration such as the chart name and version. You may need to specify additional configuration specific to your chart or requirements.

    The exports at the end make it easy to see important output values such as the kubeconfig needed to interact with the cluster via kubectl and the status of the Helm chart release.