Resource Types

Learn to use the Resource Types in the Platform Orchestrator.

amqp

Used to provision an AMQP resource such as a RabbitMQ, AmazonMQ or ApacheMQ queue.

Category Use
messaging direct

Inputs

None

Outputs

Values

Property Type Description
host string The hostname or IP Address of the broker.
port integer The TCP port that the broker is available on.
vhost string The virtual host that the client should connect with. Must be a URI segment.

Secrets

Property Type Description
password string The password to connect with.
username string The username to connect with.

aws-policy

Used to provision an AWS IAM Policy.

Category Use
aws indirect

Inputs

None

Outputs

Values

Property Type Description
arn string The Amazon Resource Name (ARN) of the policy.

Secrets

None


aws-role

Used to provision an AWS IAM Role.

Category Use
aws indirect

Inputs

None

Outputs

Values

Property Type Description
arn string The Amazon Resource Name (ARN) of the role.

Secrets

None


base-env

Automatically provisioned once per environment providing a way of bootstraping environment resources.

Category Use
general implicit

Inputs

Property Type Description
id string The ID of the environment being created.

Outputs

None


cassandra

Used to provision a Cassandra database.

Category Use
datastore direct

Inputs

None

Outputs

Values

Property Type Description
host string The IP Address or DNS name of the host that the Cassandra node is available on.
keyspace string The name of the Cassandra keyspace.
port integer The port on the host that the Cassandra node is available on.

Secrets

Property Type Description
password string undefined
username string undefined

confluent-api-key

Used to provision a Confluent API Key. This is intended to be used as a direct Resource Dependency.

Category Use
messaging direct

Inputs

None

Outputs

Values

None

Secrets

None


confluent-service-account

Used to provision a Confluent Service Account.

Category Use
messaging indirect

Inputs

None

Outputs

Values

Property Type Description
description string The optional description of the Confluent Service Account.
id string The ID of the Confluent Service Account.
name string The name of the Confluent Service Account.

Secrets

None


dns

Used to define a DNS name for use by a workload.

Category Use
dns direct

Inputs

None

Outputs

Values

Property Type Description
host string The DNS name returned by the driver. It can include one wildcard covering the subdomain.

Secrets

None

Example

To create URL referencing a DNS name defined at the application level under the ID my-dns:

https://${shared.my-dns.host}/my-service

elasticsearch

Used to provision an Elastic Search cluster.

Category Use
datastore direct

Inputs

None

Outputs

Values

Property Type Description
host string undefined
port integer undefined

Secrets

Property Type Description
password string undefined
username string undefined

horizontal-pod-autoscaler

Used to define a Horizontal Pod Autoscaler for a workload.

Category Use
autoscaler direct

Inputs

Property Type Description
maxReplicas integer The maximum number of replicas to scale to. (Must be > minReplicas.)
minReplicas integer The minimum number of replicas to scale to. (Must be > 0.)
targetCPUUtilizationPercentage integer The percentage of the CPU resource limit to attempt to scale to. (Must be between 0 and 100.)

Outputs

None


ingress

Used to generate ingress or similar routing manifests in the cluster.

Category Use
ingress indirect

Inputs

Property Type Description
host string The host with possible wildcard prefix that the rules apply to
namespace string The Namespace that the services are in.
rules object Covers types of routing. Currently only http is supported.
tls_secret_name string The secret that should be used for TLS. Note: the secret must be in the current Namespace and can be used for multiple hosts.

Outputs

Values

Property Type Description
host string The host with possible wildcard prefix that the rules apply to
namespace string The Namespace that the services are in.
rules object Covers types of routing. Currently only http is supported.
tls_secret_name string The secret that should be used for TLS. Note: the secret must be in the current Namespace and can be used for multiple hosts.

Secrets

None


k8s-cluster

Used to define a Kubernetes cluster to deploy into.

Category Use
k8s implicit

Inputs

None

Outputs

Values

Property Type Description
loadbalancer string Load Balancer IP address or host name.
name string Kubernetes cluster name.

Secrets

None


k8s-namespace

Category Use
k8s implicit

Inputs

None

Outputs

Values

Property Type Description
namespace string Kubernetes namespace.

Secrets

None


k8s-service-account

Used to define a Kubernetes Service Account.

Category Use
k8s indirect

Inputs

None

Outputs

Values

Property Type Description
name string Service account name. Must be a valid DNS Subdomain

Secrets

None


kafka-topic

Used to provision a Kafka Topic.

Category Use
messaging direct

Inputs

None

Outputs

Values

