The following are the client libraries used in Bold BI by default.
optionalLibs: 'mongodb,mysql,influxdb,snowflake,oracle,google,clickhouse'
Read the optional client library license agreement from the following link.
Consent to deploy client libraries
If you want to include only specific client libraries, note the optional client libraries from the above link as comma-separated names in your values.yaml file.
Bold BI supports Azure Kubernetes Service (AKS), Elastic Kubernetes Service (EKS), and Google Kubernetes Engine (GKE). You can enter the value based on your cluster provider.
# your cluster provider name. The supported values are aks, gke,ack and eks.
clusterProvider: ''
Persistent volumes were global resources. So if you have already installed Bold BI in your cluster, then the previous persistent volume name will conflict with the current installation. To avoid conflicts with previous Bold BI persistent volumes, change this name.
By default, the persistent volume name used in Bold BI is bold-fileserver
.
persistentVolume:
# persistent volumes were global resources.
# so if you already have Bold BI installed in your cluster,
# then the previous persistent volume name will conflict with current installation.
# Change this name to avoid conflicts with previous Bold BI persistent volumes.
name: bold-fileserver
Generally, a PV will have a specific storage capacity. This is set using the PV's capacity attribute. See the Kubernetes Resource Model to understand the units expected by capacity.
By default, the persistent volume capacity used in Bold BI is 3Gi
.
persistentVolume:
capacity: 3Gi
- ACK
clusterProvider: ack
persistentVolume:
ack:
serverName: ''
filePath: '/bold-services'
Name | Description |
clusterProvider | The type of kubernetes cluster provider you are using. In this case the clusterProvider value is ack |
persistentVolume.ack.serverName | The host name of mount target for your NAS file system. |
persistentVolume.ack.filePath | This field represents the file path of the app_data files. The default location is mentioned as "bold-services. |
- GKE
clusterProvider: gke
persistentVolume:
gke:
fileShareName: <file_share_name>
fileShareIp: <file_share_ip_address>
Name | Description |
clusterProvider | The type of kubernetes cluster provider you are using. In this case the clusterProvider value is gke |
persistentVolume.gke.fileShareName | The File share name of your filestore instance. |
persistentVolume.gke.fileShareIp | The IP address of your filestore instance. |
- EKS
clusterProvider: eks
persistentVolume:
eks:
efsFileSystemId: <efs_file_system_id>
Name | Description |
clusterProvider | The type of kubernetes cluster provider you are using. In this case the clusterProvider value is eks |
persistentVolume.eks.efsFileSystemId | The File system ID of your EFS file system. |
- AKS
clusterProvider: aks
persistentVolume:
aks:
fileShareName: <file_share_name>
# base64 string
azureStorageAccountName: <base64_azurestorageaccountname>
# base64 string
azureStorageAccountKey: <base64_azurestorageaccountkey>
Name | Description |
clusterProvider | The type of kubernetes cluster provider you are using. In this case the clusterProvider value is aks |
persistentVolume.aks.fileShareName | The File share name of your File share instance. |
persistentVolume.aks.azureStorageAccountName | The base64 encoded storage account name of the File share instance in your storage account. |
persistentVolume.aks.azureStorageAccountKey | The base64 encoded storage account key of the File share instance in your storage account. |
NOTE: The Azure storage account credentials will be maintained in a secret named
bold-azure-secret
- AKS WITH NFS FILESHARE
clusterProvider: aks
persistentVolume:
aks:
nfs:
# fileshare name as 'storageaccountname/filesharename'.
fileShareName: '<storageaccountname/filesharename>'
# hostname of the fileshare Ex:premiumstorage1234.file.core.windows.net.
hostName: '<hostname>'
Name | Description |
clusterProvider | The type of kubernetes cluster provider you are using. In this case the clusterProvider value is aks |
persistentVolume.aks.nfs.fileShareName | The Storage account and File share name of your nfs File share instance. Ex: Ex:premiumstorage1234/boldbi |
persistentVolume.aks.nfs.hostName | The host name of your nfs fileshare instance. Ex: premiumstore12345.file.core.windows.net |
NOTE: The premium storage account of the NFS fileshare must be within the same subscription as the AKS cluster.
- On-Premise
clusterProvider: onpremise
persistentVolume:
onpremise:
hostPath: /run/desktop/mnt/host/<local_directory>
Name | Description |
clusterProvider | The type of kubernetes cluster provider you are using. In this case the clusterProvider value is onpremise |
persistentVolume.onpremise.hostPath |
The shared folder path in your host machine. Ex: Create a folder in your machine to store the shared folders for application usage. D://app/shared The corresponding value for the above shared folder will be, /run/desktop/mnt/host/d/app/shared |
By default, Nginx is used as a reverse proxy for Bold BI. To configure load balancing in Bold BI, take a look at the following code sample.
loadBalancer:
type: nginx
The default ingressClassName
is nginx
. Please refer here for more details.
loadBalancer:
# For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
# See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
# ingressClassName: nginx
If you need to configure Bold BI with Istio, then you can change the value as istio
in your configuration as follows.
loadBalancer:
type: istio
You can change the affinityCookieExpiration time. The default value is 600s.
loadBalancer:
affinityCookie:
enable: true
affinityCookieExpiration: 600
If you have an SSL certificate for your DNS and need to configure the site with it, simply pass your DNS with the https
protocol to appBaseUrl
; this will enable SSL in both Ingress and Istio.
NOTE: Create the TLS secret with the name
bold-tls
or modify the secret name in the values.yaml file.
Run the following command to create a TLS secret with your SSL certificate.
# Ingress
kubectl create secret tls bold-tls -n bold-services --key <key-path> --cert <certificate-path>
# Istio
kubectl create secret tls bold-tls -n istio-system --key <key-path> --cert <certificate-path>
You can map multiple domains in both Ingress Nginx and Istio, as shown below. When mapping multiple domains, you must include the appBaseUrl
in one of the host arrays.
For multiple domain scenarios, the singleHost
secret will not be considered. You must mention your secret within the multipleHost
section.
Ingress Nginx
loadBalancer:
singleHost:
secretName: bold-tls
multipleHost:
hostArray:
- hosts:
- cd1.abc.com
- cd2.abc.com
secretName: tls-secret1
- hosts:
- cd1.xyz.com
- cd2.xyz.com
secretName: tls-secret2
Istio Ingress Gateway
loadBalancer:
singleHost:
secretName: bold-tls
multipleHost:
hostArray:
- hosts:
- cd1.abc.com
- cd2.abc.com
secretName: tls-secret
By default, the necessary annotations are already included in the Nginx Ingress file. If you need to add annotations based on your specific use case, you can specify them in the values.yaml file in the key:value format. Refer to the example below:
nginxIngressAnnotations:
# Enter annotations here for adding annotations in nginx ingress
# Example:
# cert-manager.io/cluster-issuer: letsencrypt-prod
# nginx.ingress.kubernetes.io/rewrite-target: /
This configuration allows you to tailor the behavior of the Nginx Ingress Controller to meet your requirements by adding appropriate annotations.
By default, autoscaling is enabled in Bold BI, to disable autoscaling, please set autoscaling.Enabled=false
.
autoscaling:
enabled: true
targetCPUUtilizationPercentage: 80
targetMemoryUtilizationPercentage: 80
behavior:
stabilizationWindowSeconds: 60
podsValue: 1
podsPeriodSeconds: 60
percentValue: 10
percentPeriodSeconds: 60
Name | Description |
autoscaling.enabled | By default the autoscaling will be enabled. turn this to false to disable the autoscaling functionality. |
autoscaling.targetCPUUtilizationPercentage | The CPU utilization is the average CPU usage of a all pods in a deployment across the last minute divided by the requested CPU of this deployment. |
autoscaling.targetMemoryUtilizationPercentage | With this metric the HPA controller will keep the average utilization of the pods in the scaling target at the value mentioned (80%). Utilization is the ratio between the current usage of resource to the requested resources of the pod. |
autoscaling.behavior.stabilizationWindowSeconds | The stabilization window is used by the autoscaling algorithm to consider the computed desired state from the past to prevent scaling. By default the value is 60 to provide a custom downscale stabilization window of 1 minute. |
autoscaling.behavior.podsValue autoscaling.behavior.podsPeriodSeconds |
This policy (Pods) allows 1 replicas to be scaled down in one minute. |
autoscaling.behavior.percentValue autoscaling.behavior.percentPeriodSeconds |
This policy (Percent) allows at most 10% of the current replicas to be scaled down in one minute. |
If you need to use the Bing Map widget feature, enable this to true
and provide an API key value for <widget_bing_map_api_key>
. By default, this feature will be set to false.
bingMapWidget:
enabled: <true / false>
apiKey: <widget_bing_map_api_key>
Note: The Bing Map keys will be maintained in secret name called
bold-secret
.
Localization is adapting a website to different linguistic and cultural contexts - involving much more than simple text translation. By default, the Bold BI application is available in English(en-US) localization.
If you have generated a locale.js file, specify its path in <locale.js_file_path>
.
localization:
customLocalePath: '<locale.js_file_path>'