Using Red Hat OpenShift Developer Catalog

You can install Sterling B2B Integrator using Red Hat OpenShift Developer Catalog.

Yaml View

To install Sterling B2B Integrator using Red Hat OpenShift Developer Catalog, follow these steps:
  1. Download the Certified Container image from IBM Entitled Registry. For details, see Downloading Certified Container images from IBM Entitled Registry.
  2. Push the Certified Container on to the Catalog UI using the following steps
    1. Configure the CLI tools for the cluster using the steps mentioned here - CLI Tools Guide.
    2. Log in to the cluster console as an administrator user using cloudtcl login command.
    3. Push the Certified Container archive (ibm-b2bi-prod-1.0.0.tgz) downloaded from PA to the Catalog UI using the following command:
      
      cloudctl catalog load-chart --archive ibm-b2bi-prod-1.0.0.tgz [--repo HELM_REPO_NAME]
      

      For more information on pushing the archives, see IBM Cloud Private CLI catalog commands (catalog).

  3. Open the Cluster console using a browser, navigate to the Catalog tab, search for the Certified Container (ibm-b2bi-prod). Open the Certified Container and perform the following steps to deploy Sterling B2B Integrator:
    1. Ensure the prerequisites are all taken care as mentioned in the Overview tab.
    2. Select Configure and provide these details - Helm release name, Target namespace, and Target cluster.
    3. Add the following mandatory parameters:
      1. StorageClass Name
      2. Database Server Vendor
      3. Database Host
      4. Database Port
      5. Database User
      6. Database Name
      7. Database Secret
      8. Database Driver
      9. Email Address
      10. SMTP host details
    4. Update the following details in the All parameters section:
      1. System Passphrase
      2. Image tag
      3. Image Repository
      4. B2BI Image Pull Secret
    5. Accept the license agreement and click Install to deploy the Certified Container.

      After the successful installation, the system creates a Release, which can be seen in Menu > Workloads > Helm Releases.

      • Click the Release Name and all the Kubernetes resources, created as a part of the deployment like statefulsets, services, pods, configmaps, and pvc, is displayed on the UI.
      • You can verify the status of the pods.
      • You can monitor Kubernetes resources using basic kubectl commands such as:
        
        kubectl get pods
        kubectl get statefulset
        kubectl get services
        

Form View

Helm 3.x introduced support for validation of values using schema files that follow JSON Schema. The IBM Sterling B2B Integrator now supports Form View deployment from the OCP Developer Catalog with the values.schema.json included in the helm charts. All settings are configurable via values.yaml should be configurable from the Form View for IBM Sterling B2B Integrator in the OCP Developer Catalog with few limitations.

For the settings which do not appear in Form View for IBM Sterling B2B Integrator, such fields can be directly added in Yaml View in the OCP Developer Catalog. Reference for such fields can be found in the published helm charts values.yaml for IBM Sterling B2B Integrator.

Due to the existing limitations on Form View, the field portRanges for ASI & AC sections are not visible on Form View or in the Yaml View. The below portRanges section needs to be added in the Yaml View for the installation to proceed.
 backendService:
    type: NodePort
    portRanges:
      - name: adapters
        nodePortRange: 30301-30400
        portRange: 30301-30400
        protocol: TCP
        targetPortRange: 30301-30400 
Note: If you toggle between Form View and Yaml View, the data values set for the fields in either of the views will persist so that you do not need to fill those values again.
Note: For some configuration, you may be required to add properties files to "<helmcharts>/config" directory while deploying from the command line. Such files cannot be passed from "Form View". In such a case, the user is recommended to use the Helm command line option only.

The below fields will not be displayed in Form View and should be added in the Yaml View for configuring IBM Sterling B2B Integrator.

