Skip to content

Multi-Provider Deploy

One topology, any cloud. podmaker abstracts every provider behind a single interface so a plan can provision across clouds without rewrites or lock-in.

How a plan becomes infrastructure

  1. topology-planner receives the parsed plan and returns a deterministic action list — same input, same actions.
  2. It dispatches provisioning to the cloud-broker, a stateless translator that calls the matching provider adapter.
  3. Downstream controllers reconcile each node type: server, lb, cache, database, mesh.
  4. DNS records and certificates are wired per domain.

Supported providers

RoleProviders
ComputeHetzner, DigitalOcean, AWS, Azure, GCP — plus BYO-SSH (existing servers)
DNSCloudflare, Route 53

Mix freely — compute on one cloud, DNS on another.

Adding credentials

Terminal window
pdctl provider add aws
pdctl provider add cloudflare
pdctl provider list

Credentials are scoped and brokered; the cloud-broker forwards them to the adapter layer only for the duration of a request.

Targeting providers from a manifest

Use a server_selector to bind a site to a provider and region:

targets:
- server_selector:
provider: aws
region: eu-central-1
tags: [web]
min: 2

Cost-aware planning

Before provisioning, size the plan:

Terminal window
pdctl plan estimate plan.yaml
pdctl plan compare economy.yaml performance.yaml

Plans come in ECONOMY / BALANCED / PERFORMANCE archetypes — see the plan lifecycle.

→ Marketing overview: Multi-Provider Deploy