Migrating Mobile Foundation deployed using BYOL scripts to Helm based deployment on IBM Cloud Kubernetes Cluster
Deploying Mobile Foundation (MF) using Helm on IBM Cloud Kubernetes cluster provides many advantages compared to using scripts. The following are the major benefits of choosing Helm based deployment over BYOL Scripts:
- Easy and quick Install/Upgrade/Rollbacks.
- Mobile Foundation docker images are Red Hat UBI based and are made available in IBM Entitled registry.
- Images are scanned by IBM VA and Red Hat scanner and vulnerabilities are addressed.
- Enabled with enterprise grade Kubernetes features like Pod security policies, configuration management, network policies, and so on.
- Custom configuration updates to MF components made easy, for example, enabling trace logs, updating additional JNDI properties, updating any WebSphere liberty configuration.
- Support of Analytics Receiver and Liveupdate as a separate microservice.
- Support of standalone Elasticsearch for Mobile Foundation analytics.
- Support for Oracle and MySql databases.
The ibm-mobilefoundation-prod helm chart requires the following minimal configuration to be updated in values.yaml to deploy Mobile Foundation components:
- Db2 details and db-secret for Server, Liveupdate and Application center
- Elasticsearch namespace for analytics
Migrate the following items:
Database can be reused for the Mobile Foundation server, push, Liveupdate and Application center.
Get the existing database details of the BYOL deployment from the configmap:
kubectl describe configmap mfp-configmap kubectl describe configmap mfp-configmap-appcenter
Fill in the following sections in values.yaml of the ibm-mobilefoundation-prod helm-chart with these DB details:
Mobile Foundation server:
mfpserver: db: type: "DB2" host: "MFPF_SERVER_DB_HOST" port: "MFPF_SERVER_DB_PORT" name: "MFPF_SERVER_DB_NAME" secret: "MFPF_SERVER_DB_SECRET" schema: "MFPF_SERVER_DB_SCHEMA"
Note: Mobile Foundation server and push uses the same database details provided in this snippet.
Mobile Foundation LiveUpdate:
mfpliveupdate: db: type: "DB_TYPE" host: "MFPF_LIVEUPDATE_DB_HOST" port: "MFPF_LIVEUPDATE_DB_PORT" name: "MFPF_LIVEUPDATE_DB_NAME" secret: "MFPF_LIVEUPDATE_DB_SECRET" schema: "MFPF_LIVEUPDATE_DB_SCHEMA"
mfpappcenter: db: type: "DB_TYPE" host: "MFPF_APPCNTR_DB_HOST" port: "MFPF_APPCNTR_DB_PORT" name: "MFPF_APPCNTR_DB_NAME" secret: "MFPF_APPCNTR_DB_SECRET" schema: "MFPF_APPCNTR_DB_SCHEMA"
For creating DB secret, see installation documentation here.
Update elasticsearch namespace details in the following section:
mfpanalytics: esnamespace: ""
Reuse the existing pvc or use existing storageclass for Elasticsearch. Fill in the following section in values.yaml of the ibm-es-prod helm-chart with pvc or storage class name:
persistence: claimName: "" storageClassName: ""