Installing BMC Helix Platform Common services 25.1.00


Installation of BMC Helix Platform Common Services installation is a pre-requisite for BMC Helix Service Management.

Important

If you are performing a combined deployment of BMC Helix Service Management and BMC Helix IT Operations Management, and have installed BMC Helix IT Operations Management, do not install BMC Helix Platform Common Services again.

BMC Helix Platform Common Services are deployed with the BMC Helix IT Operations Management deployment.

Starting with BMC Helix Platform Common Services 25.1.00, BMC Helix Logging is not installed during BMC Helix Platform Common Services installation.

To install BMC Helix Logging, see Installing-BMC-Helix-Logging.

The following video (3:23) provides a summary of installing BMC Helix Platform Common Services:

icon_play.pnghttps://youtu.be/Vd5HG7txsdg

Before you begin

  • Make sure that you have created a namespace to install BMC Helix Platform Common Services services.
  • Verify that nothing is installed in the namespace by using the following command:

    kubectl get all -n <namespace>
  • Make sure that you have configured the nginx-configuration configmap.
    For information about the nginx-configuration configmap parameter value requirements, see System-requirements.
  • Make sure that you have permission to create ServiceAccount, Role, and RoleBinding in the BMC Helix Platform namespace.
    If you do not have permission, create a Service account, Role, and RoleBinding.

Important

Do not perform these tasks if you have already installed BMC Helix IT Operations Management (BMC Helix ITOM).

To create ServiceAccount, Role, and RoleBinding

To install BMC Helix Platform Common Servicesyou must have permission to create ServiceAccount, Role, and RoleBinding in the BMC Helix Platform namespace.

If you do not have permission, an administrator must perform the following steps to create a Service account, Role, and RoleBinding to enable you to install BMC Helix Platform Common Services:

  1. In the commons/yaml_files/serviceAccount.yaml and commons/yaml_files/role_rolebinding.yaml file replace the following values:
    1. __SERVICE_ACCOUNT__with the name of the service account that you want to create.
    2. __NAMESPACE__with the BMC Helix Platform namespace.
  2. To create a service account, run the following command:

    kubectl apply -f serviceAccount.yaml
  3. To create role and rolebinding, run the following command:

    kubectl apply -f role_rolebinding.yaml
  4. When you set the CUSTOM_SERVICEACCOUNT_NAME parameter in the infra.config file, replace helix-onprem-sa value with the service account name that you created.

Important

The uninstallation script deletes the custom service account.

If you have created a custom service account, after performing an uninstallation, you must recreate the custom service account.

Task 1: To download and extract the deployment manager

  1. Log in to the controller or bastion machine from where the Kubernetes cluster is accessible.
  2. Download the deployment manager helix-on-prem-deployment-manager-25.1.00-45.sh and BMC_Helix_PCS_for_Service_Management_Version_25.1.00.004 hotfix from BMC Electronic Product Distribution (EPD) and extract it to a temporary directory, if you haven't already.
    Download the deployment manager by selecting the BMC Helix Platform Common Services for Service Management Version 25.1.00 option. To download the files from EPD, see Downloading-the-installation-files.
    Download the BMC_Helix_PCS_for_Service_Management_Version_25.1.00.004-2.tar hotfix by using the BMC Helix Platform Common Services for Service Management Version 25.1.00.004 option.
    The zombie process generation issue on redis-haproxy-monitor pods and Kafka Zookeeper pods is fixed in the hotfix.
  3. If you are using a local repository for pulling images, make sure that the local image repository has referenced the following images in the 251_Helix_Platform_Images.txt file:
    REDIS_CLUSTER_IMAGE_TAG=25100-v151-hf4-redis-cluster-7.4.1-alpine
    See Setting-up-a-Harbor-repository-to-synchronize-container-images.
  4. Extract the BMC_Helix_PCS_for_Service_Management_Version_25.1.00.004.tar.gz file to the 25.1.00 workspace folder.
    tar -xvf BMC_Helix_PCS_for_Service_Management_Version_25.1.00.004-2.tar.gz
  5. Run the following command to change the permission of the downloaded file:

    chmod a+x helix-on-prem-deployment-manager-<release_version>.sh

     

  6. To extract the deployment manager, run the following command:

    ./helix-on-prem-deployment-manager-25.1.00
    cd helix-on-prem-deployment-manager

    The updated files will replace the affected files in the workspace directory.

