Deploying Maximo Data Loader in Red Hat® OpenShift

You can deploy Maximo Data Loader on a OpenShift® cluster by using the OpenShift console.

You must deploy Maximo Data Loader on a cluster on which Maximo® Application Suite, Maximo Manage, and Maximo Civil Infrastructure are deployed.

  1. Create a project for Maximo Data Loader in the OpenShift console.
    1. Log in to your OpenShift console as kubeadmin or another user who has permission to log in to the console.
    2. From the drop-down list, click Administrator.
    3. Click Home > Project > Create Project.
    4. For the project name, specify mas-instance_name-maxloader, for example, mas-mci8-maxloader.
      Note: The remaining steps in the installation procedure assume that you created a project that is called mas-mci8-maxloader. If you specify a different project name, you must update the project name where it is referenced in the following steps that are used to deploy Maximo Data Loader on OpenShift.
    5. For the display name, specify IBM Maximo Data Loader.
    6. Click Create.
  2. Create a persistent volume claim to store data such as the certificate keystore, log files, configuration files, and Microsoft Excel workbooks. If the OpenShift pod on which Maximo Data Loader is running does not have a persistent volume, the data in the pod is lost if the pod is restarted.
    1. In the OpenShift web console, click Storage > Persistent Volume Claim and select the OpenShift project that you created.
    2. Click Create Persistent Volume Claim.
    3. Specify mas-mci8-maxloader in the Persistent Volume Claim Name field.
    4. For Access Mode, ensure that Single User (RWO) is selected.
    5. In the Size field, specify 3 to create a 3 GB volume.
    6. Click Create.
  3. Create a Docker image pull secret to pull the Maximo Data Loader image from the IBM® Entitled Registry.
    1. In the OpenShift web console, select Workloads > Secrets > Create > Image pull secret, and select the OpenShift project that you created.
    2. Specify mas-mci8-maxloader.ibmcloud.secret in the Secret Name field.
    3. Specify cp.icr.io in the Registry Service Address field.
    4. Specify cp in the Username field.
    5. In the Password field, paste the IBM Cloud® entitlement key that you obtained for the IBM Entitled Registry.
    6. Click Create.
  4. Create a deployment for Maximo Data Loader.
    1. In the OpenShift web console, click Workloads > Deployment and select the OpenShift project that you created.
    2. Click Create Deployment.
    3. Remove the auto-generated deployment information that is in the Create Deployment page. Copy the text from the following deployment template and paste it into the Create Deployment page to create a new deployment that is called mas-mci8-maxloader:
      kind: Deployment
      apiVersion: apps/v1
      metadata:
        name: mas-mci8-maxloader
        namespace: mas-mci8-maxloader
        labels:
          app: mas-mci8-maxloader
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: mas-mci8-maxloader
        template:
          metadata:
            labels:
              app: mas-mci8-maxloader
              deploymentconfig: mas-mci8-maxloader
          spec:
            containers:
              - resources:
                  limits:
                    cpu: '2'
                    memory: 1Gi
                  requests:
                    cpu: '1'
                    memory: 500Mi
                readinessProbe:
                  exec:
                    command:
                      - stat
                      - /tmp/initialized
                  initialDelaySeconds: 60
                  timeoutSeconds: 1
                  periodSeconds: 30
                  successThreshold: 1
                  failureThreshold: 3
                name: mas-mci8-maxloader
                workingDir: /maxloader
                image: >-
                  cp.icr.io/cp/manage/maxloader:8.1.0
                volumeMounts:
                  - mountPath: /maxloader/data
                    name: mas-mci8-maxloader
            imagePullSecrets:
              - name: mas-mci8-maxloader.ibmcloud.secret
                ports:
                  - containerPort: 8443
                    protocol: TCP
                env:
                  - name: MAXIMO_JAVA
                    value: "/usr/bin/java"
                  - name: MAXLOADER_USERNAME
                    value: "maxloader"
                  - name: MAXLOADER_PASSWORD
                    value: "maxloader"
                  - name: SUMMARY
                    value: "Maximo Data Loader"
                  - name: DESCRIPTION
                    value: "The Maximo Data Loader can load data into, and query data from, a Maximo instance using Excel spreadsheets"
            volumes:
              - name: mas-mci8-maxloader
                persistentVolumeClaim:
                  claimName: mas-mci8-maxloader
            restartPolicy: Always
            terminationGracePeriodSeconds: 30
            securityContext: {}
            schedulerName: default-scheduler
            resources: {}
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
            imagePullPolicy: IfNotPresent
            dnsPolicy: ClusterFirst
      
    4. Click Create.
  5. Create a service for Maximo Data Loader.
    1. In the OpenShift web console, click Networking > Services and select the OpenShift project that you created.
    2. Click Create Service.
    3. Remove the auto-generated service information that is in the Create Service page. Copy the text from the following service template and paste it into the Create Service page to create a new service that is called mas-mci8-maxloader:
      apiVersion: v1
      kind: Service
      metadata:
        name: mas-mci8-maxloader
        namespace: mas-mci8-maxloader
        labels:
          app: mas-mci8-maxloader
      spec:
        selector:
          app: mas-mci8-maxloader
          deploymentconfig: mas-mci8-maxloader
        type: ClusterIP
        ports:
          - name: mas-mci8-maxloader-443
            protocol: TCP
            port: 443
            targetPort: 8443
      
    4. Click Create.
  6. To make Maximo Data Loader accessible from outside the OpenShift cluster, you must create a route or an ingress. If you want to create a route, complete step 6. If you want to create an ingress, complete step 7.
    1. In the OpenShift web console, click Networking > Route and select the OpenShift project that you created.
    2. From the drop-down list, click Create Route.
    3. Specify mas-mci8-maxloader in the Name field.
    4. In the Hostname field, specify mas-mci8-maxloader.apps.FQDN, where FQDN is the fully qualified domain name of the OpenShift cluster.
    5. In the Service field, select mas-mci8-maxloader.
    6. In the Target Port field, select 443 ->8443 (TCP).
    7. Select the Secure Remote checkbox.
    8. In the TLS Termination field, select Passthrough.
    9. Click Create.
  7. To create an ingress to make Maximo Data Loader accessible from outside the OpenShift cluster, complete the following steps:
    1. In the OpenShift web console, click Networking > Ingresses and select the OpenShift project that you created.
    2. From the drop-down list, click Create Ingress.
    3. Specify mas-mci8-maxloader in the Name field.
    4. In the Hostname field, specify mas-mci8-maxloader.apps.FQDN, where FQDN is the fully qualified domain name of the OpenShift cluster.
    5. In the Service field, select mas-mci8-maxloader.
    6. In the Target Port field, select 443 ->8443 (TCP).
    7. Copy the text from the following ingress template and paste it into the Create Ingress page to create a new ingress that is called mas-mci8-maxloader:
    apiVersion: networking.k8s.io/v1beta1
      kind: Ingress
      metadata:
        name: mas-mci8-maxloader
        namespace: mas-mci8-maxloader
      spec:
        rules:
          - host: mas-mci8-maxloader.apps.masocp45.cp.fyre.ibm.com
            http:
              paths:
                - path: /maxloader
                  backend:
                    serviceName: mas-mci8-maxloader
                    servicePort: 8443
    
  8. After you paste the text, update the host value to the fully qualified domain name of your OpenShift cluster.
  9. Click Create.
    After you create an ingress, it is added as a route in the OpenShift console.