How to Deploy Bold Reports Using Kong Ingress Controller on Kubernetes
This article guides you through deploying Bold Reports® on a Kubernetes cluster using the Kong API Gateway.
It covers prerequisites, Kong installation, persistent storage configuration, Helm deployment, Helm values customization, and securing the deployment using the HTTPS protocol.
Prerequisites
Ensure the following prerequisites are met before deploying Bold Reports®:
- A running Kubernetes cluster (AKS / EKS / OKE / On-prem)
- kubectl installed and configured
- Helm (v3 or later)
- Persistent storage (NFS / Cloud File Storage / Azure File / EFS)
- A domain name mapped to the Kong Load Balancer
Step 1: Install Kong Ingress Controller
Add the Kong Helm repository and install Kong:
helm repo add kong https://charts.konghq.com
helm repo update
helm install kong kong/ingress -n kong --create-namespace
Verify Kong installation:
kubectl get pods -n kong
Step 2: Get Kong External IP and Configure Domain Mapping
Retrieve the Kong Load Balancer external IP:
kubectl get svc -n kong
Note the EXTERNAL-IP of the kong-proxy service.
Map the obtained external IP address to your domain name using your DNS provider.
Step 3: Configure Persistent Storage for Bold Reports®
Bold Reports® requires shared persistent storage for application data.
Create a Persistent Volume (PV) and Persistent Volume Claim (PVC)
- Use NFS / Cloud File Storage / Azure File / EFS based on your environment.
Step 4: Download Helm Values File for Kong Deployment
Download the default Helm values file for Bold Reports®:
- Get the values.yaml file from the Bold Reports repository based on the cloud provider: values.yaml
Step 5: Customize the values.yaml File
- Edit the downloaded values file:
- Update Application Base URL
appBaseUrl: https://reports.example.com
-
Configure Persistent Volume based on the cloud provider.
-
Configure Kong as Load Balancer Type
Update the ingress/load balancer configuration:
loadBalancer:
type: kong
Step 6: Install Bold Reports® Using Helm
Add the Bold Reports Helm repository:
helm repo add boldreports https://boldreports.github.io/boldreports-kubernetes
helm repo update
Install Bold Reports:
helm install boldreports boldreports/boldreports -f values.yaml -n bold-services --create-namespace
If you are configuring the site with HTTPS protocol, please create a secret with SSL cert and keys using the below command.
kubectl create secret tls bold-tls -n bold-services --key <key-path> --cert <certificate-path>
Use the following command to get the pods status.
kubectl get pods -n bold-services
Wait until all the pods are running. Then, use the appBaseUrl to access the application in your browser.
Configure the Bold Reports® On-Premises application startup to use the application.