Terraform vs. Crossplane - how does the future of Cloud Native look like?
- Alexander Riehr
- Jul 1, 2023
- 2 min read

Many companies want to avoid a vendor lock-in on their cloud journey and therefore rely on Kubernetes. Dependencies (like databases or message brokers) are typically provided with Terraform. But now there is a tempting and promising alternative: Crossplane.
Crossplane - the perfect link between Kubernetes and the cloud?
Crossplane is open source software that enables companies to manage cloud infrastructure like any other Kubernetes resource. A complex Kubernetes application typically includes a large number of objects, such as Pods, ReplicaSets, Secrets, and many more. Exactly which objects exist and what form they have is defined in Kubernetes manifest files. A process running in the cluster ensures compliance with the manifests. That works wonderfully. It is also so efficient and pleasant because this procedure is uniform. No matter which addon for Kubernetes is installed: everything can be defined in YAML files and sent to the Kubernetes API. Everything except dependencies in the cloud. This is where separate IaaC templates need to be accessed, and that can get complicated. Who doesn't know the Terraform repositories that grow endlessly and in the end nobody can keep track of them? Crossplane can help here.
Does Crossplane eliminate the need for Terraform?
With Crossplane, cloud resources can be defined and made available as Kubernetes Manifest Files. For example, a manifest file for an AWS S3 bucket looks like this:

Once sent to the Kubernetes API, a controller ensures that an S3 bucket with the correct configuration exists. So the Kubernetes API has “grown” a bit into the cloud.
As nice as that sounds, one must not forget: for Crossplane to work, a Kubernetes cluster must exist. This has to be set up somehow. All in all, Crossplane could streamline and standardize the IaaC repositories: fewer nested Terraform modules, more Helm templates. However, Terraform will not disappear completely because of this. The basic cluster infrastructure has yet to be provided with Terraform, the rest might be handled by Crossplane in the future. However, the project is still in a quite early stage and still feels like a beta at times.
Nevertheless: We believe that nested Terraform modules are a problem and Crossplane can also push the "self service" idea further here. That's why you should definitely keep an eye on the project. It could significantly change what the cloud native applications of the future will look like.
コメント