Parameter Description
global.networkPolicies.ingress.customPolicies Configure custom ingress network policies
global.networkPolicies.egress.customPolicies Configure custom egress network policies
resourcesInit.command Command to be executed in the resource init container
extraPVCs Extra volume claims are shared across all deployments
ingress.annotations Additional annotations for the ingress resource
env.extraEnvs Provide extra global environment variables
asi.env.extraEnvs Provide extra environment variables for ASI
asi.frontendService.extraPorts Extra ports for service
asi.frontendService.annotations Additional annotations for the ASI front-end service
asi.backendService.portRanges Port ranges for service
asi.backendService.annotations Additional annotations for the ASI backend service
asi.ingress.internal.extraPaths Extra paths for ingress resource
asi.ingress.external.extraPaths Extra paths for ingress resource
asi.extraPVCs Extra volume claims
asi.extraInitContainers Extra init containers
asi.extraLabels Extra labels
asi.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution k8s PodSpec.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity".
asi.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution k8s PodSpec.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity".
asi.podAffinity.requiredDuringSchedulingIgnoredDuringExecution k8s PodSpec.podAffinity.requiredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity".
asi.podAffinity.preferredDuringSchedulingIgnoredDuringExecution k8s PodSpec.podAffinity.preferredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity".
asi.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution k8s PodSpec.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity"
asi.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution k8s PodSpec.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity"
asi.topologySpreadConstraints Topology spread constraints to control how pods are spread across your cluster among failure-domains such as regions, zones, nodes, and other user-defined topology domains.
asi.tolerations Tolerations to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
asi.extraSecrets Extra secrets. `mountAsVolume` if `true`, the secrets will be mounted as a volume on `/ibm/resources/<secret-name>` folder else they will be exposed as environment variables.
asi.extraConfigMaps Extra configmaps. `mountAsVolume` if `true`, the configmap will be mounted as a volume on `/ibm/resources/<configmap-name>` folder else they will be exposed as environment variables.
asi.hostAliases Host aliases to be added to pod /etc/hosts
asi.performanceTuning.override Override Performance tuning parameters with a user specified value if required
asi.networkPolicies.ingress.customPolicies Configure custom ingress network policies for ASI pods
asi.networkPolicies.egress.customPolicies Configure custom egress network policies for ASI pods
ac.env.extraEnvs Provide extra environment variables for AC
ac.frontendService.extraPorts Extra ports for service
ac.frontendService.annotations Additional annotations for the AC frontend Service
ac.backendService.ports Ports for service
ac.backendService.portRanges Port ranges for service
ac.backendService.annotations Additional annotations for the AC backend Service
ac.ingress.internal.extraPaths Extra paths for ingress resource
ac.ingress.external.extraPaths Extra paths for ingress resource
ac.extraPVCs Extra volume claims
ac.extraInitContainers Extra init containers
ac.extraLabels Extra labels
ac.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution k8s PodSpec.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity".
ac.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution k8s PodSpec.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity".
ac.podAffinity.requiredDuringSchedulingIgnoredDuringExecution k8s PodSpec.podAffinity.requiredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity".
ac.podAffinity.preferredDuringSchedulingIgnoredDuringExecution k8s PodSpec.podAffinity.preferredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity"
ac.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution k8s PodSpec.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity".
ac.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution k8s PodSpec.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity".
ac.topologySpreadConstraints Topology spread constraints to control how Pods are spread across your cluster among failure-domains such as regions, zones, nodes, and other user-defined topology domains.
ac.tolerations Tolerations to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
ac.extraSecrets Extra secrets. `mountAsVolume` if `true`, the secrets will be mounted as a volume on `/ibm/resources/<secret-name>` folder else they will be exposed as environment variables.
ac.extraConfigMaps Extra configmaps. `mountAsVolume` if `true`, the configmap will be mounted as a volume on `/ibm/resources/<configmap-name>` folder else they will be exposed as environment variables.
ac.hostAliases Host aliases to be added to pod /etc/hosts
ac.networkPolicies.ingress.customPolicies Configure custom ingress network policies for AC pods
ac.networkPolicies.egress.customPolicies Configure custom egress network policies for AC pods
api.env.extraEnvs Provide extra environment variables for API
api.frontendService.extraPorts Extra ports for service
api.frontendService.annotations Additional annotations for the API frontend Service
api.extraPVCs Extra volume claims
api.extraInitContainers Extra init containers
api.extraLabels Extra labels
api.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution k8s PodSpec.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity".
api.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution k8s PodSpec.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity".
api.podAffinity.requiredDuringSchedulingIgnoredDuringExecution k8s PodSpec.podAffinity.requiredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity".
api.podAffinity.preferredDuringSchedulingIgnoredDuringExecution k8s PodSpec.podAffinity.preferredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity".
api.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution k8s PodSpec.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity".
api.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution k8s PodSpec.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity and Tolerations".
api.topologySpreadConstraints Topology spread constraints to control how Pods are spread across your cluster among failure-domains such as regions, zones, nodes, and other user-defined topology domains.
api.tolerations Tolerations to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
api.extraSecrets Extra secrets. `mountAsVolume` if `true`, the secrets will be mounted as a volume on `/ibm/resources/<secret-name>` folder else they will be exposed as environment variables.
api.extraConfigMaps Extra configmaps. `mountAsVolume` if `true`, the configmap will be mounted as a volume on `/ibm/resources/<configmap-name>` folder else they will be exposed as environment variables.
api.hostAliases Host aliases to be added to pod /etc/hosts
api.networkPolicies.ingress.customPolicies Configure custom ingress network policies for API pods
api.networkPolicies.egress.customPolicies Configure custom egress network policies for API pods
purge.env.extraEnvs Provide extra environment variables for the purge job
purge.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution k8s PodSpec.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity".
purge.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution k8s PodSpec.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution. Refer section "Affinity".