Task 2: To prepare for password encryption

  1. Go to the commons/certs directory and open the secrets.txt file.

    Important

    Use the secrets.txt file that you downloaded along with the deployment manager.

  2. Add the following passwords to this file and then save it:

    The secrets.txt file is deleted after installation. You will need the values set in the secrets.txt file for future upgrades. Hence, save the secrets.txt in a secure location. 

    PropertyDescription

    IMAGE_REGISTRY_PASSWORD

    Password for the Docker registry.

    Important: Do not use special characters in the password.

    SMTP_PASSWORD

    Password to connect to the SMTP server. 

    In the configs/infra.config file, if the value of the SMTP_AUTH parameter file is NONE, leave the SMTP_PASSWORD value blank as shown:

     SMTP_PASSWORD=""

    Important: 

    The password must meet the following requirements:

    • Must have a minimum of 7 characters.
    • Must contain at least one uppercase letter [A–Z] and one lowercase letter [a–z].
    • Must contain at least one digit [0–9].
    • Must not contain any special character. 
    • Must not contain 'admin' and 'bmcuser'.

    PG_PASSWD

    Password to connect to the PostgreSQL database.

    Important: 

    The password must meet the following requirements:

    • Must have a minimum of 7 characters.
    • Must contain at least one uppercase letter [A–Z] and one lowercase letter [a–z].
    • Must contain at least one digit [0–9].
    • Must contain at least one special character. The supported special characters are - !@#$%
    • Must not start or end with a special character.
    • Must not contain 'admin' and 'bmcuser'.

    MINIO_ACCESS_KEY  

    MinIO access key.

    Any username can be set as an access key.

    Important:

    The password must meet the following requirements:

    • Must have a minimum of 8 characters.
    • Must contain at least one uppercase letter [A–Z] and one lowercase letter [a–z].
    • Must contain at least one digit [0–9].
    • Must contain at least one special character. 
    • Must not contain 'admin' and 'bmcuser'.

    MINIO_SECRET_KEY 

    MinIO secret key.

    Any password can be set as the secret key.

    Important: 

    The password must meet the following requirements:

    • Must have a minimum of 7 characters.
    • Must contain at least one uppercase letter [A–Z] and one lowercase letter [a–z].
    • Must contain at least one digit [0–9].
    • Must contain at least one special character. 
    • Must not contain 'admin' and 'bmcuser'.

    ES_JKS_PASSWORD  

    This password is used for the Keystore that is created when custom CA-signed certificates are used and mounted inside the Elasticsearch pods. 

    Important:

    • ES_JKS_PASSWORD is required only when you are using a Custom CA certificate, else keep the value as ES_JKS_PASSWORD="".
    • The password must meet the following requirements:
      • Must have a minimum of 7 characters.
      • Must contain at least one uppercase letter [A–Z] and one lowercase letter [a–z].
      • Must contain at least one digit [0–9].
      • Must contain at least one special character. The supported special characters are - !@#$%
      • Must not start or end with a special character.
      • Must not contain 'admin' and 'bmcuser'.

    LOG_ES_PASSWD

    (Optional) Starting with BMC Helix Platform Common Services version 24.3, applications will use a non-default user for Elasticsearch connections for Log Elasticsearch (Log ES). 

    To use a non-default user, change the default value of the LOG_ES_PASSWD parameter.

    Important:

    The password must meet the following requirements:

    • Must have a minimum of 7 characters.
    • Must contain at least one uppercase letter [A–Z] and one lowercase letter [a–z].
    • Must contain at least one digit [0–

     

    Important

    Make sure that you provide all passwords in the secrets.txt file. If you fail to add any password in the secrets.txt file, the deployment fails with the following error:
    password_encry_failure.png

    Sample secrets.txt file

    # cat commons/certs/secrets.txt
    #Please put the passwords in this file
    IMAGE_REGISTRY_PASSWORD=password123
    SMTP_PASSWORD=test123
    SMART_SYSTEM_PASSWORD=password123
    PG_PASSWD=pGTest2020
    MINIO_ACCESS_KEY=admin
    MINIO_SECRET_KEY=admin123
    # ES_JKS_PASSWORD is required only when you are using Custom CA certificate, else keep value as ES_JKS_PASSWORD=""
    ES_JKS_PASSWORD=test@12

    ################## End OF THE FILE ####################

Task 3: To install BMC Helix Platform Common Services

  1. In the helix-on-prem-deployment-manager/configs/infra.config file, modify the following parameters that are environment-specific:

    Important

    • The following load balancer hosts are required. You do not need any subdomains.
      • LB_HOST
        Ensure that the LB_HOST value is not the same as the tenant URL.
      • TMS_LB_HOST
      • MINIO_LB_HOST
      • MINIO_API_LB_HOST
      • Tenant URL that is derived based on the following parameters from the infra.config file:
        $TENANT_NAME-$TENANT_TYPE-$TENANT_ENVIRNONMENT.$DOMAIN
    • Make sure that you have created a storage class.
      BMC supports a Bring-Your-Own-Storage-Class model for any block storage supporting high performance IOPS. NFS is not supported for persistent volumes. CephRBD is certified by BMC.

     

    PropertyDescriptionExample

    Docker registry details

    IMAGE_REGISTRY_HOST   

    Specify the host where the Docker registry is running with the BMC container images.

    For the images that are synchronized to a local Harbor registry,
    make sure the Harbor registry is set up with HTTPS and set the local repository value to this parameter. 

    Important : Do not specify the host path, specify only the host name.

    For BMC repository: IMAGE_REGISTRY_HOST=containers.bmc.com.

    For a local repository: IMAGE_REGISTRY_HOST= value-investing.cluster3.bmc.com.

    IMAGE_REGISTRY_USERNAME

    Specify the username to access the Docker registry.

    If you use a local Harbor registry to synchronize with BMC DTR, specify the user name to log in to your local registry.

    IMAGE_REGISTRY_USERNAME = symphony.aircooler@summer.hot 

    Load balancer details

    NAMESPACE

    Specify the namespace where you want to install BMC Helix Platform Common Services.

    You must have separate namespaces to install BMC Helix Platform Common Services and BMC Helix Service Management.

    NAMESPACE=dark-helmet

    LB_HOST

    Specify a URL to create the load balancer host.

    The BMC Helix Single Sign-on  ingress uses this URL to access the BMC Helix Single Sign-on administration console.

    LB_PORT

    Specify the port number that the load balancer listens to and accepts the client request.

    The default value is 443.

    LB_PORT=443

    TMS_LB_HOST

    Specify a URL to create the Tenant Management System host.  The value of this parameter is used by the tenant management system ingress.

    DOMAIN

    Specify the URL for domain of the load balancer. This value is used to create a valid base URL for tenants and needs wild card certificate. Having a wild card certificate would help you to create multiple URLs.

    MINIO_LB_HOST

    Specify a URL to create a  MinIO storage. This value is used by the MinIO ingress.

    MINIO_API_LB_HOST

    Specify a URL to create a MinIO storage. All the API based operations are performed using this URL. This URL is used to create a  MinIO bucket.
     

    MINIO_API_LB_HOST=minio-api.mydomain.bmc.com

    TENANT_ENVIRONMENT

    Specify the environment type. 

    The value of this parameter depends on the kind of setup that you want to create, such as, dev, qa, or production.

    Important:

    • Do not use prod to indicate the production environment.
    • Do not use special characters.
    • The value of this parameter is not based on deployment size such as, compact, small, medium or large.

    You can use the same environment value while performing the BMC Helix Service Management installation.

    TENANT_ENVIRONMENT=dev

    Cluster type

    CLUSTER_TYPE

    Cluster type can have values openshift or ocp for OpenShift.

    If CLUSTER_TYPE is not set to openshift or ocp then cluster type is treated as kubernetes cluster.

    Important:

    If you do not want to set a value for CLUSTER_TYPE, leave it blank as shown:
    CLUSTER_TYPE=

    CLUSTER_TYPE=openshift

    Tenant details

     TENANT_NAME

    Specify the name of the tenant.

    The value that you specify is used to create the tenant URL in the following format:
     $COMPANY_NAME-$TENANT_TYPE-$ENVIRONMENT.$DOMAIN

    Important: Use only lowercase letters to specify the name of the tenant.

     TENANT_NAME=bmc

    TENANT_EMAIL    

    Specify the email address of the admin user of the primary tenant.

    TENANT_EMAIL=abc@bmc.com

    TENANT_FIRST_NAME

    Specify the first name of the admin user of the primary tenant.

    TENANT_FIRST_NAME=Myfirstname

    TENANT_LAST_NAME

    Specify the last name of the admin user of the primary tenant.

    TENANT_LAST_NAME=Mylastname

    TENANT_TYPE

    Specify a value to uniquely identify different groups within a tenant (COMPANY_NAME).
    The COMPANY_NAME value is used as the tenant name. In addition to the tenant name, use the TENANT_TYPE parameter to identify the tenant.

    TENANT_TYPE=tyrion

    TENANT_COUNTRY

    Specify the country where the servers are located or from where you are deploying BMC Helix Platform Common Services.

    Click  here to view a list of the supported country names.

    Important:

      • Make sure that the value of TENANT_COUNTRY is enclosed within double quotation marks.

    TENANT_COUNTRY="United States"

    SMTP details

    SMTP_HOST     

    Specify a valid host name for the SMTP server.
    All SMTP mail servers are supported.

    This parameter is required.

    SMTP parameters are required for the emails that are sent to the administrator for tenant activation after the BMC Helix Platform deployment is complete.

    To use a temporary SMTP server to receive BMC Helix Platform Common Service installation emails, see the knowledge article000396217.

    SMTP_HOST=mailhost.mycompany.com

    SMTP_PORT     

    Specify a value for the port of the SMTP server.

    Important: 
    Specify only integer values.

    This parameter is required.

    SMTP_PORT=25

    SMTP_USERNAME 

    User name to connect to the SMTP server.

    If SMTP_AUTH value is set to NONE, keep the SMTP_USERNAME and SMTP_PASSWORD values blank as shown below:

    • SMTP_USERNAME=""
    • SMTP_PASSWORD=""

    This parameter is required. Make sure that the SMTP username and password blank value is in double quotes.

    SMTP_USERNAME=abc@mycompany.com

    SMTP_FROM_EMAIL

    A valid email ID for the From address in all emails

    This parameter is required.

    SMTP_FROM_EMAIL=helix-rd@mycompany.com

    SMTP_TLS

    If your SMTP server is using TLS certificates, set the value of this parameter to true.

    If SMTP_TLS is set to true, and the SMTP_HOST certificate is signed by a custom
    or self-signed CA, make sure that you append the custom or self-signed CA
    certificate (full CA chain) to the commons/certs/custom_cacert.pem file.

    The default value is false. Specify the parameter value as true or false.

    SMTP_TLS=false

    SMTP_AUTH_DASHBOARD

    If the SMTP server does not need authentication, set the value of this parameter to false.

    The default value is true.

    SMTP_AUTH_DASHBOARD=true

    SMTP_AUTH

    One of the following values:

    • PLAIN
      This value is case sensitive. If you set the value as PLAIN, it is mandatory to set valid values for SMTP_USER and SMTP_PASSWORD.
    • LOGIN
      This value is case sensitive. If you set the value as LOGIN, it is mandatory to set valid values for SMTP_USER and SMTP_PASSWORD.
    • NONE
      This value is case sensitive. Use this value when you want to skip SMTP authentication. If you set the value as NONE, set the user name and password values as shown below:
      • SMTP_USERNAME=""
      • SMTP_PASSWORD=""

    SMTP_AUTH=PLAIN

    OPS_GROUP_EMAIL

    Specify a valid email address for your organization's operations team. All emails related to tenant activities such as tenant creation, registration, and offboarding are sent to this email address.

    Important:
    Special characters are not allowed in an email.

    OPS_GROUP_EMAIL=ops-grp@mycompany.com

    APPROVAL_GROUP_EMAIL

    Set a valid email address of the approval group who would approve a new tenant. 

    Important:

    Special characters are not allowed in an email.

    APPROVAL_GROUP_EMAIL=grp-rd@mycompany.com

    Storage class details

    PG_STORAGE_CLASS

    Specify a storage class for Postgres.
     Usually, a single storage class by using block storage is configured for all the infra services.

    PG_STORAGE_CLASS=acme-block-storage

    VMSTORAGE_STORAGE_CLASS

    Specify a storage class for VictoriaMetrics.
    Usually, a single storage class by using block storage is configured for all the infra services.

    VMSTORAGE_STORAGE_CLASS=acme-block-storage

    VMAGGSTORAGE_STORAGE_CLASS

    Specify a storage class.
    Usually, a single storage class by using block storage is configured for all the infra services.

    VMAGGSTORAGE_STORAGE_CLASS=acme-block-storage

    ES_MASTER_STORAGE_CLASS

    Specify a storage class for Elasticsearch master nodes.
    Usually, a single storage class by using block storage is configured for all the infra services.

    ES_MASTER_STORAGE_CLASS=acme-block-storage

    ES_DATA_STORAGE_CLASS

    Specify a storage class for Elasticsearch data nodes.
    Usually, a single storage class by using block storage is configured for all the infra services.

    ES_DATA_STORAGE_CLASS=acme-block-storage

    MINIO_STORAGE_CLASS

    Specify a storage class for MinIO.
    Usually, a single storage class by using block storage is configured for all the infra services.

    MINIO_STORAGE_CLASS=acme-block-storage

    EFS_STORAGE_CLASS

    Specify a storage class for Amazon Elastic File System (EFS). 
     

    EFS_STORAGE_CLASS=acme-block-storage

    REDIS_CLUSTER_STORAGE_CLASS 

    Specify a storage class for REDIS.
    Usually, a single storage class by using block storage is configured for all the infra services.

    REDIS_CLUSTER_STORAGE_CLASS=acme-block-storage

    REDIS_HA_GLOBAL_STORAGECLASS

    Specify a storage class for REDIS.
    Usually, a single storage class by using block storage is configured for all the infra services.

    REDIS_HA_GLOBAL_STORAGECLASS=acme-block-storage

    KAFKA_STORAGECLASS

    Specify a storage class for Kafka.
    Usually, a single storage class by using block storage is configured for all the infra services.

    KAFKA_STORAGECLASS=acme-block-storage

    AIOPS_STORAGE_CLASS

    Specify a storage class.
    Usually, a single storage class by using block storage is configured for all the infra services.

    AIOPS_STORAGE_CLASS=acme-block-storage

    Optimize storage details

    OPT_STORAGE_CLASS

    Specify a storage class.
    Usually, a single storage class by using block storage is configured for all the infra services.

    OPT_STORAGE_CLASS=acme-block-storage

    Self-signed/Custom CA/Public CA

    CUSTOM_CA_SIGNED_CERT_IN_USE

    If you are using a self-signed or custom CA-signed certificate, set the value of the parameter CUSTOM_CA_SIGNED_CERT_IN_USE to true .
    Name the custom CA certificate file (full chain) as  custom_cacert.pem and copy it to the  commons/certs/ directory; that is,  commons/certs/custom_cacert.pem.  

    If you set the value of the parameters CUSTOM_CA_SIGNED_CERT_IN_USE to false and MONITOR to yes  (in  configs/deployment.config ), you must name the public CA certificate file (full chain) as  public_cacert.pem  and copy it to the commons/certs directory; that is,  commons/certs/public_cacert.pem.

    Additionally, you must add the self-signed or custom CA-signed certificate in the trust of each worker node.

    The default value is false.

    For instructions on using a self-signed or custom CA certificates, see Using custom CA signed certificates.

    Important: If you are using a self-signed or custom CA certificate, make sure that you use the same custom certificate during BMC Helix Platform and BMC Helix Service Management installation.

    CUSTOM_CA_SIGNED_CERT_IN_USE=false

    Service account details

    CUSTOM_SERVICEACCOUNT_NAME

    If you have permission to create ServiceAccount, Role, or RoleBinding, retain the CUSTOM_SERVICEACCOUNT_NAME value as  helix-onprem-sa. The installer will create the ServiceAccount during installation.

     If you do not have permission to create ServiceAccount, Role, or RoleBinding, perform the following steps:

    1. Create a ServiceAccount. See Creating ServiceAccount, Role, and RoleBinding.
    2. Assign the ServiceAccount that you created to CUSTOM_SERVICEACCOUNT_NAME.

    CUSTOM_SERVICEACCOUNT_NAME=helix-onprem-sa

    JAVA keystore

    RSSO_CUSTOM_JAVA_KEYSTORE_IN_USE

    Use this parameter if you want to integrate BMC Helix Single Sign-On
    with SAML identity provider (IdP), which requires RSSO to sign SAML assertions.
    BMC Helix Single Sign-On acts as a SAML service provider.

    To configure BMC Helix Single Sign-on server as a SAML service provider,
    see Configuring the BMC Helix SSO server as a SAML service provider in BMC Helix Single Sign-On documentation.

    To use a custom Java Keystore for RSSO SAML keystore configuration,
    perform the following steps:

    Perform the following steps:

    1. Set the RSSO_CUSTOM_JAVA_KEYSTORE_IN_USE variable to true.
    2. Rename the java keystore file to rsso_custom_java_keystore.
    3. Save this file in the commons/certs directory. The path of this file would be: commons/certs/rsso_custom_java_keystore

      The commons/certs/rsso_custom_java_keystore file will be mounted in the RSSO container at the following location: /etc/rsso_custom_java_keystore
      For more information about creating a keystore, see Creating and updating the SP signing certificate for SAML authentication

       in BMC Helix Single Sign-On documentation.

    The default value is false.

    RSSO_CUSTOM_JAVA_KEYSTORE_IN_USE=false 

    Smart graph details

    SMART_SYSTEM_USERNAME

    Leave it as blank ""

    This parameter is not required for BMC Helix Service Management.

    SMART_SYSTEM_USERNAME=""

    Ingress class details

      

    INGRESS_CLASS

    Specify the Ingress class to be used while you are deploying the Ingress controller.

    The default value is nginx.

    If you have more than one ingress controllers in your cluster, use INGRESS_CLASS to specify the ingress class name that you want to use.

    INGRESS_CLASS=nginx

    NGINX_CONTROLLER

    Specify the value as NGINX_PLUS if you are using the NGINX Plus Ingress controller; else, specify the value as NGINX_OPENSOURCE.

    The default value is NGINX_OPENSOURCE.

    NGINX_CONTROLLER=NGINX_OPENSOURCE

    INGRESS_TLS_SECRET_NAME

    Specify the secret that contains the certificate for SSL if you are using F5 NGINX Plus Ingress Controller.

    The default value is blank.

    INGRESS_TLS_SECR

    Binary paths on your system

    HELM_BIN

    Specify the absolute path of the Helm binary that is supported for the current release.
     

    HELM_BIN=/usr/local/bin/helm
     

    KUBECTL_BIN

    Specify the absolute path of the kubectl binary that is supported for the current release.

    KUBECTL_BIN=/usr/bin/kubectl

    OC_BIN

    Specify the absolute path of the OpenShift binary.

    Important: OC_BIN path should be set if CLUSTER_TYPE is openshift or ocp .

    OC_BIN=/usr/local/sbin/oc

    Security Context details

    RUN_AS_USER

    Set the security context that the infrastructure components must use to enforce security.

    Set the correct context for this variable according to the OpenShift namespace.  For example, in OpenShift namespace, run the following command to get the ID range:

    oc describe namespace <namespace-name>

    Example output: 1000670000

    After you run the command look for the following line in the output:
    openshift.io/sa.scc.uid-range: 1000670000/10000 and copy 1000670000 for RUN_AS_USER, RUN_AS_GROUP and FS_GROUP.

    Set this parameter only if the value of the CLUSTER_TYPE variable is openshift or ocp.
    If the value of the CLUSTER_TYPE variable is kubernetes, set the value of this parameter to null: RUN_AS_USER=null

    Important: The command and output changes for each namespace.

    RUN_AS_USER=null

    RUN_AS_GROUP

    Set the security context that the infrastructure components must use to enforce security.

    Set the correct context for this variable according to the OpenShift namespace.  For example, in OpenShift namespace, run the following command to get the ID range:

    oc describe namespace <namespace-name>

    Example output: 1000670000

    After you run the command look for the following line in the output:
    openshift.io/sa.scc.uid-range: 1000670000/10000 and copy 1000670000 for RUN_AS_USER, RUN_AS_GROUP and FS_GROUP.

    Set this parameter only if the value of the CLUSTER_TYPE variable is openshift or ocp
    If the value of the CLUSTER_TYPE variable is kubernetes, set the value of this parameter to null: RUN_AS_GROUP=null

    Important: The command and output changes for each namespace.

    RUN_AS_GROUP=null

    FS_GROUP

    Set the security context that the infrastructure components must use to enforce security.

    Set the correct context for this variable according to the OpenShift namespace. For example, in OpenShift namespace, run the following command to get the ID range:

    oc describe namespace <namespace-name>

    Example output: 1000670000

    After you run the command look for the following line in the output:
    openshift.io/sa.scc.uid-range: 1000670000/10000 and copy 1000670000 for RUN_AS_USER, RUN_AS_GROUP and FS_GROUP.

    Set this parameter only if the value of the CLUSTER_TYPE variable is openshift or ocp.
    If the value of the CLUSTER_TYPE variable is kubernetes, set the value of this parameter to null: FS_GROUP=null

    Important: The command and output changes for each namespace.

    FS_GROUP=null

    OPT_FSGROUP

    Blank ""

    This parameter is not required for BMC Helix Service Management.

    OPT_FSGROUP=""

    ML_FSGROUP

    Blank ""

    This parameter is not required for BMC Helix Service Management.

    ML_FSGROUP=""

  2. In the helix-on-prem-deployment-manager/configs/deployment.config file, modify the following parameters:

    Parameter

    Required value

    Infra services options

    DEPLOYMENT_SIZE

    itsmcompact, itsmsmall, or itsmxlarge

    If you are installing BMC Helix Platform Common Service in a nonproduction environment, specify the value as itsmcompact.

    If you are installing BMC Helix Platform Common Service in a production environment, specify the value as itsmsmall.

    If you are installing BMC Helix Service Management extra large size, specify the value as itsmxlarge.

    BMC Helix Service Managementdoes not require BMC Helix Platform Common Services resources with deployment sizes such as medium or large. To optimize resources, the deployment sizes, itsmcompact and itsmsmall, are provided for BMC Helix Service Management installation. The itsmcompact size does not support high availability. Use itsmcompact for nonproduction environments. The itsmsmall size supports high availability, so use this size for production environments.

    INFRA
    yes
    _PTPOSTGRESS
    yes
    _KAFKA
    yes
    _REDISCLUSTER
    yes
    _RSSO
    yes
    _ELASTICSEARCH
    yes
    _VICTORIAMETRICS
    yes

    Important: If you are not using BMC Helix ITSM Insights, set this parameter to No.

    _MINIO
    yes

    BMC Helix Dashboard services

    HELIX_DASHBOARD_SERVICES
    yes

    BMC Helix ITSM Insights

    (Optional)ITSMINSIGHT_SERVICES

    yes 

    If you are not using BMC Helix ITSM Insights, set the ITSMINSIGHT_SERVICES and _VICTORIAMETRICS parameter values to No.

    AR System services

    ARSERVICES
    yes

    Important: Make sure that you specify the value as yes. This option registers the BMC Helix Innovation Suite services in BMC Helix Platform.

  3. Install the product by running the following command:

    ./deployment-manager.sh

    After the BMC Helix Platform Common Service are deployed, the tenant administrator receives the following emails:


      • An email with details about the BMC Helix Platform account
      • An email to change the BMC Helix Platform account password at the first login
        All installation logs are located in the helix-on-prem-deployment-manager/logs directory.

Task 4: To apply hotfix

  1. Extract the the BMC_Helix_PCS_for_Service_Management_Version_25.1.00.004-2.tar hotfix to your 25.1.00 workspace by using the following command:
    tar -xvf BMC_Helix_PCS_for_Service_Management_Version_25.1.00.004-2.tar.gz
  2. If you are using a local repository for pulling images, make sure that the local image repository has referenced the following images in the 251_Helix_Platform_Images.txt file:
    containers.bmc.com/bmc/lp0lz:25100-v151-hf4-redis-cluster-7.4.1-alpine
    See Setting-up-a-Harbor-repository-to-synchronize-container-images.
  3. Take a backup of the deployment.config file.
  4. In the deployment.config file, set the values of all the services to no except for these two services:
    • INFRA=yes
    • _REDISCLUSTER=yes
  5. Run the deployment manager by using the following command:
    ./deployment-manager.sh
  6. Restore the deployment.config file from the earlier backup.

Sample configuration files

Sample infra.config file
#Docker registry details
#IMAGE_REGISTRY_HOST=containers.bmc.com
#IMAGE_REGISTRY_USERNAME=<user name to access registry>
IMAGE_REGISTRY_HOST=
IMAGE_REGISTRY_USERNAME=

# keep double quotes in all variables if not required, don't leave them blank or empty
#Infra details
#NAMESPACE=dark-helmet
#LB_HOST=host-india-app.mydomain.com
#LB_PORT=443
#TMS_LB_HOST=tms-private-poc.mydomain.com
#DOMAIN=mydomain.com
#MINIO_LB_HOST=minio-private-poc.mydomain.com
#TENANT_ENVIRONMENT=<Type of environment>
# The values of ENVIRONMENT is based on kind of setup you are going to create e.g. dev, qa, production, poc, multi-service, canary etc. (this is not based on deployment size compact, small, medium, large etc)
TENANT_ENVIRONMENT=dev
NAMESPACE=
LB_HOST=
LB_PORT=
TMS_LB_HOST=
DOMAIN=
# If minio web access required .Please give LB (e.g.minio.domain.com )which has DNS entry otherwise keep blank "".
MINIO_LB_HOST=
# Use minio api ingress(minio-api.domain.com)
MINIO_API_LB_HOST=
KIBANA_LB_HOST=

#Cluster type can have values openshift or ocp for OpenShift.
#If CLUSTER_TYPE is not set to openshift or ocp then cluster type is treated as kubernetes cluster.
CLUSTER_TYPE=

#Tenant details for onboarding
#COMPANY_NAME=<tenant company name same as in tenant discover appliance url>
#TENANT_EMAIL=<tenant email address>
#TENANT_FIRST_NAME=<tenant first name>
#TENANT_LAST_NAME=<tenant last name>
## TENANT_TYPE= <Tenant type in tenant url same as in tenant discovery appliance url>
## Please use only alphanumeric value in COMPANY_NAME
TENANT_NAME=
TENANT_EMAIL=
TENANT_FIRST_NAME=
TENANT_LAST_NAME=
TENANT_TYPE=
# Ensure that the value of COUNTRY is enclosed within double quotes
TENANT_COUNTRY="Virgin Islands, U.S."

#SMTP Config
#SMTP_HOST=<SMTP host name of IP address accessible from cluster>
#SMTP_PORT=<SMTP server port, e.g. 25>
#SMTP_USERNAME=<SMTP user name>
#SMTP_FROM_EMAIL=<SMTP from email address>
#SMTP_TLS=<true/false>
#This below variable is used by portal team
#SMTP_AUTH=<PLAIN or LOGIN or NONE>
# If you use NONE it will not skip the validation of SMTP but it means that your organization allows you to send email without SMTP authentication.
# PLAIN or LOGIN is used when you have authenticated SMTP user and SMTP password
#This variable is used for getting report email to dahsboard team by default value is true
#SMTP_AUTH_DASHBOARD=<true or false>
#OPS_GROUP_EMAIL=<ops email address>
#APPROVAL_GROUP_EMAIL=<email address for approval>
SMTP_HOST=
SMTP_PORT=
#Ensure blank values for SMTP username password is in double quotes
SMTP_USERNAME=
SMTP_FROM_EMAIL=
## SMTP_TLS value can be true or false.
## If SMTP_TLS is set to true and certificate of SMTP_HOST is signed by a custom or self-signed CA then
## ensure to append custom or self-signed CA certificate (full CA chain) to commons/certs/custom_cacert.pem file.
SMTP_TLS=false
SMTP_AUTH_DASHBOARD=true
SMTP_AUTH=
OPS_GROUP_EMAIL=
APPROVAL_GROUP_EMAIL=

#storage class, set value as per storage class in cluster
#PG_STORAGE_CLASS=onprem-storage
#VMSTORAGE_STORAGE_CLASS=onprem-storage
#VMAGGSTORAGE_STORAGE_CLASS=onprem-storage
#ES_MASTER_STORAGE_CLASS=onprem-storage
#ES_DATA_STORAGE_CLASS=onprem-storage
#MINIO_STORAGE_CLASS=onprem-storage
#EFS_STORAGE_CLASS=onprem-storage
#REDIS_CLUSTER_STORAGE_CLASS=acme-block-storage
#REDIS_HA_GLOBAL_STORAGECLASS=onprem-storage
#KAFKA_STORAGECLASS=onprem-storage
#AIOPS_STORAGE_CLASS=onprem-storage

PG_STORAGE_CLASS=
VMSTORAGE_STORAGE_CLASS=
VMAGGSTORAGE_STORAGE_CLASS=
ES_MASTER_STORAGE_CLASS=
ES_DATA_STORAGE_CLASS=
MINIO_STORAGE_CLASS=
EFS_STORAGE_CLASS=
REDIS_CLUSTER_STORAGE_CLASS=
REDIS_HA_GLOBAL_STORAGECLASS=
KAFKA_STORAGECLASS=
AIOPS_STORAGE_CLASS=

#Optimize storage details
#OPT_STORAGE_CLASS=onprem-storage
OPT_STORAGE_CLASS=

#CUSTOM_CA_SIGNED_CERT_IN_USE=true/false
#if you are using self-signed/custom CA signed certificate please set it to true,
#also ensure you have copied custom CA certificate file at commons/certs directory with file name custom_cacert.pem i.e. commons/certs/custom_cacert.pem
CUSTOM_CA_SIGNED_CERT_IN_USE=false

# If there are no permissions to create ServiceAccount, Role, RoleBinding then, create a serviceaccount and assign it to CUSTOM_SERVICEACCOUNT_NAME by replacing default value of helix_onprem_sa.
# Ensure to create a role and rolebinding from file commons/yaml_files/role_rolebinding.yaml and a serviceAccount from file commons/yaml_files/serviceAccount.yaml.
# If there are permissions to create ServiceAccount, Role, RoleBinding then do not change CUSTOM_SERVICEACCOUNT_NAME from value helix-onprem-sa.
CUSTOM_SERVICEACCOUNT_NAME=helix-onprem-sa

# If you want to use custom JAVA keystore for "RSSO SAML keystore configuration", then you must set variable RSSO_CUSTOM_JAVA_KEYSTORE_IN_USE to true
# and put the custom java keystore file at commons/certs directory with file name rsso_custom_java_keystore
# i.e. commons/certs/rsso_custom_java_keystore
# The file commons/certs/rsso_custom_java_keystore will be mounted inside RSSO container at location /etc/rsso_custom_java_keystore
# SAML Keystore - this is the Keystore used for reading SAML-specific certificates/keys. So, it's an application-level Keystore, used directly by the app.
# While JVM Keystore contains certificates for HTTPS connections, the SAML Keystore is used for storing signing and encryption certificates for communication with SAML v2 IdP.
RSSO_CUSTOM_JAVA_KEYSTORE_IN_USE=false  

# Smart Graph
#SMART_SYSTEM_USERNAME=system
SMART_SYSTEM_USERNAME=""

# Ingress class used while deploying Ingress controller
INGRESS_CLASS=nginx

#Binary paths on your system
#HELM_BIN=/usr/local/bin/helm
#KUBECTL_BIN=/usr/bin/kubectl
HELM_BIN=
KUBECTL_BIN=
#OC_BIN path should be set if CLUSTER_TYPE is openshift or ocp
#OC_BIN=/usr/local/sbin/oc
OC_BIN=

# Infra components will run with below Security Context.
# Below 3 variables are considered only for OpenShift cluster
# i.e. if CLUSTER_TYPE is openshift or ocp
# Set correct context as per the OpenShift namespace.
# Else RUN_AS_USER, RUN_AS_GROUP and FS_GROUP must be null.
RUN_AS_USER=null
RUN_AS_GROUP=null
FS_GROUP=null

# Optimize Security Context:
# OPT_FSGROUP must have value 87654321 if CLUSTER_TYPE is openshift or ocp and INSTALL_MODE is upgrade and fresh deployment was performed with 22.2.01 version
# Else OPT_FSGROUP must have value 1001
OPT_FSGROUP=1001

# If CLUSTER_TYPE is openshift or ocp  and INSTALL_MODE is fresh then ML_FSGROUP must be same as FS_GROUP mentioned above, else ML_FSGROUP must have value 998
ML_FSGROUP=998

################################### DO NOT CHANGE ANYTHING BELOW THIS LINE ##########################################

#Patroni Postgres config
PG_HOSTNAME=postgres-bmc-pg-ha-pool
PG_USER=postgres
PG_DATABASE=postgres


#Redis HA config
REDIS_HA_HOSTNAME=redis-redis-ha-haproxy

#Kafka & Zookeeper config
KAFKA_HOSTNAME=kafka
ZOOKEEPER_HOSTNAME=kafka-zookeeper

#RSSO Config
RSSO_PG_DB=ade_rsso

#Elasticsearch config
ES_EVENTS_HOSTNAME=elasticsearch-events-opendistro-es-data-svc
ES_LOGS_HOSTNAME=elasticsearch-logs-opendistro-es-data-svc

#MinIO config
MINIO_HOSTNAME=minio

# Misc
IMAGE_REGISTRY_SECRET=bmc-dtrhub
TENANT_PHONE=1234567890
LOGIN_ID=hannah_admin

Sample deployment.config file
#Common config begin
#Size of deployment, values are compact, small, medium, large, itsmcompact, itsmsmall, and itsmxlarge
DEPLOYMENT_SIZE=small

#Docker registry project details
IMAGE_REGISTRY_PROJECT=bmc
IMAGE_REGISTRY_ORG=lp0lz
CORE_IMAGE_REGISTRY_ORG=lp0lz
IA_IMAGE_REGISTRY_ORG=lp0oz
OPTIMIZE_IMAGE_REGISTRY_ORG=lp0pz
BHOM_IMAGE_REGISTRY_ORG=lp0mz
AIOPS_IMAGE_REGISTRY_ORG=la0cz

#Common config end

#Install mode as fresh or upgrade
INSTALL_MODE=fresh

#Flag controlling infra services installation
INFRA=yes

#Flag controlling individual infra services installation
_PTPOSTGRESS=yes
_KAFKA=yes
_RSSO=yes
_VICTORIAMETRICS=yes
_ELASTICSEARCH=yes
_MINIO=yes

# Do not make changes to service flags it will break dependency
#Flag controlling helix dashboard services installation
HELIX_DASHBOARD_SERVICES=yes

#Flag controlling itsminsight services installation
ITSMINSIGHT_SERVICES=no

#Flag controlling aiops services installation
AIOPS_SERVICES=no

#Flag controlling monitor product installation
MONITOR=no

#Flag controlling intelligentintegrations services installation
LOG_ANALYTICS_SERVICES=no

#Flag controlling intelligent automation product installation
INTELLIGENT_AUTOMATION=no



#Flag Controlling optimize installation
OPTIMIZE=no

#Flag AR Services installation
ARSERVICES=yes
AUTOANAMOLY=no

Where to go from here

Next task

Back to process

If you are finished setting up the installation environment, return to the appropriate installation, update, or upgrade process:

 

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*