As organizations adopt multi-cloud strategies, managing distinct APIs (AWS, Azure, GCP) becomes complex. Modern tools extend the Kubernetes API to manage external cloud resources.


Step 1 — Introduction to Crossplane

Crossplane transforms your Kubernetes cluster into a universal control plane. You can provision an AWS S3 bucket or a GCP Cloud SQL instance using standard kubectl commands.

s3-bucket.yamlyaml
apiVersion: s3.aws.upbound.io/v1beta1
kind: Bucket
metadata:
  name: my-crossplane-bucket
spec:
  forProvider:
    region: us-east-1
  providerConfigRef:
    name: aws-provider

Step 2 — Building Internal Cloud Abstractions

Crossplane allows Platform Teams to define Custom Resources. Developers can request a generic 'Database', and Crossplane dynamically provisions the right service depending on the target cloud.

Why Crossplane over Terraform?

  • Continuous Reconciliation: Automatically fixes manual changes out-of-band.
  • Unified API: Uses the same K8s API for applications and infrastructure.
  • Self-Service: Enables developer self-service through custom abstractions.