Skip to main content
To install the datumctl alb plugin, run datumctl plugin install alb.

Create a load balancer

To create a load balancer in front of an origin, run the following command:
Replace the following:
  • ALB_NAME: a name for the load balancer, such as my-app.
  • ORIGIN_URL: the http or https URL of your origin, such as https://origin.example.com.
The command waits up to 2 minutes for Datum to assign a generated hostname, then prints it:
Point your custom domains at this hostname with a CNAME record. Pass --no-wait to return as soon as the load balancer exists. A load balancer created with datumctl alb create starts with the following defaults:
  • Force HTTPS: on. HTTP requests are redirected to HTTPS. To turn it off, pass --no-force-https.
  • Traffic protection: Enforce at sensitivity 1. To change it, pass --waf-mode Observe or --paranoia LEVEL, or pass --no-waf to create the load balancer without a policy. Before you put an existing site behind it, see Roll out traffic protection safely.
  • Load balancing: least request, with health checks off. See Load balancing and health checks.
A load balancer that datumctl compute deploy --http-port attaches to a workload doesn’t use these defaults. To check what a load balancer has, run datumctl alb describe ALB_NAME. The following flags change what you create: For example, to put a load balancer in front of a workload’s network service and attach a custom hostname, run the following command:

Inspect a load balancer

To see a load balancer’s status, hostnames, routes, traffic protection, and certificates, run the following command:
Status: Active means Datum has published the configuration. It doesn’t mean a request has succeeded, so confirm with a request such as curl -I https://HOSTNAME/.

How changes roll out

You change a load balancer in one place, your project, and Datum rolls the change out to Envoy in every Datum location. There’s nothing to deploy per location and no capacity to change: Datum runs and scales the proxies. For how this works, see Envoy. A change that Datum accepts is published within seconds, but each location applies it on its own schedule. For a short time, some locations can serve the old configuration and others the new one. A change doesn’t drop connections that are already open. To confirm a change, make a request rather than reading status. If a change seems to have no effect, see A change that was accepted and never took effect.

Update a load balancer

The datumctl alb plugin changes one part of a load balancer at a time: To change the underlying resources directly, edit the HTTPProxy and TrafficProtectionPolicy and apply them with datumctl apply. See HTTPProxy.

Delete a load balancer

To delete a load balancer, run the following command:
This also removes the traffic protection policy and any basic authentication attached to it. If you create a load balancer again with the same name, it gets a new generated hostname, so update any CNAME records that pointed at the old one. Without --yes, the command asks you to type the name to confirm. A load balancer that datumctl compute deploy attached to a workload is deleted with the workload by datumctl compute destroy. See Compute operations.
Last modified on October 23, 2026