Drivers

Drivers are extension points of your platform. They create/update or connect resources required by the workload. Drivers can do this on their own or in tandem with any IaC format.

Why Drivers?

In order to enable developer self-service you need to codify the way your team interacts with cloud resources. Drivers enable you to express exactly how you want a resource such as a database to be provisioned. Rather than embedding IaC in your pipelines or executing it manually, Drivers allow the Platform Orchestrator to dynamically call them at the request of a developer.

comment postgres
Open source Drivers

How Drivers work

Drivers are used by the Platform Orchestrator at deployment time. Resources are provisioned based on dependencies defined by developers. Which Driver is used and how it is configured is defined by the platform team. In the example below, a developer defines a dependency on a Postgres database.

Drivers or Driver + IaC

A Driver implements the Humanitec Driver API which is made up of 2 HTTP endpoints (PUT and DELETE). The Driver takes whatever steps necessary to provision the desired resource and returns parameters that are injected into workloads at runtime. Drivers can be implemented using any technology stack that can serve HTTP requests. Drivers don’t need to make API calls themselves, they can also embed Terraform, Pulumi, CloudFormation or any other IaC approach.

Reuse Drivers or build your own

Humanitec supports a number of Drivers that you can reuse. We currently cover the majority of use cases for the AWS, GCP and Azure ecosystem. Additional Drivers are built by our community for several other specific use cases. You can build your own Drivers to express the exact requirements of your setup.

Open source drivers logos