Skip to main content
LILT derives every hostname it serves from two variables in install.env. You set the domain once, and the installer resolves it into every values file, route, and service URL.
Do not edit hostnames in lilt/values.yaml, lilt/environments/*/values.yaml, or the chart values files directly. Those files hold __SUBDOMAIN__ and __BASE_DOMAIN__ placeholders that the installer substitutes at install time. An edit there is either overwritten on the next run or leaves the deployment inconsistent with its routes.

Set the Domain

Set both variables in install.env:
DNS_DOMAIN is required on every install path. Together the two produce the hostnames in the following table.

Hostnames LILT Serves

Every hostname is a sibling of the others, not a subdomain of the main one. This matters for both DNS and certificates.

Point DNS at the Ingress

All hostnames resolve to the same address: the load balancer in front of the Istio ingress gateway.

On-premises

MetalLB hands the ingress gateway the address you set in LB_IP:
LB_IP is required when ENABLE_METALLB is true, which is the default. The install stops with an error if it is unset. Create an A record for each hostname in the preceding table pointing at that address.

On AWS EKS

The ingress gateway provisions a Network Load Balancer. Read its address after the install:
Create a Route53 alias record for each hostname pointing at that load balancer. To have the installer create the records for you, set:
The installer then needs Route53 write access. See Install from a bastion.

Testing Before DNS Exists

To reach the application before the records are live, map the ingress address in your own /etc/hosts. Add every hostname, not only the main one, or sign-in fails when the browser is redirected to the identity server.

Certificates

Every listener on the ingress gateway reads one Kubernetes secret, lilt-com-tls, in the istio-ingressgateway namespace. install-lilt-networking.sh is what writes it, and it picks a source in this order: cert-manager if ENABLE_CERT_MANAGER=true, then TLS_CRT_FILE and TLS_KEY_FILE, then an existing secret it leaves alone. If none of those apply it warns and continues, and the gateway serves no HTTPS. Choose one source of certificates.
Do not enable two of these. cert-manager and the Terraform module both run ACME challenges against the same Let’s Encrypt identifier set, which is limited to five certificates per 168 hours. Two owners exhaust the quota and neither gets a certificate.Setting TLS_CRT_FILE together with ENABLE_CERT_MANAGER=true is safe but pointless: the installer skips the file seed when cert-manager is on, so your file is ignored.

Required Subject Alternative Names

A certificate you supply yourself must cover every hostname LILT serves. Because the hostnames are siblings rather than subdomains, a single *.<SUBDOMAIN>.<DNS_DOMAIN> wildcard does not cover them.
Add the MinIO hostnames on an on-premises install, and the Vault UI host if ENABLE_VAULT_UI is true.
A missing name is easy to miss and slow to diagnose. Browsers that already trust the main hostname keep working, while API clients fail hostname verification against the API hosts. The symptom reads as a TLS bug rather than as an incomplete certificate.
Check what a certificate actually covers before you install:

Supplying the Certificate

Point the two variables at PEM files on the machine running the installer:
TLS_CRT_FILE must be the full chain: your certificate followed by any intermediates. A chain missing its intermediate still satisfies a browser that has cached it, and fails later in a stricter client.

Apply a Change

Both the domain and the certificate take effect when you re-run the installer. Every component uses helm upgrade --install, so a re-run only changes what differs.

Rotate a Certificate

When cert-manager or the Terraform module owns the secret, rotation is automatic and you do nothing. For a certificate you supply, replace the files and re-run the installer. It overwrites lilt-com-tls with the new material:
The ingress gateway picks the new certificate up without a restart. Confirm the expiry date changed:

Verify

verify=0 on every hostname means DNS, the load balancer, and the certificate are all correct. The status code itself varies by host, and a 401, 404, or redirect is still proof that the request reached the gateway over a valid certificate. A connection or TLS error is not.

Troubleshooting

The gateway serves no HTTPS at all. The installer warns and continues when no certificate is available. Check whether the secret exists:
If it is missing, neither TLS_CRT_FILE nor cert-manager was configured. Create it directly, then re-run the installer:
Sign-in redirects to a hostname that does not resolve. The identity server runs on its own hostname. Confirm that wso2-<SUBDOMAIN>.<DNS_DOMAIN> resolves and is covered by the certificate. A hostname returns 404 through the gateway. The route for it did not install. Check the HTTPRoutes: