Running webMethods API Portal on OpenShift

API Portal setup in OpenShift

Overview:

webMethods API Portal is a multi-container application, i.e., for the application to work, several Docker containers have to be started at once.

Kubernetes is a widely used container orchestration tool. Helm package manager provides a configuration-based setup in Kubernetes. webMethods API Portal has a helm chart, which can be used to setup  webMethods API Portal  in Kubernetes platform

OpenShift is a Kubernetes based platform by RedHat. We will setup webMethods API Portal in OpenShift using helm chart.

Docker Images:

webMethods  API portal images are hosted in https://hub.docker.com/_/softwareag-apiportal. Users must request images in docker hub before installing.

OpenShift:

Okd (Origin Community Distribution of Kubernetes that powers Red Hat OpenShift). For the local cluster, user can setup minishift for a single node okd cluster. If the platform is up and running, we can proceed for configuration.

Configuring OpenShift for API Portal:

  • OpenShift Authorization configuration:   

Cluster-administrator role is required for following configuration commands. (Run as root  in case of minishift)

To relax the security in your cluster so that images are not forced to run as a pre-allocated UID, without granting everyone access to the privileged SCC:

Edit the restricted SCC:

 $ oadm policy add-scc-to-group anyuid system:authenticated

  • Elastic-search pods requires root permission to setup vm.max_map_count. Add project service account to privileged group

 $ oc adm policy add-scc-to-user privileged system:serviceaccount:<project>:<serviceaccount>           

            <project> - name of project in openshift

            <serviceaccount> - project service account (“default” – default service account name )

Helm Setup:      

          Setup helm in OpenShift as specified in https://blog.openshift.com/getting-started-helm-openshift/

Requirements
  • NFS -  writing log files.
  • Storage class with dynamic provisioner  - writing application data

In Helm package, you can find values.yaml to override application defaults.

For a  simple setup, please make following changes in values.yaml

 

Set product as apiportal by

    product = apiportal

sizing=small

environment=other

Include your docker credentials in

         image.registry.secret.username

image.registry.secret.password

Disable logs 

   nfs.logs.enabled = false

To use default storage class

                        storage.externalStorageClass=””

                        zookeeper.storage.storageClass=UNSET

                        postgres.storage.storageClass=UNSET

                        cloudsearch.storage.storageClass=UNSET

                        elasticsearch. storage.storageClass=UNSET

Disable ingress and set loadbalance to nodeport for accessing in local cluster

            ingress.enabled = false

            loadbalancer.externalFQDN = localhost

            loadbalancer.service.nodePort = 30523

Helm Install:

          After changing values.yaml, you can install webMethods API Portal by executing the following command inside helm package.

          $ helm install .

After pods are in ready state, API Portal will be accessible in http://localhost:30523/