lede: Crossplane permet de provisionner AWS/GCP/Azure via Kubernetes manifests. Alternative GitOps à Terraform pour équipes K8s-native.
lede_en: Crossplane provisions AWS/GCP/Azure via Kubernetes manifests. GitOps alternative to Terraform for K8s-native teams.
title_en: Crossplane — Infrastructure as Kubernetes Resource
Crossplane — l'IaC via K8s
Crossplane (CNCF) installe des CRDs dans votre cluster K8s qui exposent les ressources cloud (S3 bucket, RDS, etc.) comme des objets Kubernetes.
apiVersion: rds.aws.upbound.io/v1beta1
kind: Instance
metadata:
name: my-db
spec:
forProvider:
region: us-east-1
engine: postgres
engineVersion: "16"
instanceClass: db.t3.medium
allocatedStorage: 20
providerConfigRef:
name: aws-default
kubectl apply → Crossplane provisionne le RDS sur AWS.
Compositions — l'abstraction
Vous packagez plusieurs ressources comme un XR (Composite Resource) :
apiVersion: platform.example.com/v1alpha1
kind: PostgresInstance
metadata:
name: my-db
spec:
size: small
region: eu-west-1
Sous le capot : crée RDS + IAM role + Secrets + Backup policy automatiquement.
Vos devs utilisent un XR simple. Platform team définit la composition.
Vs Terraform
|
Crossplane |
Terraform |
| Source vérité |
K8s cluster |
State file (S3) |
| Reconciliation |
Continue |
One-shot apply |
| GitOps |
Natif via ArgoCD |
Nécessite Atlantis |
| Multi-cloud |
Oui |
Oui |
| Communauté |
Croissante |
Énorme |
| Talent pool |
Petit |
Large |
Crossplane gagne sur : GitOps natif, reconciliation continue (auto-fix drift), abstraction via compositions.
Terraform gagne sur : maturité, talent disponible, écosystème modules.
Cas d'usage
Platform team : exposer une "internal platform API" aux devs via XRs. Self-service infrastructure.
Multi-cluster : provisionner clusters K8s + leurs ressources cloud depuis un cluster control plane.
GitOps strict : tout dans git, ArgoCD sync infrastructure ET apps.
Setup
helm install crossplane crossplane-stable/crossplane
# Install providers
kubectl apply -f provider-aws.yaml
kubectl apply -f provider-config.yaml
# Now AWS resources as K8s
kubectl apply -f my-bucket.yaml
Effort initial : 1-2 jours pour setup propre.
Verdict
Pour équipes K8s-natives sérieuses : Crossplane mérite évaluation. Self-service infra + GitOps unified.
Pour équipes Terraform productives : pas raison forte de migrer. Coexistence possible (Crossplane pour internal abstractions, Terraform pour cloud raw).
Crossplane — IaC via K8s
Crossplane (CNCF) installs CRDs in your K8s cluster exposing cloud resources (S3 bucket, RDS, etc.) as Kubernetes objects.
apiVersion: rds.aws.upbound.io/v1beta1
kind: Instance
metadata:
name: my-db
spec:
forProvider:
region: us-east-1
engine: postgres
engineVersion: "16"
instanceClass: db.t3.medium
allocatedStorage: 20
providerConfigRef:
name: aws-default
kubectl apply → Crossplane provisions the RDS on AWS.
Compositions — the abstraction
You package multiple resources as a XR (Composite Resource):
apiVersion: platform.example.com/v1alpha1
kind: PostgresInstance
metadata:
name: my-db
spec:
size: small
region: eu-west-1
Underneath: creates RDS + IAM role + Secrets + Backup policy automatically.
Your devs use a simple XR. Platform team defines the composition.
vs Terraform
|
Crossplane |
Terraform |
| Truth source |
K8s cluster |
State file (S3) |
| Reconciliation |
Continuous |
One-shot apply |
| GitOps |
Native via ArgoCD |
Needs Atlantis |
| Multi-cloud |
Yes |
Yes |
| Community |
Growing |
Huge |
| Talent pool |
Small |
Large |
Crossplane wins on: native GitOps, continuous reconciliation (auto-fix drift), abstraction via compositions.
Terraform wins on: maturity, available talent, module ecosystem.
Use cases
Platform team: expose an "internal platform API" to devs via XRs. Self-service infrastructure.
Multi-cluster: provision K8s clusters + their cloud resources from a control plane cluster.
Strict GitOps: everything in git, ArgoCD syncs infrastructure AND apps.
Setup
helm install crossplane crossplane-stable/crossplane
# Install providers
kubectl apply -f provider-aws.yaml
kubectl apply -f provider-config.yaml
# Now AWS resources as K8s
kubectl apply -f my-bucket.yaml
Initial effort: 1-2 days for clean setup.
Verdict
For serious K8s-native teams: Crossplane deserves evaluation. Self-service infra + unified GitOps.
For productive Terraform teams: no strong reason to migrate. Coexistence possible (Crossplane for internal abstractions, Terraform for raw cloud).
lede: Crossplane permet de provisionner AWS/GCP/Azure via Kubernetes manifests. Alternative GitOps à Terraform pour équipes K8s-native.
lede_en: Crossplane provisions AWS/GCP/Azure via Kubernetes manifests. GitOps alternative to Terraform for K8s-native teams.
title_en: Crossplane — Infrastructure as Kubernetes Resource
Crossplane — l'IaC via K8s
Crossplane (CNCF) installe des CRDs dans votre cluster K8s qui exposent les ressources cloud (S3 bucket, RDS, etc.) comme des objets Kubernetes.
kubectl apply→ Crossplane provisionne le RDS sur AWS.Compositions — l'abstraction
Vous packagez plusieurs ressources comme un XR (Composite Resource) :
Sous le capot : crée RDS + IAM role + Secrets + Backup policy automatiquement.
Vos devs utilisent un XR simple. Platform team définit la composition.
Vs Terraform
Crossplane gagne sur : GitOps natif, reconciliation continue (auto-fix drift), abstraction via compositions.
Terraform gagne sur : maturité, talent disponible, écosystème modules.
Cas d'usage
Platform team : exposer une "internal platform API" aux devs via XRs. Self-service infrastructure.
Multi-cluster : provisionner clusters K8s + leurs ressources cloud depuis un cluster control plane.
GitOps strict : tout dans git, ArgoCD sync infrastructure ET apps.
Setup
Effort initial : 1-2 jours pour setup propre.
Verdict
Pour équipes K8s-natives sérieuses : Crossplane mérite évaluation. Self-service infra + GitOps unified.
Pour équipes Terraform productives : pas raison forte de migrer. Coexistence possible (Crossplane pour internal abstractions, Terraform pour cloud raw).
Crossplane — IaC via K8s
Crossplane (CNCF) installs CRDs in your K8s cluster exposing cloud resources (S3 bucket, RDS, etc.) as Kubernetes objects.
kubectl apply→ Crossplane provisions the RDS on AWS.Compositions — the abstraction
You package multiple resources as a XR (Composite Resource):
Underneath: creates RDS + IAM role + Secrets + Backup policy automatically.
Your devs use a simple XR. Platform team defines the composition.
vs Terraform
Crossplane wins on: native GitOps, continuous reconciliation (auto-fix drift), abstraction via compositions.
Terraform wins on: maturity, available talent, module ecosystem.
Use cases
Platform team: expose an "internal platform API" to devs via XRs. Self-service infrastructure.
Multi-cluster: provision K8s clusters + their cloud resources from a control plane cluster.
Strict GitOps: everything in git, ArgoCD syncs infrastructure AND apps.
Setup
Initial effort: 1-2 days for clean setup.
Verdict
For serious K8s-native teams: Crossplane deserves evaluation. Self-service infra + unified GitOps.
For productive Terraform teams: no strong reason to migrate. Coexistence possible (Crossplane for internal abstractions, Terraform for raw cloud).