Skip to content

Latest commit

History

1,375 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Pulumi Examples

This repository contains examples of using Pulumi to build and deploy cloud applications and infrastructure.

Each example has a two-part prefix, <cloud>-<language>, to indicate which <cloud> and <language> it pertains to. For example, <cloud> could be aws for Amazon Web Services, azure for Microsoft Azure, gcp for Google Cloud Platform, kubernetes for Kubernetes, or cloud for Pulumi's cross-cloud programming framework.

See the Pulumi documentation for more details on getting started with Pulumi.

Checking Out a Single Example

You can checkout only the examples you want by using a sparse checkout. The following example shows how checkout only the example you want.

$ mkdir examples &&cd examples
$ git init
$ git remote add origin -f https://github.com/pulumi/examples/
$ git config core.sparseCheckout true
$ echo<example>>> .git/info/sparse-checkout
$ git pull origin master

Outline

AWS

TypeScript

ExampleDescription
API GatewayDeploy a simple REST API that counts the number of times a route has been hit.
API Gateway HTTP API with routesDeploy a HTTP API that invokes a Lambda.
API Gateway HTTP API quickstartDeploy a very simple HTTP API that invokes a Lambda.
API Gateway V1 with EventBridge and LambdaDeploy a REST API that uses EventBridge to target a Lambda function. Includes API Gateway model validation and custom integration-response mapping.
API Gateway V2 with EventBridge and LambdaDeploy an HTTP API that uses EventBridge to target a Lambda function.
Apigateway - Auth0Deploy a simple REST API protected by Auth0.
AppSyncDeploy a basic GraphQL endpoint in AWS AppSync.
AssumeRoleUse AssumeRole to create resources.
ContainersProvision containers on Fargate.
EKS - DashboardDeploy an EKS Kubernetes cluster with an EBS-backed StorageClass, then the Kubernetes Dashboard into the cluster.
EKS - Hello WorldDeploy an EKS Kubernetes cluster with an EBS-backed StorageClass, then a Kubernetes namespace and nginx deployment into the cluster.
EKS - Migrate Node GroupsCreate an EKS cluster and node group to use for workload migration with zero downtime.
FargateBuild, deploy, and run a Dockerized app using ECS, ECR, and Fargate.
Lambda ThumbnailerCreate a video thumbnail extractor using serverless functions.
MinifluxStand up an RSS Service using Fargate and RDS.
Pulumi WebhooksCreate a Pulumi cloud.HttpEndpoint that receives webhook events delivered by the Pulumi Service, then echos the event to Slack.
RDS and AirflowDeploy a RDS Postgres instance and containerized Airflow.
ResourcesCreate various resources, including cloudwatch.Dashboard, cloudwatch.EventRule, cloudwatch.LogGroup, and sqs.Queue.
Ruby on RailsCreate a single EC2 virtual machine instance with a local MySQL database.
S3 LambdaSet up two AWS S3 Buckets and a single Lambda that listens to one and, upon each new object arriving in it, zips it up and copies it to the second bucket.
Serverless ApplicationDeploy a complete serverless C# application using raw resources from @pulumi/aws.
Serverless DatawarehouseDeploy a serverless data warehouse.
SlackbotCreate a simple slackbot that posts a notification to a specific channel any time you're @mentioned anywhere.
Stack ReferenceCreate a "team" EC2 Instance with tags set from upstream stacks.
Static WebsiteServe a static website using S3, CloudFront, Route53, and Certificate Manager.
Step FunctionsUse Step Functions with a Lambda function.
ThumbnailerCreate a video thumbnail extractor using serverless functions and containers.
TwitterQuery Twitter every 2 minutes, store the results in S3, and set up an Athena table and query.
URL ShortenerCreate a serverless URL shortener that uses high-level components.
Voting AppCreate a simple voting app using Redis and Python Flask.
Web ServerDeploy an EC2 Virtual machine using TypeScript to run a Python web server.
Web Server with Manual ProvisioningUse Pulumi dynamic providers to accomplish post-provisioning configuration steps.

