Humanitec provides a core set of drivers that cover many common usecase. As Resource Drivers are web services that implement the Humanitec Resource Driver API. It is therefore possible to write and register additional drivers to provide custom provisioning functionality.
- 2.It then perform whatever action is required to create the resource - e.g. calling Cloud APIs or executing IaC code.
Drivers can be registered with Humanitec using Driver Definitions. This allows Platform Teams to extend the functionality offered by Humanitec.
Driver Definitions describe the:
- URL prefix on which the Driver Endpoints can be found,
- Schema describing how Driver Inputs should be specified.
Most drivers can only be used to provision a particular Resource Type. Some drivers can provision resources of any type. These are known as Generic Resource Drivers. Examples of generic resource drivers include the
humanitec/templatedriver and drivers that can execute parameterizable IaC scripts such as Terraform.
Resource Drivers are web services that implement the Humanitec Resource Driver API. This API is open and can be implemented by any web service served over HTTPS that is accessible from a Humanitec instance.
The GUResID is deliberately opaque so as not to leak any of the Resource Context to the driver. This reduces the risk of unintentional coupling between resources being provisioned and also the risk of leaking internal IDs to a 3rd party. Where Resource Context is required by a driver, it can be injected into Resource Inputs via the context Placholders.