Property Type Description
host string The IP address or hostname the cluster is available on.
name string The name of the topic that the workload should use.
port integer The port on the host that the cluster is available on.

Secrets

None


logging

Used to configure how logs are collected by the Platform Orchestrator.

Category Use
logging implicit

Inputs

None

Outputs

None


mariadb

Used to provision a database in a MariaDB instance.

Category Use
datastore direct

Inputs

None

Outputs

Values

Property Type Description
host string The IP address or hostname the instance is available on.
name string The name of the database that the workload should connect to.
port integer The port on the host that the instance is available on.

Secrets

Property Type Description
password string The password for the user or role.
username string The user or role that the workload should use to connect to the database.

Example

For a MariaDB database added as a Shared Resource Dependency to an Application under the ID my-db, a connection string can be built as:

mysql://${shared.my-db.username}:${shared.my-db.password}@${externals.my-db.host}:${shared.my-db.port}/${shared.my-db.name}

mongodb

Category Use
datastore direct

Inputs

None

Outputs

Values

None

Secrets

Property Type Description
connection string The connection string to the MongoDB cluster.

mysql

Used to provision a database in a MySQL instance.

Category Use
datastore direct

Inputs

None

Outputs

Values

Property Type Description
host string The IP address or hostname the instance is available on.
name string The name of the database that the workload should connect to.
port integer The port on the host that the instance is available on.

Secrets

Property Type Description
password string The password for the user or role.
username string The user or role that the workload should use to connect to the database.

Example

For a MySQL database added as a Shared Resource Dependency to an Application under the ID my-db, a connection string can be built as:

mysql://${shared.my-db.username}:${shared.my-db.password}@${externals.my-db.host}:${shared.my-db.port}/${shared.my-db.name}

postgres

Used to provision a database in a PostgreSQL instance.

Category Use
datastore direct

Inputs

Property Type Description
externals object undefined

Outputs

Values

Property Type Description
host string The IP address or hostname the instance is available on.
name string The name of the database that the workload should connect to.
port integer The port on the host that the instance is available on.

Secrets

Property Type Description
password string The password for the user or role.
username string The user or role that the workload should use to connect to the database.

Example

For a PostgreSQL database added as a Shared Resource Dependency to an Application under the ID my-db, a connection string can be built as:

postgresql://${shared.my-db.username}:${shared.my-db.password}@${externals.my-db.host}:${shared.my-db.port}/${shared.my-db.name}

redis

Used to provision a Redis instance.

Category Use
datastore direct

Inputs

None

Outputs

Values

Property Type Description
host string undefined
port integer undefined

Secrets

Property Type Description
password string undefined
username string undefined

s3

Used to provision an S3 bucket.

Category Use
datastore direct

Inputs

None

Outputs

Values

Property Type Description
bucket string The globally unique name for the bucket.
region string The AWS Region the bucket is hosted in.

Secrets

Property Type Description
aws_access_key_id string undefined
aws_secret_access_key string undefined

sqs

Used to provision an AWS SQS queue.

Category Use
messaging direct

Inputs

None

Outputs

Values

Property Type Description
region string The AWS Region the SQS queue is in.
url string The URL of the SQS Queue

Secrets

None


tls-cert

Used to define a TLS Certificate for use with a DNS name.

Category Use
security direct

Inputs

None

Outputs

Values

Property Type Description
tls_secret_name string Name of Kubernetes Secret in which TLS certificate stored.

Secrets

Property Type Description
tls undefined The TLS certificate and private key for the DNS Name specified in host. Should be provided in K8s format - that is an object with properties tls.crt and tls.key.

volume

Used to provision a persistent volume.

Category Use
datastore direct

Inputs

None

Outputs

None


workload

Used to optionally override values in the workload entry of the deployment set before deployment.

Category Use
general implicit

Inputs

Property Type Description
id string The ID of the workload in the deployment set.
profile string The Workload Profile for the workload in the deployment set.
spec object An object representing the inputs for the Workload Profile

Outputs

Values

Property Type Description
update array Any array of JSONPatch objects to apply to a workload object.

Secrets

None

Example

This example shows how a resource definition could be defined to change the serviceAccountName to dev-service-account in environments of type development, but only if it has been set.

{
  "id": "service-account-name-override-dev",
  "type": "workload",
  "driver_type": "humanitec/template",
  "driver_inputs": {
    "values": {
      "templates": {
        "outputs":
  "[{{if .resources.spec.serviceAccountName }}{"op:"replace","path":"/spec/serviceAccountName","value":"dev-service-account"}{{end}}]"
      }
    }
  },
  "criteria": {
    "env_type": "development"
  }
}
Top