Pulumi + AWS Summit London

Join us to find out how Pulumi’s Infrastructure as Code reduces cloud complexity, accelerates development velocity and helps companies scale and innovate.
import * as eks from "@pulumi/eks";

 // Create an EKS cluster.
 const cluster = new eks.Cluster("cluster", {
     instanceType: "t2.medium",
     desiredCapacity: 2,
     minSize: 1,
     maxSize: 2,
 });

 // Export the cluster's kubeconfig.
 export const kubeconfig = cluster.kubeconfig;
import pulumi
import pulumi_eks as eks

# Create an EKS cluster.
cluster = eks.Cluster(
    "cluster",
    instance_type="t2.medium",
    desired_capacity=2,
    min_size=1,
    max_size=2,
)

# Export the cluster's kubeconfig.
pulumi.export("kubeconfig", cluster.kubeconfig)
package main

import (
    "github.com/pulumi/pulumi-eks/sdk/go/eks/cluster"
    "github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)

func main() {
    pulumi.Run(func(ctx *pulumi.Context) error {
    // Create an EKS cluster.
    cluster, err := cluster.NewCluster(ctx, "cluster",
        cluster.ClusterArgs{
            InstanceType:    pulumi.String("t2.medium"),
            DesiredCapacity: pulumi.Int(2),
            MinSize:         pulumi.Int(1),
            MaxSize:         pulumi.Int(2),
        },
    )
    if err != nil {
        return err
    }

    // Export the cluster's kubeconfig.
    ctx.Export("kubeconfig", cluster.Kubeconfig)

    return nil
    })
}
using System;
using System.Threading.Tasks;
using Pulumi;
using Pulumi.Eks.Cluster;

class EksStack : Stack
{
    public EksStack()
    {
        // Create an EKS cluster.
        var cluster = new Cluster("cluster", new ClusterArgs
        {
            InstanceType = "t2.medium",
            DesiredCapacity = 2,
            MinSize = 1,
            MaxSize = 2,
        });

        // Export the cluster's kubeconfig.
        this.Kubeconfig = cluster.Kubeconfig;
    }

    [Output("kubeconfig")]
    public Output<string> Kubeconfig { get; set; }
}

class Program
{
    static Task<int> Main(string[] args) => Deployment.RunAsync<EksStack>();
}
package com.pulumi.example.eks;

import com.pulumi.Context;
import com.pulumi.Exports;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.eks.Cluster;
import com.pulumi.eks.ClusterArgs;

import java.util.stream.Collectors;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    private static Exports stack(Context ctx) {
        var cluster = new Cluster("my-cluster", ClusterArgs.builder()
                .instanceType("t2.micro")
                .desiredCapacity(2)
                .minSize(1)
                .maxSize(2)
                .build());

        ctx.export("kubeconfig", cluster.kubeconfig());
        return ctx.exports();
    }
}
name: aws-eks
runtime: yaml
description: An EKS cluster
resources:
    cluster:
        type: eks:Cluster
        properties:
            instanceType: "t2.medium"
            desiredCapacity: 2
            minSize: 1
            maxSize: 2
outputs:
    kubeconfig: ${cluster.kubeconfig}

Pulumi + AWS: Better Together

Ship faster, secure your secrets, and enforce cloud compliance and security with Pulumi IaC (infrastructure as code), ESC (secrets management and orchestration), and Insights (cloud asset and compliance management). Our partnership with AWS offers a robust solution for complex cloud deployments, enabling you to:

Automate your AWS infrastructure with Pulumi IaC.

Build and ship infrastructure faster using languages you know and love, like TypeScript, Python, Go, C#, and Java.

Secure your cloud secrets with Pulumi ESC.

Centrally manage all your secrets and configurations. Pull and sync secrets with any secrets store. Consume in any application, tool, or CI/CD platform.

Manage your AWS resources with Pulumi Insights.

Search, compliance remediation, resource visualizations, cost optimization, and AI insights over all your AWS infrastructure.

Workshops

Advanced Secrets Management on Kubernetes
April 9, 2025

Discover how to securely manage and inject secrets in Kubernetes applications with this hands-on Platform Engineering workshop.

AWS Immersion Day: AWS Infrastructure & Platform Engineering
May 7, 2025

Learn best practices for platform engineering on AWS and how Pulumi simplifies infrastructure management, enhances security, and automates cloud operations.

Pulumi Templates for Common Use Cases

Pulumi templates are the fastest way to deploy infrastructure. Templates come with predefined infrastructure as code so you can get started instantly. Find some of our templates below, and Happy Templating!

Container Service Templates

Deploy a container service on AWS with Pulumi and Amazon ECS.

Kubernetes Cluster on AWS

Deploy a Kubernetes cluster on AWS with Pulumi and Amazon EKS.

Serverless Templates

Deploy a serverless application on AWS with Pulumi, AWS Lambda, and Amazon API Gateway.

Virtual Developer Communities

Connect with us. Ask questions, find answers, and share your knowledge and grow with us.

Need technical help?

Use our support portal to get in touch.

Need help getting started?

Send us a note, and someone will reach out to help you.

Want a demo?

Talk with an expert to see how Pulumi fits your use case.

Something else on your mind?

Send us a note.