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/
- 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/