EKS collector custom domain — cert-manager certificate
Last updated: September 3, 2026
Issued in-cluster, free, and renews itself. DNS must already point at the NLB.
Start at EKS collector custom domains overview if you are not sure this is the right path.
Use this when no ACM certificate is wanted — typically to avoid the per-certificate ACM cost on internal or low-value domains.
The important constraint: cert-manager solves an HTTP-01 challenge on the Traefik ingress. Let's Encrypt must reach the domain over the NLB to issue the certificate. The certificate cannot be issued before DNS is cut over. There is therefore no staging key for this path, and a short window of failed TLS between the DNS change and the certificate being issued is normal.
If that window is not acceptable, use ACM instead. See EKS collector custom domain — Snowplow-managed DNS, ACM certificate or
EKS collector custom domain — Customer-managed DNS, ACM certificate.
Consul keys
customer/<client>/aws_rt_pipeline_<env>/input/collector/dns/delegated_cert_manager_domains
customer/<client>/aws_rt_pipeline_<env>/input/collector/dns/external_cert_manager_domainsBoth are comma-separated lists of fully qualified domain names. Default is empty.
Key | DNS |
|---|---|
| Snowplow writes the Route53 |
| The customer repoints their own record. Snowplow writes nothing. |
Steps — delegated
Confirm the zone is delegated to the customer's Snowplow AWS account.
Add the domain to
collector/dns/delegated_cert_manager_domains.Apply
aws_rt_pipeline. The record is written and the certificate is requested in the same apply.Wait a minute or two, then verify. The certificate is issued once DNS propagates.
Steps — external
Add the domain to
collector/dns/external_cert_manager_domains.Apply
aws_rt_pipeline. The ingress and the certificate request exist, but the certificate stays
pending.Give the customer the NLB IPs from
aws_eks_namespace_<env>/output/load_balancer_public_ip_addresses. They replace their record withArecords for each IP.The certificate issues shortly after their change takes effect.
A customer proxy in front of the collector will usually break the HTTP-01 challenge, and must
forward the collector hostname as SNI for TLS to work at all. For proxied domains prefer an imported
certificate — see EKS collector custom domain — Customer-managed DNS, imported certificate.
Issuer override
Two keys change which ACME issuer is used:
customer/<client>/aws_rt_pipeline_<env>/input/collector/certificate_issuer_override_enabled
customer/<client>/aws_rt_pipeline_<env>/input/collector/certificate_issuer_override_external_name
Set certificate_issuer_override_enabled to true to switch off the default issuer and use the
external one named by certificate_issuer_override_external_name. The only permitted value isexternal-zerossl. Use this when Let's Encrypt rate limits are a problem.
Verify
dig +short <domain>
curl -sI https://<domain>/health
aws/collector/validate_eks_collector 0.1.0 prints the certificate served. Check the issuer to confirm it
came from Let's Encrypt, or ZeroSSL if the override is on.
Common failures
Message contains | Cause |
|---|---|
| You put the primary |
| Both issuers would write to the same TLS secret. Pick one. |
| The imported secret wins and the cert-manager entry is silently ignored. Remove one. |
| Pick one DNS owner. |
Certificate never issues | DNS does not yet resolve to the NLB IPs, or a proxy is intercepting the HTTP-01 challenge. |