Self-Hosted Pulumi Service

This guide presents the overall architecture for self-hosting the Pulumi Service as well as available reference architectures and related installers.

Managed Pulumi Service vs Self-Hosted Pulumi Service

Pulumi Service (i.e., app.pulumi.com) is a fully managed SaaS providing state management, a secrets manager and features such as single sign-on (SSO), audit logs, centralized stack and policy management to name a few. As a SaaS, Pulumi manages all aspects of the service.

The self-hosted version of the service provides all the same capabilities as the SaaS offering. The self-hosted deployment requires that the customer manages data backups and keeping the service running and up to date. However, the self-hosted solution allows the customer to run the service fully within their own environment.

If you are unsure about whether a self-hosted version of the Pulumi Service is right for your organization, contact us to learn more.

Deployment Topology

Pulumi can be installed in almost any on-premise or cloud provider environment. The self-hosted install can be integrated with your preferred identity provider as well, such as:

  • GitHub Enterprise
  • GitLab Enterprise
  • SAML SSO
  • Email/password identity

Here are some examples of deployment topologies:

Internet-Accessible Deployment

Internet-Accessible Deployment

Intranet-Only Deployment

Intranet-Only Deployment

Deployment Options

The Pulumi Service Docker container images can be run using any OCI-compatible container orchestrator.

However, Pulumi provides installers to support common deployment environments:

  • Quickstart Docker Compose Install: Using a Pulumi-provided set of docker-compose files and bash scripts, one can deploy a small system for testing in a local Docker environment.
  • ECS-Hosted Install: Using a Pulumi-provided set of Pulumi programs written in TypeScript or Go, one can automate the deployment and maintenance of a production-grade self-hosted solution.
  • EKS-Hosted Install: Using a Pulumi-provided set of Pulumi programs written in TypeScript, one can automate the deployment and maintenance of a production-grade self-hosted solution running on Amazon Elastic Kubernetes Sevice (EKS). This solution most closely matches the managed service deployment model.
  • AKS-Hosted Install: Using a Pulumi-provided set of Pulumi programs written in TypeScript, one can automate the deployment and maintenance of a production-grade self-hosted solution on Azure Kubernetes Service (AKS).
  • GKE-Hosted Install: Using a Pulumi-provided set of Pulumi programs written in TypeScript, one can automate the deployment and maintenance of a production-grade self-hosted solution on Google Kubernetes Engine (GKE).
  • Local-Docker Install: Using a Pulumi-provided Pulumi program written in TypeScript, one can automate the deployment and maintenance of a production-grade self-hosted solution using a customer-provided docker environment, a customer-provided MySQL database and a customer-provided object store (e.g. Minio).

Components

The Pulumi self-hosted Components consist of Docker images for the Pulumi Service’s frontend UI and backend API.