Deploying Bold Reports Using a Single-Container Image in Kubernetes with Azure Files Volume Mount
This article explains how to deploy Bold Reports Enterprise in an Azure Kubernetes Service (AKS) cluster using a single-container Docker image. It also describes how to configure Azure Files as persistent storage for the application data and Nginx configuration.
Prerequisites
Before proceeding with the deployment, ensure that the following requirements are met:
- An Azure Kubernetes Service (AKS) cluster with a node size of 4 CPUs and 16 GB of memory.
- An Azure Storage account.
- An Azure Files SMB file share created in the storage account.
- kubectl configured to connect to the AKS cluster.
- The YAML configuration files provided with the deployment package.
To create an SMB file share, refer to this document
Deployment Steps
Step 1: Download and Extract the Configuration Files
Download the provided ZIP file and extract its contents to a local directory.
The extracted folder contains the following YAML configuration files:
- azurekey.yaml
- deployment.yaml
- hpa.yaml
- ingress.yaml
- pv.yaml
- pvc.yaml
- service.yaml
Step 2: Configure Azure Storage Credentials
Open the azurekey.yaml file and provide the Azure Storage account name and storage account key.
Update the configuration with the credentials of the storage account that contains the Azure Files share.
Ensure that the secret name and namespace match the references in the PersistentVolume configuration.
Keep the storage account key secure. Do not commit credentials to source control or share them in publicly accessible files.
Step 3: Configure the Deployment
Open the deployment.yaml file and configure the Bold Reports container settings.
Update the following properties as required:
- Container image: Specify the Bold Reports single-container image to deploy.
- Image pull policy: Configure the image pull policy as required.
- Container port: Configure port 80.
- Environment variables: Configure the required application environment variables, including INSTALL_OPTIONAL_LIBS and BOLD_SERVICES_REVERSE_PROXY, as applicable.
- Resource requests: Configure the CPU and memory resources required by the container.
- Resource limits: Define the maximum CPU and memory resources available to the container.
Step 4: Configure Persistent Storage
Open the pv.yaml file and configure the PersistentVolume to mount the Azure Files share.
Update the following properties:
- Storage capacity: 20Gi
- Access mode: ReadWriteMany
- Reclaim policy: Retain
- Storage class: azurefile-manual
- CSI driver:
file.csi.azure.com - Volume handle: Specify a unique volume identifier.
- Share name: Provide the name of the Azure Files SMB share.
The PersistentVolume provides access to the Azure Files share, which is used to persist the application data and Nginx-related files.
Ensure that the file share name, storage credentials, and volume configuration are correct before deploying the application.
Step 5: Configure Ingress
Open the ingress.yaml file and configure the hostname and routing rules required to access Bold Reports.
Ensure that the hostname is a valid DNS name and that the ingress configuration routes requests to the Kubernetes Service created in the previous step.
Configure DNS and TLS settings as required by your environment.
Deploying Bold Reports
After configuring all the YAML files, execute the following commands from the directory containing the configuration files.
Step 1: Create the Namespace
Create the namespace for the deployment:
kubectl create namespace boldreports
If the namespace already exists, you can skip this command.
Note: The example uses boldreports as the namespace. If you choose another namespace, update the namespace references consistently across the YAML files.
Step 2: Apply deployment files
kubectl apply -f pv.yaml
kubectl apply -f pvc.yaml
kubectl apply -f azurekey.yaml
kubectl apply -f service.yaml
kubectl apply -f hpa.yaml
kubectl apply -f deployment.yaml
kubectl apply -f ingress.yaml
Verifying the Deployment
After applying the YAML files, verify that the Kubernetes resources have been created successfully.
Check Pod Status
Run the following command to check the status of the Bold Reports pods:
kubectl get pods -n <namespace>
Ensure that the pod reaches the Running state and that the container is ready.
Check Pod Logs
Retrieve the pod name and view the application logs:
kubectl logs <pod-name> -n <namespace>
Review the logs to verify that the application configuration and startup processes have completed successfully.
Once you got the completion logs, you can access the site in web browser and configure start using the below documentation.
Additional Details
Bold Reports startup : Application Startup for the Bold Reports Enterprise Edition