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-providerStep 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.