JavaScript

ExampleDescription
ContainersProvision containers on Fargate.
S3 Folder ComponentServe a static website on S3 from a component.
S3 FolderServe a static website on S3.
Servless SQS to SlackWire up a serverless AWS Lambda to an AWS SQS queue and post a message to Slack.
Web Server - ComponentDeploy an EC2 instance using a common module for creating an instance.
Web ServerDeploy an EC2 Virtual machine running a Python web server.

Python

ExampleDescription
API Gateway HTTP API quickstartDeploy a very simple HTTP API that invokes a Lambda.
API Gateway V2 with EventBridge and LambdaDeploy an HTTP API that uses EventBridge to target a Lambda function.
AppSyncDeploy a basic GraphQL endpoint in AWS AppSync.
AssumeRoleUse AssumeRole to create resources.
FargateProvision a full ECS Fargate cluster running a load-balanced nginx web server.
ResourcesCreate various resources, including cloudwatch.Dashboard, cloudwatch.EventRule, cloudwatch.LogGroup, and sqs.Queue.
S3 FolderServe a static website on S3.
Stack ReferenceCreate a "team" EC2 Instance with tags set from upstream stacks.
Step FunctionsUse Step Functions with a Lambda function.
Web ServerDeploy an EC2 instance and open port 80.

Go

ExampleDescription
AssumeRoleUse AssumeRole to create resources.
FargateProvision a full ECS Fargate cluster running a load-balanced nginx web server.
LambdaCreate a lambda that does a simple ToUpper on the string input and returns it.
S3 FolderServe a static website on S3.
Web ServerDeploy an EC2 Virtual machine running a Python web server.

C#

ExampleDescription
AssumeRoleUse AssumeRole to create resources.
FargateBuild, deploy, and run a Dockerized app using ECS, ECR, and Fargate.
LambdaCreate a lambda that does a simple ToUpper on the string input and returns it.
S3 FolderServe a static website on S3.
Web ServerDeploy an EC2 instance and open port 80.

F#

ExampleDescription
Lambda Web ServerCreate a web server in AWS lambda using the Giraffe web server.
S3 FolderServe a static website on S3.

Azure

TypeScript

ExampleDescription
Azure Container AppsRun a Docker image on Azure Container Apps.
Azure Container InstanceRun Azure Container Instances on Linux.
Azure Kubernetes ServiceCreate an Azure Kubernetes Service (AKS) Cluster.
Azure App ServiceBuild a web application hosted in App Service and provision Azure SQL Database and Azure Application Insights.
Azure App Service with DockerBuild a web application hosted in App Service from Docker images.
App Service in Virtual NetworkDeploy two App Services - Front web app with VNet injection and Back web app with a Private Endpoint.
Azure Cosmos DB and LogicAppDefine Cosmos DB, API connections, and link them to a logic app.
Azure FunctionsDeploy a Node.js serverless function to Azure Functions.
Azure Functions - ManyDeploy several kinds of Azure Functions created from raw deployment packages.
Azure SDK integrationCall Azure SDK functions from a Pulumi program.
Static WebsiteConfigure static website hosting in Azure Storage.
Azure SynapseStarting point for enterprise analytics solutions based on Azure Synapse.
Web ServerProvision a Linux web server in an Azure Virtual Machine.

Python

ExampleDescription
Azure Container AppsRun a Docker image on Azure Container Apps.
Azure Container InstanceRun Azure Container Instances on Linux.
Azure Kubernetes ServiceCreate an Azure Kubernetes Service (AKS) Cluster.
Azure App ServiceBuild a web application hosted in App Service and provision Azure SQL Database and Azure Application Insights.
Azure App Service with DockerBuild a web application hosted in App Service from Docker images.
Azure SDK integrationCall Azure SDK functions from a Pulumi program in Python.
Azure Cosmos DB and LogicAppDefine Cosmos DB, API connections, and link them to a logic app.
Minecraft ServerDeploy an Azure Virtual Machine and provision a Minecraft server.
Static WebsiteConfigure static website hosting in Azure Storage.
Azure SynapseStarting point for enterprise analytics solutions based on Azure Synapse.
Virtual Data CenterDeploy Azure Virtual Data Center (VDC) hub-and-spoke network stacks in Azure, complete with ExpressRoute and VPN Gateways, Azure Firewall guarding a DMZ, and Azure Bastion.
Web ServerProvision a Linux web server in an Azure Virtual Machine.

