Come join Pulumi for the industry's first Cloud Engineering Summit! October 7–8. Save Your Spot


The OpenStack provider for Pulumi can be used to provision any of the private and public cloud resources available in OpenStack. The OpenStack provider must be configured with credentials to deploy and update resources in an OpenStack cloud.

See the full API documentation for complete details of the available OpenStack provider APIs.

OpenStack Provider Setup

The OpenStack provider supports several options for providing access to OpenStack credentials. See the OpenStack setup page for details.


const os = require("@pulumi/openstack")

const instance = new os.compute.Instance("test", {
    flavorName: "s1-2",
    imageName: "Ubuntu 16.04",
import * as os from "@pulumi/openstack";

const instance = new os.compute.Instance("test", {
    flavorName: "s1-2",
    imageName: "Ubuntu 16.04",
from pulumi_openstack import compute

instance = compute.Instance("test",
  image_name='Ubuntu 16.04'
import (
  import ""

instance, _ := compute.NewInstance(ctx, "test", &compute.InstanceArgs{
  FlavorName: pulumi.String("s1-2"),
  ImageName:  pulumi.String("Ubuntu 16.04"),
using System.Threading.Tasks;
using Pulumi;
using Pulumi.OpenStack;

class Program
    static Task Main() =>
        Deployment.Run(() => {
            var instance = new OpenStack.Compute.Instance("test", new OpenStack.Compute.InstanceArgs
                FlavorName = "s1-2",
                ImageName = "Ubuntu 16.04",


The following packages are available in package managers:

As with all Pulumi software solutions, the OpenStack provider is open source and available in the pulumi/pulumi-openstack repo. You can see all Pulumi infrastructure and cloud providers here.