Manage DNS

Learn how to add and manage DNS in Humanitec.

Introduction

Humanitec can automatically configure ingress for workloads. All developers need to do is mark a port on their workload that they wish to expose externally and Humanitec will handle the rest. Check out this section to learn more about the currently supported ingress controllers.

By default, Humanitec will automatically generate a 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.

Dynamic DNS

Humanitec provides a way of automatically provisioning DNS names along with SSL certificates. At this time, dynamically generated DNS names will all be under the .newapp.io domain.

We currently do not have an out-of-the-box driver to support dynamic DNS name generation on custom domains. Please get in touch with us if that is an important feature for you and we are happy to support you with it.

Static DNS

A Static Resource Definition can be used to define static DNS names to be used for ingress.

As each workload that needs to be exposed requires a different DNS name the resource matching criteria used must exactly match the relevant workload. Note, due to a limitation in the UI it is not yet possible to define resource level matching criteria via the UI. It has to be done via the API.

Here is an example of the API call to create a Static Resource Definition where a workload called frontend-service in the production environment of the topic-share app will be exposed with the DNS name app.topicshare.com:

curl --request POST \
--header "authorization: $AUTH_TOKEN" \
--header "content-type: application/json" \
--data '{
"id": "fe-dns-name",
"type": "dns",
"data": {
"values": {
"name": "app.topicshare.com",
"tls_cn": "*.topicshare.com"
},
"secrets": {
"tls": {
"tls.crt": "...",
"tls.key": "..."
}
}
},
"criteria": [
{
"app_id": "topic-share",
"env_id": "production",
"res_id": "workloads.frontend-service"
}
]
}' \
https://api.humanitec.com/orgs/topicshare/resources/static

Where $AUTH_TOKEN is an appropriate authentication token. See the API Documentation for creating Static Resource Definitions for more details.