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"
}
}