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.