Deploying TIBCO® Product and Service Catalog powered by TIBCO EBX® on Cloud

Note: Ensure that the TIBCO EBX® images are available in Docker before using TIBCO® Product and Service Catalog powered by TIBCO EBX®. See the TIBCO EBX® Container Edition Guide. Ensure that you have used TIB_ebx_6.0.16_addon_5.6.3_container_edition.zip to create the ebx image.
Before you begin
  1. Download TIB_pscebx_2.0.0.zip from TIBCO eDelivery and extract the archive file. For example, if the product is unarchived at /home then the directory structure is /home/psc-ebx/2.0.0. The /home/psc-ebx/2.0.0 directory location is called $PSC_PSC_BASE.

  2. Create an ext-lib folder under the $PSC_BASE directory.

  3. Download the ebx-addon-adix.war of ebx-addon from TIBCO eDelivery and move it to the ext-lib folder.

  4. Download the JAR files mentioned in the $PSC_BASE/downloadexternalLibs.txt file and move them to the ext-lib folder.

  5. Move the JMS and database related JAR files (tibjms, jms2.0-jar, ojdbc8, and postgres42.x.jar) in the ext-lib folder.

Deploying through Docker

    Procedure
  1. Open the $PSC_BASE/deploy/docker/ebx.properties file in a suitable editor and update the required properties (such as database details and JMS request activation).

  2. Run the $PSC_BASE/deploy/copy-required-files.sh script. Pass the absolute path value of the ext-lib folder when prompted.

  3. Update the ems.address property (ems url) in the $PSC_BASE/deploy/docker/psc-mdm.xml and $PSC_BASE/deploy/docker/ebx.xml files.

  4. Create the required columns as follows:

    docker volume create --name ebxLog
    docker volume create --name ebxRepository
  5. Navigate to the $PSC_BASE/deploy/docker directory and build a Docker image using the following command:

    docker build -t psc-ebx:<tag-name>
  6. Deploy the image into the container by using the following command:

    docker run -d -p 8080:8080 -v ebxLog:/ebx/ebxLog -v 
    ebxRepository:/ebx/ebxRepository -v ebxdata:/ebx/data -v
    ebx-temp:/ebx/temp -e
    "EBX_DB_FACTORY=<<DB_FACTORY>>" -e
    "EBX_DB_URL=<<DB_URL>>" -e
    "EBX_DB_USER=<<DB_USER>>" -e
    "EBX_DB_PASSWORD=<<DB_PASSWORD>>" psc-ebx

Deploying through Helm Charts

    Procedure
  1. Open the $PSC_BASE/deploy/docker/ebx.properties file in a suitable editor and update the required properties (such as JMS queues activation).

  2. Run the $PSC_BASE/deploy/copy-required-files.sh script. Pass the value of EXTERNAL_LIB_PATH when prompted.

  3. Create the required volumes as follows:

    docker volume create --name ebxLog
    docker volume create --name ebxRepository
    docker volume create --name common
    docker volume create --name config
    docker volume create --name data
  4. Navigate to the $PSC_BASE/deploy/docker directory and build a Docker image using the following command:

    docker build -t psc-ebx
  5. Then, tag the image with the remote repository and push it into as follows:

    docker tag psc-ebx:latest $docker_repo$
    docker push $REPO_NAME:Tag_Name
  6. Navigate to the $PSC_BASE/deploy/k8s directory and run the following command to create the PersistentVolumeClaim or Storage classes:

    kubectl create -f psc-volumes.yaml

    You can verify the created storage classes by using the kubectl get storageclass command.

  7. Update the $PSC_BASE/helm/psc-ebx/values.yaml file and mention the values of the following properties:

    repository: docker image name
    tag: docker tag name
    imagePullSecrets
    env.EBX_DB_FACTORY
    env.EBX_DB_URL
    env.EBX_DB_USER
    env.EBX_DB_PASSWORD
    provisioner (for GCP - kubernetes.io/gce-pd)
  8. Update the $PSC_BASE/helm/psc-ebx/templates/deployment.yaml file by adding the ems details under the spec tag.

  9. Upload the helm folder and then choose from the following commands to perform an action:

    To verify chart is well-formed:
    --------------------------------------
    helm lint ./psc-ebx
    
    helm template ./psc-ebx
    
    To run helm:
    ----------------
    
    helm install psc-ebx ./psc-ebx
    
    To list all helm:
    -------------------
    helm list
    
    To upgrade helm - modified the existing chart: 
    ----------------------------------------------------------
    helm upgrade psc-ebx ./psc-ebx
    
    For Debug the issue:
    ---------------------------
    helm upgrade --debug psc-ebx ./psc-ebx
    
    Helm uninstall - uninstall a release:
    ----------------------------------------------
    helm uninstall psc-ebx
    release "psc-ebx" deleted 

Deploying through Kubernetes

    Procedure
  1. Open the $PSC_BASE/deploy/docker/ebx.properties file in a suitable editor and update the required properties (such as JMS queues activation).

  2. Run the $PSC_BASE/deploy/copy-required-files.sh script. Pass the value of EXTERNAL_LIB_PATH when prompted.

  3. Create the required columns as follows:

    docker volume create --name ebxLog
    docker volume create --name ebxRepository
    docker volume create --name common
    docker volume create --name config
    docker volume create --name data
    
  4. Navigate to the $PSC_BASE/deploy/docker directory and build a Docker image using the following command:

    docker build -t psc-ebx:<tag-name>
  5. Then, tag the image with the remote repository and push it into as follows:

    docker tag psc-ebx:latest $docker_repo$
    docker push $REPO_NAME:Tag_Name
  6. Update the $PSC_BASE/k8s/psc.yml file for the image, EBX_DB_URL (database details) as per the following properties:

    psc.yml
    initContainers.image (multiple entry)
    env.EBX_DB_URL
    env.EBX_DB_PASSWORD
    imagePullSecrets
  7. Update the provisioner name in the psc-volumes.yaml file.

  8. Create the persistent volume claim and storage classes by using the following command:

    kubectl create -f psc-volumes.yaml
  9. Run the following command, which creates deployment, services, and pods:

    kubectl apply -f psc.yml