Terraform has become the de facto industry standard for Infrastructure as Code (IaC). Many organizations have invested significant time, effort, and energy into their Terraform setup. Understandably, the idea of changing this setup can be daunting.
The good news? With Humanitec, you don't have to.
Keep your existing Terraform
In the platform engineering space, many tools promise to improve infrastructure provisioning, management, automation, and orchestration by deeply integrating with Terraform. However, these often require significant changes to your Terraform setup. Some even ask you to rewrite your Terraform files and modules, which can be a lot of work, especially if you decide to migrate away from such a solution later. Not to mention the heartbreak of having to cast away work that your teams may have spent incredible time and energy on.
Humanitec is different. We understand the importance of not disrupting your existing processes. That's why Humanitec doesn't force itself into your Terraform setup. Instead, we support it. We add value without changing the process.
How does Humanitec work with Terraform?
The infrastructure folks who are building Terraform modules can continue to do so. Humanitec then reuses those modules with little effort and without changing the Terraform modules (for the most part).
A Terraform module is designed to take inputs and produce outputs, allowing for maximum reusability. The only change required is in the output of Terraform modules, which needs to be formatted as expected by the Humanitec Platform Orchestrator.
Here is a simple example:
In this example, the s3_bucket_id from the Terraform module corresponds to the bucket in the s3 Resource Type in Humanitec, and the s3_bucket_region corresponds to the region. This mapping allows Humanitec to understand and correctly interpret the outputs from your Terraform modules.
Learn more with our tutorial
To help you get started, we've created a comprehensive tutorial on how to use existing Terraform modules.
It guides you through the process of using an existing Terraform module to provision a Resource using the Humanitec Platform Orchestrator. Following this tutorial, you'll learn how to create a Resource Definition referencing your module, map the module outputs to the required Resource Type outputs, use private modules, create a “passthrough” module as a wrapper, and use the Resource Definition to provision an actual Resource for deployment via Score.
By the end of this tutorial, you'll be able to seamlessly integrate your Terraform modules with the Humanitec Platform Orchestrator, enhancing your platform engineering capabilities and accelerating your application deployment and infrastructure orchestration process.
Ready to get started? Check out the tutorial and start transforming your infrastructure management today!