Crossplane vs Terraform vs Pulumi: Which Infrastructure Automation Fits Your Platform?

Platform teams choosing infrastructure automation face a fundamental decision: traditional Infrastructure as Code (Terraform, Pulumi) or Kubernetes-native control planes (Crossplane). Each approach has different trade-offs for developer self-service, multi-cloud governance, and operational complexity.

Quick comparison

Crossplane (self-hosted) Upbound (managed Crossplane) Terraform / OpenTofu Pulumi
Approach Kubernetes-native control plane Managed Kubernetes control plane Declarative IaC, plan-and-apply SDK-based IaC, imperative
State management Kubernetes etcd (no state files) Managed by Upbound State files (local, S3, Terraform Cloud) State files (local, S3, Pulumi Cloud)
Reconciliation Continuous, detects and fixes drift Continuous Manual: terraform plan && apply Manual: pulumi up
Developer self-service Native: kubectl apply or GitOps Native: kubectl apply or GitOps Requires CI/CD wrapper Requires CI/CD wrapper
Multi-cloud Single control plane, any provider Single control plane, any provider Separate configs per provider Separate programs per provider
Swiss providers cloudscale.ch, Exoscale providers available cloudscale.ch, Exoscale via self-hosted cloudscale.ch, Exoscale providers available cloudscale.ch, Exoscale providers available
Maturity CNCF Graduated (2024) Commercial (Upbound, founded 2020) Mature (HashiCorp, since 2014) Growing (Pulumi, since 2018)
License Apache 2.0 Commercial SaaS BSL 1.1 (Terraform) / MPL 2.0 (OpenTofu) Apache 2.0 (engine) / Commercial (Cloud)
Best for Platform teams on Kubernetes Crossplane without operations overhead Traditional ops teams, brownfield infra Developer-centric teams wanting real code

Terraform / OpenTofu

Terraform is the most widely adopted IaC tool. You define infrastructure in HCL files, run terraform plan to preview changes, and terraform apply to execute them.

Strengths:

Limitations:

Best for: Teams managing traditional infrastructure (VMs, networks, DNS) that don't need developer self-service.

Pulumi

Pulumi uses real programming languages (Python, TypeScript, Go) instead of a DSL. Infrastructure is defined as code in the same languages developers already use.

Strengths:

Limitations:

Best for: Developer-centric teams that want infrastructure in the same language as their applications.

Crossplane (self-hosted)

Crossplane runs as a Kubernetes controller. You define infrastructure as Kubernetes custom resources, and Crossplane continuously reconciles the desired state against reality.

Strengths:

Limitations:

Best for: Platform teams already on Kubernetes that want developer self-service and continuous reconciliation.

Upbound (managed Crossplane)

Upbound offers a managed Crossplane control plane as a SaaS product, plus commercial features for enterprise teams.

Strengths:

Limitations:

Best for: US/global teams wanting Crossplane without Kubernetes operations expertise.

VSHN Crossplane Consulting and Operations

VSHN is an official Crossplane commercial vendor (listed on crossplane.io). We help Swiss platform teams adopt Crossplane: architecture review, composition development, migration, and production operations.

What VSHN offers:

Pricing: CHF 250/hour consulting. Scoped engagements from 1-day architecture reviews to multi-month platform builds.

Production track record: VSHN has run Crossplane in production since 2021, powering the entire VSHN Application Catalog on APPUiO Cloud. Hundreds of managed service instances are provisioned and reconciled daily.

Best for: Swiss platform teams adopting Crossplane who want hands-on expertise and operational support from an official vendor.

Crossplane vs Terraform: the key difference

Terraform automates infrastructure provisioning. Crossplane builds an infrastructure platform with developer self-service.

If your developers submit Jira tickets for infrastructure and your platform team runs terraform apply, Crossplane eliminates that bottleneck. Developers provision what they need via kubectl or GitOps, within the guardrails your platform team defines.

If you manage static infrastructure that rarely changes, Terraform's plan-and-apply workflow is simpler and more mature.

When to choose Crossplane with VSHN

Crossplane with VSHN makes sense when:

For a detailed sovereignty analysis, see our Crossplane sovereignty assessment.

Next steps

Ready to evaluate Crossplane for your platform? Book a free 30-minute call with our Crossplane team. We'll discuss your current setup, identify where Crossplane fits, and outline next steps.

Contact us

Ready to manage cloud infrastructure with Crossplane? Contact us for a free initial consultation. Consulting at CHF 250 per hour, scoped to your needs. Want to hear from a customer first? We can arrange a reference call.

Book a free call

Or send us a message