Deploying on the Kubernetes cluster

IBM® Product Master services are deployed on the Kubernetes cluster by using operators.

Before you begin

Download the following image and push the images to the local registry.

About this task

Following files are present in the compressed file you download by using the above link.
File Purpose
volumes.yaml Deploys volumes. The volumes are not auto-provisioned on the local clusters.
ipm.psl.comipmscrd.yaml Custom resources definition (CRD), enables you to add own or custom objects to the Kubernetes cluster.
operator.yaml Operator deployment spec
role_binding.yaml Operator role-based access control (RBAC)
role.yaml Operator role-based access control (RBAC)
service_account.yaml Operator role-based access control (RBAC)
ipm-12.0.2_cr.yml Custom resources definition (CRD) instance

Procedure

Proceed as follows for volume creation when deploying on the local cluster.

Note: Not applicable in the cloud environment as volumes are auto-provisioned. Also, you must give appropriate storageclass for each volume in the ipm-12.0.2_cr.ml file.

  1. Create directories for volumes with required directory structure and proper permissions on every node on Kubernetes cluster by using the following command.
    mkdir <parent directory>
    cd <parent directory>
    mkdir appsrv
    mkdir ftsindlog
    mkdir ftspimlog
    mkdir gds
    mkdir ml
    mkdir mongodb
    mkdir mongodblog
    mkdir mq-data
    mkdir newui
    mkdir sch
    mkdir wfl
    mkdir dam
    chmod +777 <parent directory> -R
    e.g. mkdir -p /mnt/ipm12/
    cd /mnt/ipm12/
    mkdir appsrv
    mkdir ftsindlog
    mkdir ftspimlog
    mkdir gds
    mkdir ml
    mkdir mongodb
    mkdir mongodblog
    mkdir mq-data
    mkdir newui
    mkdir sch
    mkdir wfl
    mkdir dam
    chmod +777 /mnt/ipm12/ -R
    
    Note: You need to share the local directory for the DAM volume /dam among cluster nodes by using the Network File System (NFS) service.
  2. Create volumes by using the following command.
    kubectl apply -f volumes.yaml
  3. View the created volumes by using the following command.
    kubectl get pv
  4. Create namespace by using the following command.
    kubectl create ns ipm
  5. Modify the operator.yml file to update operator registry, image, and version (to point to the local registry). Do not modify other files.
    1. Update the line image: <local_registry_name>/ipm-operator:12.0.2 with the local registry
  6. Deploy the operator by using the following command.
    kubectl apply -f ipm.psl.com_ipms_crd.yaml
    kubectl apply -f role_binding.yaml        
    kubectl apply -f role.yaml                
    kubectl apply -f service_account.yaml
    kubectl apply -f operator.yaml
    
    • The custom resource ipm-12.0.2_cr.yml file contains application deployment specification.
    • While editing the CR, replace xxxxx with wanted value and replica count as required.
  7. Deploy the Product Master, by using the following command.
    kubectl apply -f  ipm-12.0.2_cr.yml
  8. View all resources by using the following command.
    kubectl get all -n ipm
  9. View specific resources by using the following command.
    kubectl get <pods/deploy/svc/pvc/cm/pv> -n ipm
    Example
    kubectl get pods -n ipm
  10. Check logs for a specific pod by using the following command.
    kubectl logs -f <pod name> -n ipm
  11. To uninstall by using the following command.
    kubectl delete -f ipm-12.0.2_cr.yml 
    kubectl delete -f operator.yaml             
    kubectl delete -f role_binding.yaml         
    kubectl delete -f role.yaml                 
    kubectl delete -f service_account.yaml 
    kubectl delete -f volumes.yaml 
    kubectl delete -f ipm.psl.com_ipms_crd.yaml 
    kubectl delete ns ipm
    

Results

Access the Persona-based UI using the following URL.

https://:32044/mdm_ui/#/MDM/Home

Example

https://x.x.x.x:32044/mdm_ui/#/MDM/Home

Access the Admin UI using the following URL.

https://:31144/utils/enterLogin.jsp

Example

https://x.x.x.x:31144/utils/enterLogin.jsp