DNS and TLS certificates
DNS configuration
The Harness Installer requires an externally resolvable DNS hostname that points to your load balancer or ingress controller.
Requirements
Your DNS hostname must meet both of the following conditions.
- DNS must be externally resolvable from client browsers
- Points to a load balancer configured for TLS pass-through (port 443)
Set the DNS
Set the DNS hostname with whichever method you use to install.
- helm
- clustermgr
cluster:
tfi:
dns: platform.example.com
--dns platform.example.com
TLS certificates
You either let the operator generate a self-signed certificate or supply your own.
Auto-generated self-signed certificates (default)
By default, the operator generates a self-signed TLS certificate with the following characteristics.
- Stored as a Kubernetes Secret named after the DNS hostname (e.g.,
platform.example.com) - Used for TLS termination at the ingress controller
Bring your own certificates
To use your own TLS certificate, provide the certificate and private key:
- helm
- clustermgr
--set-file cluster.tfi.private_key=/path/to/tls_private_key.pem
--set-file cluster.tfi.tls_cert=/path/to/tls_cert.crt
--set-file cluster.tfi.root_ca_cert=/path/to/root_ca.crt
--pi-set-file cluster.tfi.private_key="</path/to/tls_private_key.pem>"
--pi-set-file cluster.tfi.tls_cert="</path/to/tls_cert.crt>"
--pi-set-file cluster.tfi.root_ca_cert="</path/to/root_ca.crt>"
Istio TLS considerations
If you use Istio ingress, the TLS secret must be in the same namespace as the Istio ingress gateway pod.
Scenario 1: Harness SMP Operator installs Istio
When the operator deploys Istio, it manages the TLS secret automatically.
- The TLS secret is created in the operator namespace (e.g.,
harness) - The Istio ingress gateway pod also runs in the operator namespace
The operator creates a TLS secret named platform.example.com in the harness namespace.
For more information, see Install with Istio - Scenario 1.
Scenario 2: You have existing Istio
If you use an existing Istio deployment, the operator does not manage the TLS secret. Ensure the following:
- A TLS secret exists in the namespace where the Istio ingress gateway pod runs
- The TLS secret name must match the DNS value only when the operator creates the Istio Gateway (see Install with Istio - Scenario 2)
- In Install with Istio - Scenario 3, the operator creates only the VirtualService, so TLS secret naming is handled by your existing Gateway configuration