Setting up install config parameters
This section outlines configuring and deploying the Helix Edge core using environment-specific configuration files. You no longer need to modify the deploy.sh script directly to set configuration parameters. Instead, you will use dedicated environment files.
The Helix Edge core uses the following environment files to manage settings for different deployment types:
- env: Used for production deployments.
- env-STAG: Used for setting up a staging environment.
- env-DEV: Used for setting up a development environment.
Before deploying, you must update the relevant configuration file with the appropriate parameters for your environment.
Deployment methods
You can reference the appropriate env file as input for deployment by using any one of the following methods:
- Configuring the env parameter: Recommended for consistent setups
- Using command-line arguments: Recommended for one-off deployments
Deployment table summary
Environment | Config file | ENV variable | Command-line argument |
---|---|---|---|
Production | env | prod | -prod |
Staging | env-STAG | stag | -stag |
Development | env-DEV | dev | -dev |
Configuring the env parameter
This method is recommended for consistent setups.
- Open the deploy.sh script and locate the ENV variable.
Update it to specify the desired environment:
For productionBash
export ENV=prodFor stagingBash
export ENV=stagFor developmentBash
export ENV=devRun the deploy.sh script.
The system automatically uses the configuration file corresponding to the ENV variable you set.Bash
./deploy.sh <namespace>- Replace <namespace> with the desired namespace for your deployment.
Using command-line arguments
This method is recommended for one-off deployments.
Run the deploy.sh script with one of the following flags to specify the environment directly:
For productionBash
./deploy.sh <namespace> -prodFor stagingBash
./deploy.sh <namespace> -stagFor developmentBash
./deploy.sh <namespace> -dev- Replace <namespace> with the namespace for your deployment.
Integrating with BMC Helix IT Operation Management using a custom CA-signed certificate
Use the following steps if BMC Helix IT Operation Management uses a custom Certificate Authority (CA) signed certificate.
- Get the custom CA-signed certificate from your BMC Helix IT Operation Management Administrator.
- To rename and copy the certificate, perform the following steps:
- Rename the certificate file to custom_cacert.pem.
- Copy the renamed file to <BMC Helix IoT Edge core Install Directory>/hedge-core/commons/certs.
- To set the environment variable, perform the following steps:
- Open the <BMC Helix IoT Edge Install Directory>/hedge-core/env file.
- Change the value of IS_ADE_CUSTOM_CERT to true.
The default value is false.
- Double-check all other environment variables in the env file to make sure they are correctly configured.
- Start the BMC Helix IoT Edge deployment.
Deploying the BMC Helix Edge core with Kubernetes Load Balancer
The BMC Helix IoT Edge core supports service deployment with load balancers on self-managed Kubernetes clusters, provided the load balancer is already configured in the cluster. Kubernetes does not natively provide load balancers for bare-metal clusters.
To deploy the BMC Helix Edge core with Kubernetes Load Balance for self-managed clusters
- Set up a network load balancer in the Kubernetes cluster.
For more information on configuring the Kubernetes cluster, see the MetalLB documentation.
Kubernetes cluster administrators perform this step. - To set an environment variable, perform the following steps:
- Open the <BMC Helix IoT Edge Install Directory>/hedge-core/env file.
- Change the IS_LOADBALANCER value to true.
The default value is false.
- Double-check that the other environment values are accurate.
Initiate the BMC Helix IoT Edge deployment.
Setting up for the installation
- Customize the env file with variables.
The env file displays the scripts with parameters. The following script is an example for your reference:
## Possible Values: CORE, NODE, or CORE_NODE ##
export CURRENT_HEDGE_NODE_TYPE=CORE_NODE
## NOTE: Change to your kubernetes server's domain name (prefixed with . Eg: ".bmc.com") ##
## (Make sure to prefix the domain name with a '.') ##
export K8S_DOMAIN_NAME=.[Domain Name]
export KUBECONFIG= [Location of kubeconfig file]
export NFSSTORAGECLASS=[Storage-Class-Name]
export SECRETS_FILE=/opt/bmc/hedge/hedge-core/_hedge_secrets_inp.yaml
export PULL_SECRET=[Pull Secret Name mentioned in _hedge_secrets_inp.yaml ]
## Set IS_CLOUD_DEPLOY to true if deploying on a Cloud hosted Kubernetes, false if its a self-managed Kubernetes
export IS_CLOUD_DEPLOYMENT=false
## Quality of Service for MQTT and other global parameters to be used across services
export MQTT_QOS=0
export MQTT_RETAIN=false
export PERSISTONERROR=false
export METRICREPORTINTERVAL=1800
## Set UID_HTTP_HEADER to "helix_sso_uid" (default) for RSSO auth, else "X-Credential-Identifier" for basic auth
export UID_HTTP_HEADER=helix_sso_uid
## Set IS_EXTERNAL_AUTH to "true" (default) for RSSO (or other external authentication providers), else "false" for basic auth
export IS_EXTERNAL_AUTH=true
# Set DATASTORE_PROVIDER to "ADE" (default) or "Hedge" based on your choice of persistent storage. Hedge for local storage.
export DATASTORE_PROVIDER=ADE
export TRAINING_PROVIDER=ADE
## When Provider is ADE/AI Foundation, the below is the connectivity configuration
export ADE_TENANT_URL=[ADE Tenant URL]
## Access key for each tenant is generated from the UI and then provide permissions to the key
export ADE_ACCESS_KEY=[ADE Access Key]
export ADE_ACCESS_SECRET_KEY=[ADE Access Secret Key]
export ADE_TENANT_APIKEY=[ ADE Tenant APIKEY]
export ADE_TENANT_ID=[ADE Tenant ID]
## DOCKER REGISTRY
export REGISTRY_HOST=[Docker Registry Host Name & project]
## Helix products
export HELIX_MONITOR_URL=[BHOM Url]
## set this to one or more comma separated valid profiles: all,virtual,demo,es,vm,biz
## if you need to install these optional services, make sure to also enable them in vars_core and/or vars_node from the "ansible" folder
export COMPOSE_PROFILES=
#export COMPOSE_PROFILES=# one or more of - all,virtual,demo,es,vm,biz,fleet
# Valid values for ENV - dev, beta, prod
export ENV=devUpdate the following parameters in the env file:
Parameter
Description
CURRENT_HEDGE_NODE_TYPESet the type of the current node. In this case, the node type is a CORE_NODE.
K8S_DOMAIN_NAMEChange this parameter to the domain name of the Kubernetes server name, prefixed with a '.' For example, .bmc.com.
KUBECONFIGSet the path name to the kubeconfig file for Kubernetes.
NFSSTORAGECLASS
Type the name of the storage class from NFS. For more information, see Deploying NFS.
SECRETS_FILESet the path name to the secrets file.
REGISTRY_HOST
Set the registry host name where the product images are present.
PULL_SECRETSet the pull secret for accessing container images.
IS_CLOUD_DEPLOY
Set this parameter to true if deploying on a cloud-hosted Kubernetes. Otherwise, set to false if it is a self-managed Kubernetes.
MQTT_QOSSet MQTT to Quality of Service.
MQTT_RETAINSet MQTT to retain.
PERSISTONERRORSet persistence on error.
METRICREPORTINTERVALSet the metric reporting interval.
UID_HTTP_HEADERSet the HTTP header for user identification. The default value is helix_sso_uid.
IS_EXTERNAL_AUTHSet to true if by using an external authentication provider, such as Helix BMC Helix SSO.
DATASTORE_PROVIDERSet the data store provider (BMC Helix or BMC Helix Edge). The default value is ADE.
TRAINING_PROVIDERSet the training provider (BMC Helix Innovation Studio, BMC Helix Innovation Studio Common Services, or another provider). The default value is ADE.
ADE_TENANT_URLSet the BMC Helix tenant URL.
ADE_TENANT_ID(optional) Set the BMC Helix tenant ID.
ADE_ACCESS_KEYSet the BMC Helix access key.
ADE_ACCESS_SECRET_KEYSet the BMC Helix access secret key.
ADE_TENANT_APIKEYSet BMC Helix tenant API key.
HELIX_MONITOR_URL
Enter the URL of BMC Helix Monitor.
COMPOSE_PROFILES
Enter one or more profiles of all: virtual, demo, elastic search, Victoria machine, and biz.
EXPOERT_HEDGE_ADE_USERNAME
Enter the ADE admin user name in this field. You can override this with the same user name that you created on ADE and use it in Hedge for authentication.
- Validate variables for error prevention manually.