Crossplane — Kubernetes-native IaC. Manages cloud resources via CRD.
Advantages:
Installation:
1helm repo add crossplane-stable https://charts.crossplane.io/stable2helm install crossplane crossplane-stable/crossplane --namespace crossplane-system --create-namespace
Provider (AWS):
1apiVersion: pkg.crossplane.io/v12kind: Provider3metadata:4 name: provider-aws5spec:6 package: crossplane-contrib/provider-aws:v0.47.17---8apiVersion: v19kind: Secret10metadata:11 name: aws-credentials12 namespace: crossplane-system13type: Opaque14data:15 credentials: <base64>16---17apiVersion: aws.crossplane.io/v1beta118kind: ProviderConfig19metadata:20 name: aws-provider21spec:22 credentials:23 source: Secret24 secretRef:25 name: aws-credentials26 namespace: crossplane-system27 key: credentials28 region: us-east-1
Managed Resource:
1apiVersion: ec2.aws.crossplane.io/v1beta12kind: Instance3metadata:4 name: my-ec25spec:6 forProvider:7 instanceType: t3.micro8 amiId: ami-xxx9 region: us-east-110 providerConfigRef:11 name: aws-provider12 writeConnectionSecretToRef:13 name: my-ec2-conn14 namespace: crossplane-system
Composition (abstractions for developers):
1apiVersion: aws.platformref.crossplane.io/v1alpha12kind: Network3metadata:4 name: my-network5spec:6 parameters:7 name: my-vpc8 region: us-west-29 compositionSelector:10 matchLabels:11 provider: aws
Crossplane vs Terraform: Crossplane — Kubernetes-native, GitOps, reconciliation loop. Terraform — simpler, state management.