Go

ExampleDescription
Azure Container AppsRun a Docker image on Azure Container Apps.
Azure Container InstanceRun Azure Container Instances on Linux.
Azure Kubernetes ServiceCreate an Azure Kubernetes Service (AKS) Cluster.
Azure App Service with DockerBuild a web application hosted in App Service from Docker images.
Static WebsiteConfigure static website hosting in Azure Storage.
Azure SDK integrationCall Azure SDK functions from a Pulumi programin Go.

C#

ExampleDescription
Cluster.
Azure Container AppsRun a Docker image on Azure Container Apps.
Azure Container InstanceRun Azure Container Instances on Linux.
Azure Kubernetes ServiceCreate an Azure Kubernetes Service (AKS) Cluster.
AKS web app with .NET 5Create an Azure Kubernetes Service (AKS) cluster and deploy a web app to it using .NET 5 and C# 9.
AKS + Cosmos DBA Helm chart deployed to AKS that stores TODOs in an Azure Cosmos DB MongoDB API.
Azure App ServiceBuild a web application hosted in App Service and provision Azure SQL Database and Azure Application Insights.
Azure App Service with DockerBuild a web application hosted in App Service from Docker images.
Azure API integrationCall additional Azure API endpoints from a Pulumi program.
Azure Cosmos DB and LogicAppDefine Cosmos DB, API connections, and link them to a logic app.
Azure FunctionsDeploy a Node.js serverless function to Azure Functions.
Static WebsiteConfigure static website hosting in Azure Storage.
Azure SynapseStarting point for enterprise analytics solutions based on Azure Synapse.
Azure SQL ServerAn example of a SQLServer on Azure PaaS.

GCP

TypeScript

ExampleDescription
Cloud RunDeploy a custom Docker image into Google Cloud Run service.
Functions - RawDeploy two Google Cloud Functions implemented in Python and Go.
FunctionsDeploy an HTTP Google Cloud Function endpoint.
GKE - Hello WorldDeploy a GKE cluster, then a Kubernetes namespace and nginx deployment into the cluster.
GKEProvision a Google Kubernetes Engine (GKE) cluster, then a Kubernetes Deployment.
Ruby on RailsDeliver a containerized Ruby on Rails application.
SlackbotCreate a simple slackbot that posts a notification to a specific channel any time you're @mentioned anywhere.

JavaScript

ExampleDescription
Web ServerBuild a web server in Google Cloud.

Python

ExampleDescription
Functions - RawDeploy two Google Cloud Functions implemented in Python and Go.
FunctionsDeploy a Python-based Google Cloud Function.
GKEProvision a Google Kubernetes Engine (GKE) cluster, then a Kubernetes Deployment.
Network ComponentUse a reusable component to create a Google Cloud Network and instance.
nginx ServerBuild a nginx server in Google Cloud.

Go

ExampleDescription
FunctionsDeploy a Go-based Google Cloud Function.
Functions - RawDeploy a Google Cloud Function implemented in Python.
Web ServerBuild a web server in Google Cloud.

C#

ExampleDescription
Functions - RawDeploy a Google Cloud Function implemented in Python.
FunctionsDeploy a Go-based Google Cloud Function.

Kubernetes

TypeScript

