Stop wrestling with DSLs. Use the programming languages you already know to build infrastructure on AWS, Azure, Google Cloud, Kubernetes, and thousands of providers. Powered by Pulumi’s open source IaC engine with 20k+ GitHub stars. Get started in 5 minutes.
Write infrastructure code in your favorite language
Powered by Apache 2.0 Licensed Open Source
Pulumi lets you write infrastructure as code using standard programming languages – TypeScript/JavaScript, Python, Go, C#, Java, and YAML. Get autocomplete, type checking, and all your favorite IDE features. Build on AWS, Azure, Google Cloud, Kubernetes, and thousands of providers. Our open source engine is Apache 2.0 licensed and will always remain free.
Use real code, not DSLs
Write infrastructure with loops, conditionals, functions, and classes. Reuse code, catch errors at compile time, and refactor with confidence.
Build on any cloud
Access AWS, Azure, Google Cloud, Kubernetes, and thousands of providers through a unified, consistent API. Same-day updates for new cloud features.
Test before you ship
Preview changes before deploying them. Write unit tests for your infrastructure. Run integration tests against ephemeral environments.
Open Source Core. Pulumi Cloud Built In.
Get started with Pulumi Cloud for free, state management and secrets included. Our open source engine powers everything underneath. Scale to enterprise features when you need them, or self-host if required.
350,000+
engineers building with Pulumi
3,700+
companies in production
1,000s
of cloud and service providers
“Our developers needed a fast, modular, and testable platform for managing cloud infrastructure. Nothing is better than having standard programming languages for building and managing infrastructure”
Austin Byers, Principal Platform Engineer
Ship faster with reusable components
Pulumi Packages - Infrastructure Building Blocks
Stop copy-pasting and create reusable infrastructure components that can be used in any language. Package common patterns once, use everywhere. Share via Pulumi’s registry, npm, PyPI, NuGet, or any package manager.
import * as eks from "@pulumi/eks";
// Create an EKS cluster with the default configuration.
const cluster = new eks.Cluster("eks-cluster");
// Export the cluster's kubeconfig.
export const kubeconfig = cluster.kubeconfig;
import pulumi
import pulumi_eks as eks
# Create an EKS cluster with the default configuration.
cluster = eks.Cluster("eks-cluster")
# Export the cluster's kubeconfig.
pulumi.export("kubeconfig", cluster.kubeconfig)
package main
import (
"github.com/pulumi/pulumi-eks/sdk/go/eks"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Create an EKS cluster with default settings.
cluster, err := eks.NewCluster(ctx, "eks-cluster", nil)
if err != nil {
return err
}
// Export the cluster's kubeconfig.
ctx.Export("kubeconfig", cluster.Kubeconfig)
return nil
})
}
using System.Collections.Generic;
using Pulumi;
using Pulumi.Eks;
await Deployment.RunAsync(() =>
{
// Create an EKS cluster with default settings.
var cluster = new Cluster("eks-cluster");
// Export the cluster's kubeconfig.
return new Dictionary<string, object?>
{
["kubeconfig"] = cluster.Kubeconfig
};
});
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.eks.Cluster;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
private static void stack(Context ctx) {
final var cluster = new Cluster("eks-cluster");
ctx.export("kubeconfig", cluster.kubeconfig());
}
}
resources:
eks-cluster:
type: eks:Cluster
outputs:
kubeconfig: ${cluster.kubeconfig}
Production-ready patterns
Ship EKS clusters, serverless apps, or entire platforms with one line of code using well-architected components.
Thousands of providers
Full API coverage for AWS, Azure, Google Cloud, Kubernetes, plus Cloudflare, Datadog, GitHub, and thousands more.
From VMs to Kubernetes
Manage traditional infrastructure, containers, serverless, and Kubernetes with one tool, one workflow.
Ship infrastructure like software
GitOps & CI/CD Native
Infrastructure as code means infrastructure in Git. Review changes in pull requests. Run tests in CI. Ship through GitHub Actions, GitLab, Jenkins, or any CI/CD system.

Git-native workflow
Every infrastructure change is a pull request. Review, comment, approve. Full audit trail built in.
Catch bugs before production
Run unit tests in milliseconds. Spin up ephemeral environments for integration tests. Fail fast, fix fast.
Works with your CI/CD
Integrates with any CI/CD system. GitHub Actions, GitLab, Jenkins, CircleCI - your choice. Or use the Kubernetes operator for GitOps.
Scale Confidently with Pulumi Cloud
Built for Teams from Day One
Start free with Pulumi Cloud - encrypted state storage, secrets management, and collaboration built in. When you scale, enterprise features like RBAC, policy enforcement, and SSO are ready. All powered by our open source engine.

Encrypted state management
Never lose state again. Automatic versioning and encryption at rest. Pulumi Cloud handles it all, or self-host with S3/Azure Blob.
Secrets that actually work
No more secrets in plaintext. Automatic encryption for sensitive values. Integrate with AWS Secrets Manager, Azure Key Vault, or use Pulumi ESC for centralized secrets.
Ship with confidence
Review every change before it ships. Full history and audit logs. Roll back to any previous state when needed.
See everything, everywhere
Single pane of glass for all your clouds. Search across AWS, Azure, and GCP. Find that rogue EC2 instance in seconds.
Automation API
Infrastructure as code as a library. Embed Pulumi in your app. Build custom CLIs, portals, or platforms. Full programmatic control.
Self-service infrastructure
Let engineers provision their own infrastructure safely. Templates, guardrails, and approval workflows. Works with Backstage or build your own.
Enterprise SSO & RBAC
SAML, SCIM, GitHub, GitLab, Atlassian. Fine-grained permissions. Temporary access tokens. SOC 2 Type II compliant.
Policy as code
Enforce security and compliance automatically. Hundreds of built-in policies or write your own. Block non-compliant infrastructure before it ships.
Complete audit trail
Every action logged. Who changed what, when, and why. Export to SIEM. Compliance reports at your fingertips.
Get started with Infrastructure as Code
Ship your first infrastructure today
Get started in just five minutes. Follow our tutorials for AWS, Azure, Google Cloud, Kubernetes, and more.
Migrating from other tools
Transition from existing infrastructure tools or continue using both. Pulumi has converter tools for Terraform, CloudFormation, ARM, and Kubernetes.