Deploy the cognito-local helm chart on AWS EKS
TypeScriptTo 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:
- Create an EKS Cluster: Use the
eks.Cluster
resource to provision a new Amazon EKS cluster. - Configure k8s Provider: The
kubernetes
provider is configured to target the created EKS cluster. - Deploy the Helm Chart: With the
kubernetes.helm.v3.Chart
resource, we will deploy thecognito-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:
- Replace
'x.y.z'
with the version of thecognito-local
chart you'd like to deploy. - Fill in any custom values required by the Helm chart under
values
. - 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 ofcognito-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.
- Create an EKS Cluster: Use the