ExampleDescription
App Rollout via ConfigMapEnable a change in a ConfigMap to trigger a rollout of an nginx Deployment.
App Rollout via S3 Data ChangeEnable a change in data in S3 to trigger a rollout of an nginx deployment.
Expose DeploymentDeploy nginx to a Kubernetes cluster, and publicly explose it using a Kubernetes Service.
GuestbookBuild and deploy a simple, multi-tier web application using Kubernetes and Docker.
JenkinsDeploy a container running the Jenkins continuous integration system onto a running Kubernetes cluster.
MulticloudCreate managed Kubernetes clusters using AKS, EKS, and GKE, and deploy the application on each cluster.
nginx serverDeploy a replicated nginx server to a Kubernetes cluster, using TypeScript and no YAML.
Sock ShopDeploy a version of the standard Sock Shop microservices reference app.
Staged App RolloutCreate a staged rollout gated by checking that the P90 response time reported by Prometheus is less than some amount.
Wordpress Helm ChartUse the Helm API to deploy v2.1.3 of the Wordpress Helm Chart to a Kubernetes cluster.

Python

ExampleDescription
GuestbookBuild and deploy a simple, multi-tier web application using Kubernetes and Docker.

C#

ExampleDescription
GuestbookBuild and deploy a simple, multi-tier web application using Kubernetes and Docker.

Go

ExampleDescription
GuestbookBuild and deploy a simple, multi-tier web application using Kubernetes and Docker.
App Rollout via ConfigMapEnable a change in a ConfigMap to trigger a rollout of an nginx Deployment.
Wordpress Helm ChartUse the Helm API to deploy v9.6.0 of the Wordpress Helm Chart to a Kubernetes cluster.
Expose DeploymentDeploy nginx to a Kubernetes cluster, and publicly expose it using a Kubernetes Service.

Openstack

Python

Web Server | Deploy an Openstack instance and open port 8000.

Cloud

TypeScript

ExampleDescription
URL Shortener - Cache and HttpServerCreate a simple URL shortener SPA that uses the high-level cloud.Table and cloud.HttpServer components.
URL Shortener - CacheCreate a simple URL shortener SPA that uses the high-level cloud.Table and cloud.API components.
URL ShortenerCreate a complete URL shortener web application that uses the high-level cloud.Table and cloud.HttpServer components.
Voting AppCreate a simple voting app using Redis and Python Flask.

JavaScript

ExampleDescription
API on AWSCreate a simple REST API that counts the number of times a route has been hit.
ContainersProvision containers on Fargate.
HttpServerCreate a simple REST API that counts the number of times a route has been hit.
Thumbnailer - Machine LearningCreate a video thumbnail extractor using serverless functions, containers, and AWS Rekognition.
ThumbnailerCreate a video thumbnail extractor using serverless functions and containers.
TwitterQuery Twitter every 2 minutes, store the results in S3, and set up an Athena table and query.

DigitalOcean

TypeScript

ExampleDescription
DropletsBuild sample architecture.
KubernetesProvision a DigitalOcean Kubernetes cluster.

Python

ExampleDescription
DropletsBuild sample architecture.
KubernetesProvision a DigitalOcean Kubernetes cluster.

C#

ExampleDescription
DropletsBuild sample architecture.
KubernetesProvision a DigitalOcean Kubernetes cluster.

Multicloud

TypeScript

ExampleDescription
BucketsUse a single Pulumi program to provision resources in both AWS and GCP.

F5

TypeScript

ExampleDescription
BigIP Local Traffic ManagerProvide load balancing via an F5 BigIP appliance to backend HTTP instances.

Twilio

TypeScript

ExampleDescription
ComponentCreate a custom Component Resource to parse incoming messages from Twilio.

Linode

JavaScript

ExampleDescription
Web ServerBuild a web server on Linode.

Testing

ExampleDescription
Unit Tests in TypeScriptMock-based unit tests in TypeScript.
Unit Tests in PythonMock-based unit tests in Python.
Unit Tests in GoMock-based unit tests in Go.
Unit Tests in C#Mock-based unit tests in C#.
Testing with PoliciesTests based on Policy-as-Code in TypeScript.
Integration Testing in GoDeploy-check-destroy tests in Go.

Automation API

Automation API Examples

About

Infrastructure, containers, and serverless apps to AWS, Azure, GCP, and Kubernetes... all deployed with Pulumi

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages