Add TLS Certificates
Configure secure HTTPS access to your TrueFoundry deployment
Adding TLS Certificates to Your TrueFoundry Deployment
This guide explains how to configure TLS certificates to enable secure HTTPS access to your TrueFoundry deployment. We’ll cover multiple approaches based on your cloud provider.
Quick Reference Guide
Cloud Provider | Recommended Method | Alternative Methods | Reference Guide |
---|---|---|---|
AWS | AWS Certificate Manager | cert-manager with DNS validation | AWS DNS & TLS Setup |
GCP | cert-manager with Cloud DNS | Manual certificate files | GCP DNS & TLS Setup |
Azure | cert-manager with Azure DNS | Manual certificate files | Azure DNS & TLS Setup |
Generic | Manual certificate files | cert-manager with Let’s Encrypt | Generic Cluster Setup |
AWS: Using Certificate Manager
When running TrueFoundry on AWS EKS, you have two options for TLS termination:
- Terminate TLS at the Network Load Balancer (recommended)
- Terminate TLS at the Istio ingress layer
For production AWS deployments, terminating TLS at the Network Load Balancer using AWS Certificate Manager (ACM) is recommended for best performance and manageability.
Step-by-Step Guide for AWS Certificate Manager
-
Create a certificate in ACM:
- Navigate to AWS Certificate Manager in the AWS console
- Request a public certificate
- Specify your domain (e.g.,
*.example.com
) - Choose DNS validation (recommended)
-
Validate domain ownership:
-
Add the CNAME records provided by ACM to your DNS provider
- Follow the official AWS guide for DNS validation
- For detailed steps on adding CNAME records, see AWS documentation on DNS validation
-
Wait for the certificate to change to “Active” status (this may take 30 minutes or longer)
-
Copy the certificate ARN for the next step (format will be like:
arn:aws:acm:region:account:certificate/certificate-id
)
-
-
Apply the certificate to your TrueFoundry deployment:
- In the TrueFoundry platform, navigate to Deployments > Helm
- Filter to find the helm chart for your cluster
- Select tfy-istio-ingress
- Click Edit and update the configuration:
-
Configure domain routing:
- In the same tfy-istio-ingress configuration, update the gateway configuration with your custom host:
GCP: Using cert-manager with Cloud DNS
For GCP deployments, we recommend using cert-manager with Let’s Encrypt and GCP Cloud DNS for automatic certificate issuance and renewal.
Prerequisites
This approach requires workload identity to be enabled on your GKE cluster. For clusters created through Terraform code generated by Truefoundry, this is enabled by default.
Step 1: Configure GCP Service Account and Permissions
Step 2: Configure DNS for Your Domain
Add the nameservers from the output to your domain registrar (GoDaddy, Namecheap, etc.).
If using an existing DNS zone, you can list all zones and find yours:
Step 3: Install and Configure cert-manager (Skip for clusters Created through Truefoundry-generated Terraform)
Note: If you installed your cluster using Terraform code generated by the TrueFoundry platform, cert-manager is already installed and configured correctly. You can skip this step and proceed to Step 4.
-
In the TrueFoundry platform, navigate to Integrations
-
Select your cluster
-
Click the three dots and select Manage Applications
-
Install cert-manager if not already installed
-
If already installed, edit its configuration:
- Go to Deployments > Helm
- Filter for your cluster
- Find and edit cert-manager
- Ensure the configuration includes:
Replace placeholders with your actual values.
Step 4: Create Certificate Issuer and Request Certificate
-
Get your cluster credentials:
-
Create an issuer for Let’s Encrypt:
-
Request a certificate:
-
Check certificate status:
Troubleshooting
If the certificate remains in a non-ready state for more than 10 minutes, check the cert-manager logs:
Step 5: Configure TLS in Your Ingress Gateway
-
In the TrueFoundry platform, navigate to Deployments > Helm
-
Filter for your cluster and select tfy-istio-ingress
-
Update the configuration:
Step 6: Update Cluster Metadata with Domain
- Navigate to Integrations in the TrueFoundry platform
- Select your cluster and click Edit
- Enable Show advanced fields
- Enable Base Domain URL
- Add your domain (e.g.,
example.com
)
Azure: Using cert-manager with Azure DNS
For Azure deployments, we use cert-manager with Let’s Encrypt and Azure DNS for automated certificate management.
Step 1: Configure Variables and Workload Identity
If needed, enable workload identity on your AKS cluster:
Step 2: Configure DNS Zone and Permissions
Create a DNS zone (or use existing one):
Add the nameservers from the output to your domain registrar.
If using an existing DNS zone:
Step 3: Install and Configure cert-manager
-
In TrueFoundry, navigate to Integrations > [Your Cluster] > Manage Applications
-
Install cert-manager if not already installed
-
Configure with these values:
Step 4: Create Certificate Issuer and Request Certificate
-
Get your cluster credentials:
-
Create an issuer:
-
Request a certificate:
-
Check certificate status:
Step 5: Configure TLS in Your Ingress Gateway
Follow the same configuration steps as in the GCP section to set up your ingress gateway with the TLS certificate.
Step 6: Update Cluster Metadata with Domain
- Navigate to Integrations in the TrueFoundry platform
- Select your cluster and click Edit
- Enable Show advanced fields
- Enable Base Domain URL
- Add your domain (e.g.,
example.com
)
Generic Cluster: Using cert-manager with Let’s Encrypt
For generic Kubernetes clusters, you can use cert-manager with Let’s Encrypt to automatically issue and manage certificates.
Step 1: Install cert-manager
To install cert-manager through TrueFoundry’s Addon/Helm section:
- Navigate to Clusters in the TrueFoundry platform
- Select your cluster
- Click the three dots (⋮) and select Manage Addons
- Look for cert-manager in the list of available applications
- Click Install
Step 2: Create a ClusterIssuer for Let’s Encrypt
Step 2.5: Add VirtualService for ACME HTTP-01 Challenges
Add the following VirtualService
to ensure ACME HTTP-01 challenge requests are routed correctly to the cert-manager solver:
Notes:
- Replace
<your-domain-here>
with your actual domain (e.g.,example.com
or*.example.com
). - The
host
underdestination
should match the name of the cert-manager solver service. It is usuallycm-acme-http-solver
, but you can confirm this by running: - This VirtualService should be created in the same namespace as your Istio ingress gateway (commonly
istio-system
).
Using Your Own Certificate Files
If you have your own certificate files (e.g., from another certificate provider or self-signed), you can use them directly with TrueFoundry.
Note for Generic Kubernetes Clusters
This method is particularly useful for generic Kubernetes deployments or when you want to use certificates issued by your organization’s certificate authority.
Option 1: Import Existing Certificate Files
If you already have certificate and key files:
-
Create a Kubernetes secret with your certificate and key:
Alternatively, you can create the secret using a YAML definition:
Tip
To encode your certificate and key files in base64:
-
Configure the ingress gateway to use your certificate:
Option 2: Generate Self-Signed Certificates
For testing or internal use, you can generate self-signed certificates:
Then configure your gateway to use the self-signed-tls
secret as shown in Option 1.
⚠️Warning
Self-signed certificates will cause browser warnings. They should only be used for testing or internal systems.
Troubleshooting
- Certificate not issued: Check cert-manager logs in the cert-manager namespace
- HTTPS not working: Verify your secret name matches the credential name in the gateway configuration
- DNS errors: Make sure your nameservers are correctly configured at your domain registrar
Need Further Help?
For platform-specific TLS configuration guidance, refer to the respective guides: