Skip to content

Gateways

Gateways provide a common support service to workloads. They provide network ingress into the Kubernetes Runtime to route traffic to a workload that is exposed to end users, usually from the public internet.

When you declare a Gateway for your workload, Threeport installs and configures a Gloo Edge to manage incoming traffic. A cloud provider load balancer is also provisioned that provides a network endpoint and proxies traffic to Gloo. Gloo terminates TLS connections and forwards connections to the appropriate workloads.

TLS assets are provisioned and rotated by cert-manager. Again, this support service is installed and configured for the workload at runtime as needed.

Gateway Definition

The gateway definition allows you define the HTTP and TCP ports you wish to use, as well as the subdomain for a hosted zone if DNS records are also being managed. You can also provide the Kubernetes Service name that Gloo will forward traffic to. This will need to correspond to the Service resource name in the Kubernetes resource manifest supplied with a Workload Definition.

You can also instruct Threeport to enable TLS - in which case cert-manager will provision and rotate certs for your app. You can also request HTTPS redirects so that HTTP requests on port 80 will be redirected to HTTPS on 443.

You can also specify a request path to instruct the gateway to forward traffic to different workloads based on the path in the request URL.

Reference: GatewayDefinition

Gateway Instance

The gateway instance allows you to tie the gateway config in the definition to a particular workload that prompts Threeport to deploy the Gloo Edge support service and configure it for the workload.

Reference: GatewayInstance

Domain names can be managed through a Threeport support service as well. Threeport uses a project called external-dns to do this. When using domain names, Threeport will install and configure external-dns as needed.

Domain Name Definition

The domain name definition allows you to configure a Route53 zone to use for DNS records for your application. For example if you have a hosted zone myorg.com that manages DNS records for that domain, you can provide that in a definition and a subdomain such as myapp in the gateway definition so that your app can be reached at myapp.myorg.com.

Reference: DomainNameDefinition

Domain Name Instance

The domain name instance ties a workload to the domain name definition and configures the external-dns support service to update Route53 to provide the full domain name used by the workload.

Reference: DomainNameInstance

Next Steps

See our Deploy Workload on AWS guide for an example of how to use Gateways and Domain Names for your application.