Overview
On this page
Drivers implement the Platform Orchestrator to create and or update infrastructure resources.
Drivers are essential for establishing connections to your infrastructure.
In general, Drivers are APIs that fulfill the Driver Interface. This interface allows your Platform Orchestrator to create and destroy resources as required by deployments. Drivers typically call APIs associated with managed services using the credentials provided by the resource accounts.
Resource accounts are identities used to provision and manage resources through dynamic resource definitions. They can represent a range of identities, including cloud provider service accounts, VPN accounts, SSH accounts, and other credentials.
For more information, see the Resource reference .
Humanitec Drivers
Humanitec Drivers, also known as built-in Drivers are a set of drivers that are available out-of-the-box in Humanitec. They are maintained by Humanitec and are available to all users.
If you need more customization, consider using the Terraform Driver which allows you to integrate with any Terraform code.
What are Built-in Drivers
Built-in drivers are pre-made integrations that come out-of-the-box with the Humanitec Platform Orchestrator. They provide connectivity to popular infrastructure providers, services, databases, and more.
Built-in drivers abstract away the complexity of interacting with external systems by handling authentication, authorization, provisioning, configuration, and more based on best practices.
Why use Built-in Drivers
Built-in drivers offer many benefits:
- Quick and easy set up - get started faster without writing custom code
- Reliable, maintained integrations - drivers are kept up-to-date and supported
- Follow proven approaches - leverage best practices baked into drivers
- Broad coverage - connect to essential infrastructure like AWS, Azure, GCP, Kubernetes, databases, DNS, etc.
- Handle complex tasks - authentication, provisioning, secrets management, and more
Built-in drivers simplify integration with external systems and services essential for building developer platforms.
How to use Built-in Drivers
Built-in drivers can be enabled and configured through the Humanitec Platform Orchestrator UI or API:
- Browse available built-in drivers
- Select drivers to activate based on your infrastructure needs
- Provide any required configuration details and credentials
- Built-in drivers can then be referenced in resource definitions
- The Platform Orchestrator handles the provisioning of resources through the enabled drivers
The Humanitec Platform Orchestrator provides a number of built-in drivers that can be used to provision resources in different cloud providers. These drivers are available out-of-the-box and can be used to connect to different cloud providers such as AWS, Google Cloud, and Azure.
The Terraform Driver is a fully customizable Driver offered by the Humanitec Platform Orchestrator, allowing you to provision any Resource Type your Workloads depend on. It does that using Terraform and the Terraform providers of your choice.
The Echo Driver is a built-in Driver, which passes the inputs it receives as outputs. It is convenient for cases where resources are managed outside Humanitec but still need to be consumed by workloads.
Built-in Drivers
The following are a list of built-in Drivers supported natively by Humanitec.
Database Drivers
DNS Drivers
DNS names provide a standard way to make services accessible on the public internet. In Kubernetes applications, DNS names are most often used with Ingress objects to map incoming requests to an external Load Balancer to workloads running inside the cluster.
- A DNS name is represented as a Resource of type
dns
. - A TLS certificate is represented by a Resource of type
tls-cert
.
By default, Humanitec will automatically generate dynamic DNS name under the .newapp.io
domain along with a valid SSL certificate. However, it is possible to configure different DNS names that will get picked up in different environments.
Generic Drivers
Kubernetes resource Drivers
Volume Drivers
Custom Drivers
You can extend the Humanitec Platform Orchestrator by writing custom drivers to provision resources in other platforms.
For more information, see Custom Drivers .
Generating manifests
Every Driver may optionally produce a list of Kubernetes manifests which the Platform Orchestrator will then apply as part of the current
Deployment
. Specifically, the Driver may return a list of
Manifest Location
objects in its manifests
output. That output is defined as part of the
Driver API Specification
.
A Driver can use this mechanism to apply custom additions to the Kubernetes environment on the Workload, namespace, or cluster level. See the description of the possible Manifest Location objects below for details.
Among the built-in Drivers using the manifests
mechanism are the
Template
and
Terraform
Drivers. However, it is available to any
Custom Driver
as well.
The supported format is JSON.
Manifest Location objects
Each Manifest Location object must have 2 properties: location
and data
.
The location
field must have one of the following values:
Location | Schema | Notes |
---|---|---|
containers |
Container | A valid Kubernetes Container object. It will be added to the Workload’s Pod. |
volumes |
Volume | A valid Kubernetes Volume object. It will be added to the Workload’s Pod. |
namespace |
Any | The manifest will be injected into the Deployment namespace. If the namespace property is set in the metadata section, the manifest will be injected into that namespace instead of the Workload’s namespace. |
cluster |
Any | Intended for cluster level resources. |