This document describes how to install Alert via Helm.
Prerequisites
Installing the Chart -- Helm 2
Add the helm repository
$ helm repo add blackduck https://repo.blackduck.com/artifactory/cloudnative/
### Create the Namespace
```bash
$ kubectl create ns <namespace>Configure your Alert Instance
Modify the values.yaml file or pass in values to helm install with --set.
Install the Alert Chart
$ helm install blackduck/blackduck-alert --name <name> --namespace <namespace>helm list.Installing the Chart -- Helm 3
Add the helm repository
$ helm repo add blackduck https://repo.blackduck.com/artifactory/cloudnative/Create the Namespace and TLS Secrets
$ kubectl create ns <namespace>Configure your Alert Instance
Modify the values.yaml file or pass in values to helm install with --set. Please see the Configuration section for more details.
Install the Alert Chart
$ helm install <name> blackduck/blackduck-alert --namespace <namespace>Quick Start with Helm 3
Step 1
Navigate to the alert-helm chart repository in your terminal.
$ cd <path>/alert-helmStep 2
$ kubectl create ns myalertStep 3
Deploy Alert
$ helm install myalert blackduck/blackduck-alert --namespace myalertChanging the server port
For Helm installs, changing the server port is straightforward.
To set the properties via the values.yaml file, change the value of the following properties followed by a helm upgrade command.
alert:
hostname: localhost
port: 8443Alternatively, the environs ALERT_HOSTNAME and ALERT_SERVER_PORT can be set via a helm install command.
--set environs.ALERT_HOSTNAME=localhostYou must also change the healthcheck found under /templates/alert.yaml to point to the port you have specified otherwise the pod will exit due to the failed probe call to the now incorrect port.
livenessProbe:
exec:
command:
- /usr/local/bin/docker-healthcheck.sh
- https://localhost:8443/alert/api/aboutFinding Alert External Port
Once Alert has been deployed if the exposeui parameter is true, then Alert will be available via an exposed port. To determine the port to access the Alert UI execute the following command:
$ kubectl -n <NAMESPACE> get servicesFrom the output find the Alert exposed service. This service will be your Alert installation name with the -exposed suffix in the name. If the installation name is 'myalert' then there will be a service myalert-exposed in the list of services.
It will display a port with the following format:
<INTERNAL_PORT>:<EXTERNAL_PORT>/TCP
For example:
8443:31594/TCP
The internal port is 8443 and the external port is 31594. When accessing the Alert UI the external port will be used in the URL. Once the external port is identified the URL to access the UI will be in the following format:
https://<EXTERNAL_NODE_IP>:<EXTERNAL_PORT>/alert
$ kubectl get nodes -o wideFor example:
https://127.0.0.0:31594/alert
Uninstalling the Chart
To uninstall/delete the deployment:
$ helm delete <name> The command removes all the Kubernetes components associated with the chart and deletes the release.
Configuration
The following table lists the configurable parameters of the Alert chart and their default values.
Configuration Parameters
A brief description of each parameter in the values.yaml file.
| Parameter | Description | Default |
|---|---|---|
alert.imageTag |
Image tag for the Alert container | docker.io/blackducksoftware/blackduck-alert:ALERT_VERSION_TOKEN |
alert.registy |
The container registry for the Alert pod | "" |
alert.port |
The internal port the Alert pod will use | 8443 |
alert.resources.limits.memory |
Alert container Memory Limit | 2560M |
alert.resources.requests.memory |
Alert container Memory Request | 2560M |
alert.persistentVolumeClaimName |
The name of the persistent storage claim | "" |
alert.claimSize |
The persistent storage claim size limit | 5Gi |
alert.storageClass |
The name of the storage class for persistent storage | "" |
alert.volumeName |
The name of the persistent storage volume | "" |
alert.nodeSelector |
Alert node labels for pod assignment | {} |
alert.tolerations |
Alert node tolerations for pod assignment | [] |
alert.affinity |
Alert node affinity for pod assignment | {} |
alert.securityContext |
Alert security context | {} |
alert.podSecurityContext |
Alert pod security context | {} |
cfssl.imageTag |
Image for the Cfssl container | docker.io/blackducksoftware/blackduck-cfssl:1.0.1 |
cffsl.registy |
The container registry for the Cfssl pod | "" |
cfssl.resources.limits.memory |
Cfssl container Memory Limit | 640M |
cfssl.resources.requests.memory |
Cfssl container Request Limit | 640M |
cfssl.nodeSelector |
Cfssl node labels for pod assigment | {} |
cfssl.tolerations |
Cfssl node tolerations for pod assignment | [] |
cfssl.affinity |
Cfssl node affinity for pod assignment | {} |
cfssl.securityContext |
Cfssl node security context | {} |
cfssl.podSecurityContext |
Cfssl pod security context | {} |
postgres.registry |
Postgres registry containing image for the container | "docker.io/centos" |
postgres.isExternal |
If true, do not deploy a Postgres container | false |
postgres.host |
Host name of the Postgres database | "" |
postgres.port |
Port of the Postgres database | 5432 |
postgres.userUserName |
Postgres database user owning the database Alert uses | sa |
postgres.userPassword |
Postgres database password for the user | blackduck |
postgres.databaseName |
Postgres database name where Alert data will be stored | alertdb |
postgres.adminUserName |
Postgres database admin user | postgres |
postgres.adminPassword |
Postgres database password for the admin user | "" |
postgres.dbCredential.secretName |
The name of the secret that contains the database user's username & password | "" |
postgres.dbCredential.usernameKey |
The key containing the database user's username | "ALERT_DB_USERNAME" |
postgres.dbCredential.passwordKey |
The key containing the database user's password | "ALERT_DB_PASSWORD" |
postgres.dbAdminCredential.secretName |
The name of the secret that contains both the database admin's username & password | "" |
postgres.dbAdminCredential.usernameKey |
The key containing the database admin's username | "ALERT_DB_ADMIN_USERNAME" |
postgres.dbAdminCredential.passwordKey |
The key containing the database admin's username | "ALERT_DB_ADMIN_PASSWORD" |
postgres.persistentVolumeClaimName |
Postgres node volume claim name | "" |
postgres.claimSize |
Postgres node volume claim size | "5Gi" |
postgres.storageClass |
Postgres node storage class for volume claim | "" |
postgres.volumeName |
Postgres node volume name for pod assignment | "" |
postgres.nodeSelector |
Postgres node labels for pod assignment | {} |
postgres.tolerations |
Postgres node tolerations for pod assignment | [] |
postgres.affinity |
Postgres node affinity for pod assignment | {} |
postgres.podSecurityContext |
Postgres node pod security context | {} |
postgres.securityContext |
Postgres node security context | {} |
postgres.resources |
Postrges node resources | {} |
rabbitmq.imageTag |
Image tag for the RabbitMQ container | 'docker.io/blackducksoftware/blackduck-alert-rabbitmq:ALERT_VERSION_TOKEN' |
rabbitmq.registry |
The container registry for the RabbitMQ pod | '""' |
rabbitmq.isExternal |
If true, do not deploy a RabbitMQ container | 'false' |
rabbitmq.host |
RabbitMQ host name | '""' |
rabbitmq.port |
RabbitMQ port | '5672' |
rabbitmq.virtualHost |
RabbitMQ virtual host name | 'blackduck-alert' |
rabbitmq.managementPort |
RabbitMQ management port | '15672' |
rabbitmq.credential.secretName |
The name of the secret that contains both the RabbitMQ username & password | '""' |
rabbitmq.credential.usernameKey |
The key containing the RabbitMQ username | '"ALERT_RABBITMQ_USER"' |
rabbitmq.credential.passwordKey |
The key containing the RabbitMQ password | '"ALERT_RABBITMQ_PASSWORD"' |
rabbitmq.persistentVolumeClaimName |
RabbitMQ node volume claim name | '""' |
rabbitmq.claimSize |
RabbitMQ node volume claim size | '"2Gi"' |
rabbitmq.storageClass |
RabbitMQ storage class for volume claim | '""' |
rabbitmq.volumeName |
RabbitMQ node volume name for pod assignment | '""' |
rabbitmq.nodeSelector |
RabbitMQ node labels for pod assignment | '{}' |
rabbitmq.tolerations |
RabbitMQ node tolerations for pod assignment | '[]' |
rabbitmq.affinity |
RabbitMQ node affinity for pod assignment | '{}' |
rabbitmq.podSecurityContext |
RabbitMQ node pod security context | '{}' |
rabbitmq.securityContext |
RabbitMQ node security context | '{}' |
rabbitmq.resources.limits.memory |
RabbitMQ node memory limit | '"1024Mi"' |
blackDuckName |
The ReleaseName of the Black Duck instance | "" |
blackDuckNamespace |
The Namespace of the Black Duck instance | "" |
deployAlertWithBlackDuck |
If true, Alert will be configured to run with a Black Duck SCA instance | false |
enableCertificateSecret |
If true, Alert will use values in a Secret for authenticating it's certificates | false |
enableStandalone |
If true, Alert will be deployed with it's own cfssl instance | true |
enablePersistentStorage |
If true, Alert will have persistent storage | true |
environs |
Environment variables for the Alert container | [] |
exposeui |
If true, a Service to expose the UI will be created | true |
exposedServiceType |
Type of exposed Service | NodePort |
exposedNodePort |
The exposed Node Port for public access | `` |
imagePullSecrets |
Pull secrets to download images | [] |
javaKeystoreSecretName |
(deprecated) The name of the secret for the Java certificate truststore | "" |
pvcSize |
Persistent Volume Claim claim size | 5G |
secretEnvirons |
Sensitive environment variables for the Alert container to be stored in a Secret | [] |
setEncryptionSecretData |
If true, you will be prompted to set values for encrypting Alert's data | false |
status |
Used to start or stop alert instance | Running |
storageClassName |
Persistent Volume Claim storage class | "" |
webserverCustomCertificatesSecretName |
The name of the secret containing the SSL certificate and private key for Alert server | "" |
mountPath |
Postgres data mount location | "/var/lib/postgresql" |
Specify each parameter using the --set key=value[,key=value] argument to helm install.
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
$ helm install blackduck/blackduck-alert --name <name> --namespace <namespace> --set enableStandalone=trueDatabase Credential Secrets
This section describes how to configure Alert using kubernetes secrets to set the database user and administrator credentials.
Create the Database User Credentials Secret
Execute the command as shown, replacing the relevant variables:
$ kubectl create secret generic <SECRET_NAME> -n <ALERT_NAMESPACE> \
--from-literal=<USERNAME_KEY>=<USER_USERNAME> \
--from-literal=<PASSWORD_KEY>=<USER_PASSWORD>- Replace
<SECRET_NAME>with the desired name for the secret. - Replace
<ALERT_NAMESPACE>with the namespace used for Alert. - Replace
<USERNAME_KEY>with the key mapped to the user's username. By default, this is set to ALERT_DB_USERNAME in values.yaml. - Replace
<USER_USERNAME>with the database user's username. - Replace
<PASSWORD_KEY>with the key mapped to the user's password. By default, this is set to ALERT_DB_PASSWORD in values.yaml. - Replace
<USER_PASSWORD>with the database user's password.
userUserName and userPassword in the Configuration Parameters in values.yaml.Example of creating a secret with the name 'alert-db-user-secret' in the 'example' namespace:
$ kubectl create secret generic alert-db-user-secret -n example \
--from-literal=ALERT_DB_USERNAME=sa \
--from-literal=ALERT_DB_PASSWORD=blackduckCreate the Database Admin Credentials Secret
Execute the command:
$ kubectl create secret generic <SECRET_NAME> -n <ALERT_NAMESPACE> \
--from-literal=<ADMIN_USERNAME_KEY>=<ADMIN_USERNAME> \
--from-literal=<ADMIN_PASSWORD_KEY>=<ADMIN_PASSWORD>- Replace
<SECRET_NAME>with the desired name for the secret. - Replace
<ALERT_NAMESPACE>with the namespace used for Alert. - Replace
<ADMIN_USERNAME_KEY>with the key mapped to the admin's username. By default, this is set to ALERT_DB_ADMIN_USERNAME in values.yaml. - Replace
<ADMIN_USERNAME>with the database admin's username. - Replace
<ADMIN_PASSWORD_KEY>with the key mapped to the admin's password. By default, this is set to ALERT_DB_ADMIN_PASSWORD in values.yaml. - Replace
<ADMIN_PASSWORD>with the database admin's password.
adminUserName and adminPassword in the Configuration Parameters in values.yaml.Example of creating a secret with the name 'alert-db-admin-secret' in the 'example' namespace:
$ kubectl create secret generic alert-db-admin-secret -n example \
--from-literal=ALERT_DB_ADMIN_USERNAME=postgres \
--from-literal=ALERT_DB_ADMIN_PASSWORD=adminPasswordConfigure Database Credentials Secrets
Once you create the secrets with the correct credentials, you must then tell Alert the name of the secret the credentials correspond to. In the values.yaml file, for the database user, set:
postgres.dbCredential.secretName: "<SECRET_NAME>"
postgres.dbCredential.usernameKey: "<USERNAME_KEY>"
postgres.dbCredential.passwordKey: "<PASSWORD_KEY>"-
Replace
<SECRET_NAME>with the name of the secret created in the step Create the Database User Credentials Secret. -
Replace
<USERNAME_KEY>with the username key used in the same step. -
Replace
<PASSWORD_KEYwith the password key used in the same step. -
In the values.yaml file, for the database admin, set
postgres.dbAdminCredential.secretName: "<SECRET_NAME>" postgres.dbAdminCredential.usernameKey: "<ADMIN_USERNAME_KEY>" postgres.dbAdminCredential.passwordKey: "<ADMIN_PASSWORD_KEY>" -
Replace
<SECRET_NAME>with the name of the secret created in the step Create the Database Admin Credentials Secret. -
Replace
<ADMIN_USERNAME_KEY>with the username key used in the same step. -
Replace
<ADMIN_PASSWORD_KEY>with the password key used in the same step.
RabbitMQ Credential Secrets
This section describes how to configure Alert using kubernetes secrets to set the RabbitMQ user credentials.
Create the RabbitMQ Credentials Secret
Execute the command as shown, replacing the relevant variables:
$ kubectl create secret generic <SECRET_NAME> -n <ALERT_NAMESPACE> \
--from-literal=<USERNAME_KEY>=<USER_USERNAME> \
--from-literal=<PASSWORD_KEY>=<USER_PASSWORD>- Replace
<SECRET_NAME>with the desired name for the secret. - Replace
<ALERT_NAMESPACE>with the namespace used for Alert. - Replace
<USERNAME_KEY>with the key mapped to the RabbitMQ user's username. By default, this is set to ALERT_RABBITMQ_USER in values.yaml. - Replace
<USER_USERNAME>with the database RabbitMQ user's username. - Replace
<PASSWORD_KEY>with the key mapped to the RabbitMQ user's password. By default, this is set to ALERT_RABBITMQ_PASSWORD in values.yaml. - Replace
<USER_PASSWORD>with the RabbitMQ user's password.
Example:
$ kubectl create secret generic alert-rabbitmq-secret -n example \
--from-literal=ALERT_RABBITMQ_USER=rabbitUser \
--from-literal=ALERT_RABBITMQ_PASSWORD=rabbitPasswordThis creates a secret with the name 'alert-rabbitmq-secret' in the 'example' namespace.
Configure RabbitMQ Credentials Secrets
Once you create the secrets with the correct credentials, you must then tell Alert the name of the secret the credentials correspond to. In the values.yaml file, for the RabbitMQ user, set:
rabbitmq.credential.secretName: "<SECRET_NAME>"
rabbitmq.credential.usernameKey: "<USERNAME_KEY>"
rabbitmq.credential.passwordKey: "<PASSWORD_KEY>"- Replace
<SECRET_NAME>with the name of the secret created in the step Create the RabbitMQ Credentials Secret. - Replace
<USERNAME_KEY>with the username key used in the same step. - Replace
<PASSWORD_KEYwith the password key used in the same step.
Custom Certificates
This section describes how to configure the Alert webserver with a custom certificate.
Create Certificate Secret
Execute the command as shown, replacing the relevant variables:
$ kubectl create secret generic <SECRET_NAME> -n <ALERT_NAMESPACE> \
--from-file=WEBSERVER_CUSTOM_CERT_FILE=<PATH_TO_CERTIFICATE_FILE> \
--from-file=WEBSERVER_CUSTOM_KEY_FILE=<PATH_TO_CERTIFICATE_KEY_FILE>- Replace
<SECRET_NAME>with the desired name for the secret. - Replace
<ALERT_NAMESPACE>with the namespace used for Alert. - Replace
<PATH_TO_CERTIFICATE_FILE>to the path on the current file system to your .crt file. - Replace
<PATH_TO_CERTIFICATE_KEY_FILE>to the path on the current file system to the .key file corresponding to your .crt file.
WEBSERVER_CUSTOM_CERT_FILE and WEBSERVER_CUSTOM_KEY_FILE must be included in the --from-file=[key=]<FILE_NAME> arguments for Alert to correctly consume the certificate.For more information about managing secrets, please see: managing secrets using kubectl.
Configure Certificate Secret
Once you have created the certificate secret with the correct keys, you must then tell Alert the name of the secret the certificate corresponds to. Replace <SECRET_NAME> with the name of the secret created in the step Create Certificate Secret.
In the values.yaml file, set:
webserverCustomCertificatesSecretName: "<SECRET_NAME>"Enable Custom Certificate
In the values.yaml file, set the value to true to instruct Alert to use the secret specified by the webserverCustomCertificatesSecretName configuration parameter as the custom certificate.
enableCertificateSecret: truePersistent Storage
The section will describe the changes needed to configure persistent storage.
HostPath persistent volume then you must ensure the correct permissions and ownership. If you are using the security context then the ownership must match the UID of the user and the GID of the group specified in the security context. The file permissions must allow a write to the HostPath volume. Please see: Kubernetes HostPath for further details.Enable Persistent Storage
In the values.yaml file ensure that the setting is true which is the default. If this is false when the deployment is uninstalled all data will be lost.
enablePersistentStorage: true With Storage Claims
This section defines configuration using Persistent Volume Claims. Claims can be optionally used rather than just a Persistent volume. You must have a claim created for the 'alert' service regardless of an on-premise or external database. For the on-premise database deployment a second Persistent Volume Claim must be created to store the database data.
Alert Volume Claim Configuration
A persistent volume must be created first if a dynamic provisioner is not being used. It must be created in the same namespace as the Alert deployment and bound to the persistent volume for Alert.
Configure Alert to use the volume claim by replacing <ALERT_CLAIM_NAME> with the name of the persistent volume claim for Alert data.
alert:
persistentVolumeClaimName: "<ALERT_CLAIM_NAME>"An optional storage class with the persistent volume claim requires the addition of the storage class name. Replace <STORAGE_CLASS_NAME> with the name of the storage class in the persistent volume claim.
alert:
persistentVolumeClaimName: "<ALERT_CLAIM_NAME>"
storageClassName: "<STORAGE_CLASS_NAME>"Example:
alert:
persistentVolumeClaimName: "alert-pvc"
storageClassName: "myStorageClass"Using On-Premise Database
A persistent volume must be created first for the Postgres database if a dynamic provisioner not being used. It must be created in the same namespace as the Alert deployment for Postgres and bound to the persistent volume for Postgres.
Configure Postgres to use the volume claim by replacing <POSTGRES_CLAIM_NAME> with the name of the persistent volume claim for Postgres data.
postgres:
persistentVolumeClaimName: "<POSTGRES_CLAIM_NAME>"An optional storage class with the persistent volume claim requires the addition of the storage class name. Replace <STORAGE_CLASS_NAME> with the name of the storage class in the persistent volume claim.
postgres:
persistentVolumeClaimName: "<POSTGRES_CLAIM_NAME>"
storageClassName: "<STORAGE_CLASS_NAME>"Example:
postgres:
persistentVolumeClaimName: "postgres-pvc"
storageClassName: "myStorageClass"Configure Postgres admin username and password following the instructions outlined here: Using On-Premise Database Configuration
Without Storage Claims
This section defines configuration using Persistent Volume. Claims will automatically be created and bound to the volumes defined. You must have a Persistent Volume created for the 'alert' service regardless of an on-premise or external database. For the on-premise database deployment a second Persistent Volume must be created to store the database data.
Alert Volume Configuration
A persistent volume must be created first if a dynamic provisioner not being used. Configure Alert to use the volume name by replacing <ALERT_VOLUME_NAME> with the name of the persistent volume for Alert data.
alert:
volumeName: "<ALERT_VOLUME_NAME>"An optional storage class with the persistent volume requires the addition of the storage class name. Replace <STORAGE_CLASS_NAME> with the name of the storage class in the persistent volume claim.
alert:
volumeName: "<ALERT_VOLUME_NAME>"
storageClassName: "<STORAGE_CLASS_NAME>"Define the claim size which by default is 5GB.
alert:
claimSize: "5Gi"Example:
alert:
claimSize: "5Gi"
storageClassName: "myStorageClass"
volumeName: "alert-volume"A claim will be created with the release name for example 'myalert-pvc' please verify the claim bound to the volume.
$ kubectl -n <ALERT_NAMESPACE> get pvcUsing On-Premise Database
A persistent volume must be created first for the Postgres database if a dynamic provisioner is not being used. Configure Alert to use the volume name by replacing <POSTGRES_VOLUME_NAME> with the name of the persistent volume for Postgres data.
postgres:
volumeName: "<POSTGRES_VOLUME_NAME>"An optional storage class with the persistent volume requires the addition of the storage class name. Replace <STORAGE_CLASS_NAME> with the name of the storage class in the persistent volume claim.
postgres:
volumeName: "<POSTGRES_VOLUME_NAME>"
storageClassName: "<STORAGE_CLASS_NAME>"Define the claim size which by default is 5GB.
postgres:
claimSize: "5Gi"Example:
postgres:
claimSize: "5Gi"
storageClassName: "myStorageClass"
volumeName: "postgres-volume"A claim will be created with the release name for example 'myalert-postgres' please verify the claim bound to the volume.
$ kubectl -n <ALERT_NAMESPACE> get pvcConfigure Postgres admin username and password following the instructions outlined here: Using On-Premise Database Configuration.
External Postgres Database
External Postgres Database Requirements
When deploying with an external database follow the information provided for installing with an external database.
Configuring the External Postgres Database
On the external database create a database owned by the Alert Admin user by replacing <DATABASE_NAME> with the name of the database for Alert and <ROLE_NAME> with the Alert database user created in the previous step.
CREATE DATABASE <DATABASE_NAME> WITH OWNER <ROLE_NAME>Disable on premise database container creation.
postgres:
isExternal: trueConfigure Alert Postgres user by replacing <ROLE_NAME> with the database user name.
postgres:
userUserName: <ROLE_NAME>postgres:
userPassword: <PASSWORD>Configure Alert Postgres host by replacing <DATABASE_HOST> with the hostname of the database server.postgres:
host: <DATABASE_HOST>Configure Alert Postgres port by replacing <DATABASE_PORT> with the port the database server is running on.
postgres:
port: <DATABASE_PORT>Configure Alert Postgres database name by replacing <DATABASE_NAME> with the name of the database created in previous steps.
postgres:
databaseName: <DATABASE_NAME>Configure Postgres admin username and password following the instructions outlined here: Using External Database Configuration.
Database Admin User Password
Alert requires administrator access to configure the database correctly. The following section describes how to configure the administrator credentials for both on-premise and external database configurations.
Using On-Premise Database Configuration
While editing the Alert values.yaml, in the postgres section edit the following configurations to set the admin user password of the postgres database. Replace <ADMIN_PASSWORD> with the name of the postgres administrator password.
postgres:
adminUserName: postgres
adminPassword: "<ADMIN_PASSWORD>"Example:
postgres:
adminUserName: postgres
adminPassword: my_admin_passwordUsing External Database Configuration
Configure your external database settings as described in External Postgres Database. While editing the Alert values.yaml, in the postgres section edit the following configurations to set the admin user password of the postgres database.
Replace <ADMIN_USERNAME> with the name of the postgres administrator username and <ADMIN_PASSWORD> with the name of the postgres administrator password.
postgres:
adminUserName: "<ADMIN_USERNAME>"
adminPassword: "<ADMIN_PASSWORD>"Example:
postgres:
adminUserName: my_admin_username
adminPassword: my_admin_passwordInstalling with Black Duck SCA
Enable deployment with Black Duck SCA by setting 'deployAlertWithBlackDuck' to true.
deployAlertWithBlackDuck: trueSet the exposedNodePort value in the values.yaml file.
exposedNodePort: 443Configure the Black Duck release name by replacing <BLACKDUCK_RELEASE_NAME> with the name of the release of Black Duck SCA.
blackDuckName: "<BLACKDUCK_RELEASE_NAME>"Configure the Black Duck namespace by replacing <BLACK_DUCK_NAMESPACE> with the namespace where the Black Duck SCA product is deployed.
blackDuckNamespace: "<BLACK_DUCK_NAMESPACE>"