Pulumi and MinIO - Making Multi-Cloud Magic

As we have noted before, one of the great advantages of being cloud native is that integrations are generally pretty seamless. We don’t want to oversimplify, engineering is engineering, but as a rule this makes putting different pieces together easier and more impactful.

One such example is our work with Pulumi. Pulumi enables cloud engineering teams, devops and app developers to define, deploy and manage resources on any public, private or hybrid cloud using their favorite programming languages. Pulumi consists of an open source SDK (10K+ GitHub Stars) and corresponding SaaS that simplifies collaboration on infrastructure and provides robust state management for your cloud resources. This means that teams no longer need to wrestle with complicated configurations or learn bespoke domain-specific languages in order to successfully set up cloud resources.  

Enterprises use Pulumi's infrastructure as code platform to manage their multi-cloud, hybrid, edge, and private cloud environments. These customers want to take advantage of modern programming languages to define cloud resources and require consistency across these environments so their application workloads can seamlessly move across environments. That’s why we’re excited to announce that Pulumi now offers first-class support for MinIO object storage.

With Pulumi, users can now deploy MinIO’s S3-compatible object storage to their private cloud, Azure, Google Cloud, AWS as well as a rich ecosystem of bare metal providers like Equinix Metal. Combined with best-in-class support for Kubernetes and Amazon ECS Anywhere, Pulumi and MinIO make it easier than ever to define, deploy and manage cloud native architectures and applications using modern programming languages like JavaScript/TypeScript, Python, .NET, and Go.

Customers with highly secure or air-gapped environments can opt into Pulumi’s self-hosted model -- effectively running the Pulumi SaaS within the boundary of their own data centers. To enable these deployments to achieve the same reliability and uptime that Pulumi SaaS offers, you can now leverage MinIO as the data store for Pulumi self-hosted deployments.

This gives enterprises maximum flexibility to choose how and where to run Pulumi in their environments.

Managing Minio with Pulumi

Pulumi offers native support for Helm, so, in just a few lines of code, you can define a Kubernetes cluster and create a new MinIO deployment using the MinIO Helm chart.

Defining a new MinIO bucket

Once your cluster is up and running and Minio is deployed, it’s simple to define new buckets using the MinIO provider for Pulumi:

https://www.pulumi.com/docs/intro/cloud-providers/minio/

With your new bucket created you can easily access this storage from your Pulumi program to do things like setting up a static website.

With Minio and Pulumi, you can follow this process for your preferred cloud provider or even manage resources on-premises.

All Together Now

Customers can try it out on their own if they would like. Pulumi has a community edition on GitHub that can be accessed here under Apache v2. MinIO can be accessed here and under AGPL v3. Together, they make magic.

The combined solution is already deployed at one of the most valuable companies on the planet where the concept of multi-cloud development is the strategy. Let us know how it works on our Slack channel or at hello@min.io.